Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Gi-Totev/bbb334d77b874336221e7d44912eb8e5 to your computer and use it in GitHub Desktop.
Save Gi-Totev/bbb334d77b874336221e7d44912eb8e5 to your computer and use it in GitHub Desktop.
# Default ignored files
/shelf/
/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="Garage" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="Garage" target="14" />
</bytecodeTargetLevel>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>
<component name="libraryTable">
<library name="Maven: junit:junit:4.12">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.hamcrest:hamcrest-core:1.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/Garage/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_14" default="false" project-jdk-name="openjdk-14" project-jdk-type="JavaSDK" />
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/03. Unit Testing_Skeleton.iml" filepath="$PROJECT_DIR$/.idea/03. Unit Testing_Skeleton.iml" />
<module fileurl="file://$PROJECT_DIR$/Garage/Garage.iml" filepath="$PROJECT_DIR$/Garage/Garage.iml" />
</modules>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="e16a861f-7e27-44bd-8cc3-0422b3201469" name="Default Changelist" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ProjectId" id="1gRr12GkWlCplQKiwHiDBNFLEQy" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../01. High Quality Structure_Skeleton" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.0" />
</component>
<component name="RunManager">
<configuration name="GarageTests" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="Garage" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="garage.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="garage" />
<option name="MAIN_CLASS_NAME" value="garage.GarageTests" />
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="JUnit.GarageTests" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="e16a861f-7e27-44bd-8cc3-0422b3201469" name="Default Changelist" comment="" />
<created>1598088026447</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1598088026447</updated>
</task>
<servers />
</component>
<component name="WindowStateProjectService">
<state x="686" y="209" key="FileChooserDialogImpl" timestamp="1598090271040">
<screen x="0" y="0" width="1920" height="1032" />
</state>
<state x="686" y="209" key="FileChooserDialogImpl/0.0.1920.1032@0.0.1920.1032" timestamp="1598090271040" />
<state width="1846" height="253" key="GridCell.Tab.0.bottom" timestamp="1598883946942">
<screen x="0" y="0" width="1920" height="1032" />
</state>
<state width="1846" height="253" key="GridCell.Tab.0.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1598883946942" />
<state width="1846" height="253" key="GridCell.Tab.0.center" timestamp="1598883946942">
<screen x="0" y="0" width="1920" height="1032" />
</state>
<state width="1846" height="253" key="GridCell.Tab.0.center/0.0.1920.1032@0.0.1920.1032" timestamp="1598883946942" />
<state width="1846" height="253" key="GridCell.Tab.0.left" timestamp="1598883946942">
<screen x="0" y="0" width="1920" height="1032" />
</state>
<state width="1846" height="253" key="GridCell.Tab.0.left/0.0.1920.1032@0.0.1920.1032" timestamp="1598883946942" />
<state width="1846" height="253" key="GridCell.Tab.0.right" timestamp="1598883946942">
<screen x="0" y="0" width="1920" height="1032" />
</state>
<state width="1846" height="253" key="GridCell.Tab.0.right/0.0.1920.1032@0.0.1920.1032" timestamp="1598883946942" />
<state x="311" y="0" key="SettingsEditor" timestamp="1598088336965">
<screen x="0" y="0" width="1920" height="1032" />
</state>
<state x="311" y="0" key="SettingsEditor/0.0.1920.1032@0.0.1920.1032" timestamp="1598088336965" />
<state x="531" y="227" key="run.anything.popup" timestamp="1598088644203">
<screen x="0" y="0" width="1920" height="1032" />
</state>
<state x="531" y="227" key="run.anything.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1598088644203" />
<state x="539" y="-1" width="840" height="1034" key="search.everywhere.popup" timestamp="1598088535148">
<screen x="0" y="0" width="1920" height="1032" />
</state>
<state x="539" y="-1" width="840" height="1034" key="search.everywhere.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1598088535148" />
</component>
</project>
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../:\Users\User\Desktop\Garage\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="Garage" />
</profile>
</annotationProcessing>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_14" project-jdk-name="14" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="0b7a8a0c-15c3-48aa-994c-d9d92f4b6c37" name="Default Changelist" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="MavenImportPreferences">
<option name="generalSettings">
<MavenGeneralSettings>
<option name="mavenHome" value="C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.2\plugins\maven\lib\maven3" />
</MavenGeneralSettings>
</option>
</component>
<component name="ProjectId" id="1gPtomAaTDwpFqJLtHDEQjTeMg4" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src" />
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\User\Desktop\Garage\src" />
</key>
</component>
<component name="RunManager">
<configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
<option name="arquillianRunConfiguration">
<value>
<option name="containerStateName" value="" />
</value>
</option>
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="0b7a8a0c-15c3-48aa-994c-d9d92f4b6c37" name="Default Changelist" comment="" />
<created>1598028233863</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1598028233863</updated>
<workItem from="1598028234907" duration="145000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_14">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
</component>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Garage</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>14</source>
<target>14</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
package garage;
public class Car {
private String brand;
private int hp;
private int maxSpeed;
private double price;
public Car(String brand, int maxSpeed, double price) {
this.setBrand(brand);
this.setMaxSpeed(maxSpeed);
this.setPrice(price);
}
public String getBrand() {
return brand;
}
private void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
private void setPrice(double price) {
this.price = price;
}
public int getMaxSpeed() {
return maxSpeed;
}
private void setMaxSpeed(int maxSpeed) {
this.maxSpeed = maxSpeed;
}
}
package garage;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class Garage {
private List<Car> cars;
public Garage() {
this.cars = new ArrayList<>();
}
public List<Car> getCars() {
return Collections.unmodifiableList(this.cars);
}
public int getCount() {
return this.cars.size();
}
public List<Car> findAllCarsWithMaxSpeedAbove(int speed) {
List<Car> cars = this.cars.stream().filter(c -> c.getMaxSpeed() > speed).collect(Collectors.toList());
return cars;
}
public void addCar(Car car) {
if (car == null) {
throw new IllegalArgumentException("Car can't be null");
}
this.cars.add(car);
}
public Car getTheMostExpensiveCar() {
Car car = this
.cars
.stream()
.sorted((c1, c2) -> Double.compare(c2.getPrice(), c1.getPrice()))
.limit(1)
.findFirst()
.orElse(null);
return car;
}
public List<Car> findAllCarsByBrand(String brand) {
List<Car> cars = this.cars.stream().filter(c -> c.getBrand().equals(brand)).collect(Collectors.toList());
return cars;
}
}
package garage;
public class Main {
public static void main(String[] args) {
}
}
package garage;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class GarageTests {
Garage garage = new Garage();
@Before
public void init() {
garage.addCar(new Car("sssa", 200, 210));
garage.addCar(new Car("sdfa", 2100, 10));
garage.addCar(new Car("brand", 20, 310));
}
@Test
public void addCarWorks()
{
garage.addCar(new Car("car4", 20, 10));
assert (garage.getCount() == 4);
}
@Test
public void getGarageList(){
int count = garage.getCount();
assert (count == 3);
}
@Test(expected = IllegalArgumentException.class)
public void nullCarrThrows()
{
garage.addCar(null);
}
@Test
public void getMostExpensiveCarWorks()
{
Car expensive = garage.getCars().get(2);
assert (garage.getTheMostExpensiveCar() == expensive);
}
@Test
public void findCarByBrandWorks()
{
garage.addCar(new Car("sssa", 20, 3000));
Car car = garage.getCars().get(0);
Car car2 = garage.getCars().get(3);
List<Car> compare = new ArrayList<>();
compare.add(car);
compare.add(car2);
assert (garage.findAllCarsByBrand("sssa").equals(compare));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment