Add oving 7

This commit is contained in:
Andreas Omholt Olsen
2026-03-06 10:59:33 +01:00
parent 6a27364518
commit 1deb0cc650
44 changed files with 1947 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
package oving7.train;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class TrainTest {
private CargoCar cc1;
private CargoCar cc2;
private PassengerCar pc1;
private PassengerCar pc2;
private Train train;
@BeforeEach
public void setUp() {
train = new Train();
pc1 = new PassengerCar(2000, 200);
pc2 = new PassengerCar(1500, 100);
cc1 = new CargoCar(3000, 5000);
cc2 = new CargoCar(2500, 7000);
}
@Test
@DisplayName("Add cars to train")
public void testAddCarToTrain() {
train.addTrainCar(pc1);
train.addTrainCar(pc2);
train.addTrainCar(cc1);
assertTrue(train.contains(pc1),
"Test if the train contains passenger car 1 after it has been added");
assertTrue(train.contains(pc2),
"Test if the train contains passenger car 2 after it has been added");
assertTrue(train.contains(cc1),
"Test if the train contains cargo car 1 after it has been added");
assertFalse(train.contains(cc2),
"Test if the train contains cargo car 2 without it being added");
assertThrows(IllegalArgumentException.class, () -> {
train.addTrainCar(null);
}, "Test if an IllegalArgumentException is thrown when adding a null car");
}
@Test
@DisplayName("Check total weight of the train")
public void testTotalTrainWeight() {
train.addTrainCar(pc1);
train.addTrainCar(cc1);
assertEquals(8000 + (2000 + (200 * 80)), train.getTotalWeight(),
"Test the train's total weight after adding a passenger car and a cargo car");
train.addTrainCar(pc2);
assertEquals(8000 + (2000 + (200 * 80)) + (1500 + (100 * 80)), train.getTotalWeight(),
"Test the train's total weight after adding another passenger car");
}
@Test
@DisplayName("Check passenger count on the train")
public void testPassengerCount() {
train.addTrainCar(pc1);
train.addTrainCar(pc2);
assertEquals(300, train.getPassengerCount(),
"Test passenger count after adding passenger cars");
train.addTrainCar(cc1);
assertEquals(300, train.getPassengerCount(),
"Test passenger count after adding a cargo car");
}
@Test
@DisplayName("Check cargo weight on the train")
public void testCargoWeight() {
train.addTrainCar(cc1);
train.addTrainCar(cc2);
assertEquals(12_000, train.getCargoWeight(), "Test cargo weight after adding cargo cars");
train.addTrainCar(pc1);
assertEquals(12_000, train.getCargoWeight(),
"Test cargo weight after adding a passenger car");
}
}