Skip to content

Commit 55d3337

Browse files
committed
sample classes and tests
1 parent b375919 commit 55d3337

File tree

8 files changed

+262
-0
lines changed

8 files changed

+262
-0
lines changed

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@
218218
<module>function-composition</module>
219219
<module>microservices-distributed-tracing</module>
220220
<module>microservices-idempotent-consumer</module>
221+
<module>table-inheritance</module>
221222
</modules>
222223
<repositories>
223224
<repository>

table-inheritance/pom.xml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>com.iluwatar</groupId>
8+
<artifactId>java-design-patterns</artifactId>
9+
<version>1.26.0-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>table-inheritance</artifactId>
13+
14+
<properties>
15+
<maven.compiler.source>17</maven.compiler.source>
16+
<maven.compiler.target>17</maven.compiler.target>
17+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
18+
</properties>
19+
20+
<dependencies>
21+
<dependency>
22+
<groupId>org.junit.jupiter</groupId>
23+
<artifactId>junit-jupiter-engine</artifactId>
24+
<version>5.7.0</version>
25+
<scope>test</scope>
26+
</dependency>
27+
</dependencies>
28+
29+
<build>
30+
<plugins>
31+
<plugin>
32+
<groupId>org.apache.maven.plugins</groupId>
33+
<artifactId>maven-surefire-plugin</artifactId>
34+
<version>2.22.2</version>
35+
</plugin>
36+
</plugins>
37+
</build>
38+
39+
40+
</project>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.iluwatar;
2+
3+
public class Car extends Vehicle {
4+
private int numDoors;
5+
6+
public Car(int year, String make, String model, int numDoors, int id) {
7+
super(year, make, model, id);
8+
this.numDoors = numDoors;
9+
}
10+
11+
public void SetNumDoors(int doors){
12+
this.numDoors=doors;
13+
}
14+
public int GetNumDoors(){
15+
return numDoors;
16+
}
17+
18+
@Override public String toString() {
19+
return "Car{" + "id=" + getId() + ", make='" + getMake() + '\'' + ", model='" + getModel() + '\'' + ", year=" + getYear() + ", numberOfDoors=" + GetNumDoors() + '}';
20+
}
21+
22+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.iluwatar;
2+
3+
public class Main {
4+
public static void main(String[] args) {
5+
Vehicle_Database database = new Vehicle_Database();
6+
7+
Car car = new Car(2020, "Toyota", "Corolla", 4, 1);
8+
Truck truck = new Truck(2018, "Ford", "F-150", 60,2);
9+
10+
database.saveVehicle(car);
11+
database.saveVehicle(truck);
12+
13+
database.printAllVehicles();
14+
15+
Vehicle vehicle = database.getVehicle(car.getId());
16+
System.out.println("Retrieved Vehicle: " + vehicle);
17+
18+
Car retrievedCar = database.getCar(car.getId());
19+
System.out.println("Retrieved Car: " + retrievedCar);
20+
21+
Truck retrievedTruck = database.getTruck(truck.getId());
22+
System.out.println("Retrieved Truck: " + retrievedTruck);
23+
}
24+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.iluwatar;
2+
3+
public class Truck extends Vehicle {
4+
private double loadCapacity;
5+
6+
public Truck(int year, String make, String model, double loadCapacity, int id) {
7+
super(year,make, model, id);
8+
this.loadCapacity=loadCapacity;
9+
}
10+
11+
public void SetLoadCapacity(double capacity){
12+
this.loadCapacity=capacity;
13+
}
14+
public double GetLoadCapacity(){
15+
return loadCapacity;
16+
}
17+
18+
@Override public String toString() {
19+
return "Truck{" + "id=" + getId() + ", make='" + getMake() + '\'' + ", model='" + getModel() + '\'' + ", year=" + getYear() + ", payloadCapacity=" + GetLoadCapacity() + '}'; }
20+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.iluwatar;
2+
3+
public class Vehicle{
4+
5+
private String make, model;
6+
private int year, id;
7+
8+
9+
Vehicle(int year, String make, String model, int id){
10+
this.make=make;
11+
this.model=model;
12+
this.year=year;
13+
this.id=id;
14+
}
15+
16+
public void setMake(String make){
17+
this.make=make;
18+
}
19+
public String getMake() {
20+
return make;
21+
}
22+
23+
public void setModel(String model){
24+
this.model=model;
25+
}
26+
public String getModel(){
27+
return model;
28+
}
29+
30+
public void setYear(int year){
31+
this.year=year;
32+
}
33+
public int getYear(){
34+
return year;
35+
}
36+
37+
public int getId() {
38+
return id;
39+
}
40+
public void setId(int id) {
41+
this.id = id;
42+
}
43+
44+
45+
@Override public String toString() {
46+
return "Vehicle{" + "id=" + id + ", make='" + make + '\'' + ", model='" + model + '\'' + ", year=" + year + '}';
47+
}
48+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.iluwatar;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
public class Vehicle_Database {
7+
private Map<Integer, Vehicle> vehicleTable = new HashMap<>();
8+
private Map<Integer, Car> carTable = new HashMap<>();
9+
private Map<Integer, Truck> truckTable = new HashMap<>();
10+
11+
public void saveVehicle(Vehicle vehicle){
12+
vehicleTable.put(vehicle.getId(), vehicle);
13+
if(vehicle instanceof Car)
14+
carTable.put(vehicle.getId(), (Car)vehicle);
15+
else if (vehicle instanceof Truck)
16+
truckTable.put(vehicle.getId(), (Truck)vehicle);
17+
}
18+
19+
public Vehicle getVehicle(int ID) {
20+
return vehicleTable.get(ID);
21+
}
22+
23+
public Car getCar(int id) {
24+
return carTable.get(id);
25+
}
26+
27+
public Truck getTruck(int id) {
28+
return truckTable.get(id);
29+
}
30+
31+
public void printAllVehicles() {
32+
for (Vehicle vehicle : vehicleTable.values()) {
33+
System.out.println(vehicle);
34+
}
35+
}
36+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import static org.junit.jupiter.api.Assertions.assertEquals;
2+
import static org.junit.jupiter.api.Assertions.assertNotNull;
3+
4+
import org.junit.jupiter.api.BeforeEach;
5+
import org.junit.jupiter.api.Test;
6+
7+
import com.iluwatar.Vehicle_Database;
8+
import com.iluwatar.Truck;
9+
import com.iluwatar.Car;
10+
import com.iluwatar.Vehicle;
11+
12+
13+
public class VehicleDatabaseTest {
14+
15+
private Vehicle_Database vehicleDatabase;
16+
17+
@BeforeEach
18+
public void setUp() {
19+
vehicleDatabase = new Vehicle_Database();
20+
}
21+
22+
@Test
23+
public void testSaveAndRetrieveCar() {
24+
Car car = new Car(2020, "Toyota", "Corolla", 4, 1);
25+
vehicleDatabase.saveVehicle(car);
26+
27+
Vehicle retrievedVehicle = vehicleDatabase.getVehicle(car.getId());
28+
assertNotNull(retrievedVehicle);
29+
assertEquals(car.getId(), retrievedVehicle.getId());
30+
assertEquals(car.getMake(), retrievedVehicle.getMake());
31+
assertEquals(car.getModel(), retrievedVehicle.getModel());
32+
assertEquals(car.getYear(), retrievedVehicle.getYear());
33+
34+
Car retrievedCar = vehicleDatabase.getCar(car.getId());
35+
assertNotNull(retrievedCar);
36+
assertEquals(car.GetNumDoors(), retrievedCar.GetNumDoors());
37+
}
38+
39+
@Test
40+
public void testSaveAndRetrieveTruck() {
41+
Truck truck = new Truck(2018, "Ford", "F-150", 60,2);
42+
vehicleDatabase.saveVehicle(truck);
43+
44+
Vehicle retrievedVehicle = vehicleDatabase.getVehicle(truck.getId());
45+
assertNotNull(retrievedVehicle);
46+
assertEquals(truck.getId(), retrievedVehicle.getId());
47+
assertEquals(truck.getMake(), retrievedVehicle.getMake());
48+
assertEquals(truck.getModel(), retrievedVehicle.getModel());
49+
assertEquals(truck.getYear(), retrievedVehicle.getYear());
50+
51+
Truck retrievedTruck = vehicleDatabase.getTruck(truck.getId());
52+
assertNotNull(retrievedTruck);
53+
assertEquals(truck.GetLoadCapacity(), retrievedTruck.GetLoadCapacity());
54+
}
55+
56+
@Test
57+
public void testPrintAllVehicles() {
58+
Car car = new Car(2020, "Toyota", "Corolla", 4, 1);
59+
Truck truck = new Truck(2018, "Ford", "F-150", 60,2);
60+
vehicleDatabase.saveVehicle(car);
61+
vehicleDatabase.saveVehicle(truck);
62+
63+
vehicleDatabase.printAllVehicles();
64+
65+
Vehicle retrievedCar = vehicleDatabase.getVehicle(car.getId());
66+
Vehicle retrievedTruck = vehicleDatabase.getVehicle(truck.getId());
67+
68+
assertNotNull(retrievedCar);
69+
assertNotNull(retrievedTruck);
70+
}
71+
}

0 commit comments

Comments
 (0)