Files
seminaria3/source/src/test/controller/ControllerTest.java
2026-05-18 16:58:51 +02:00

106 lines
3.3 KiB
Java

package controller;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import integration.BikeRegistry;
import integration.RepairTaskCatalog;
import model.Amount;
import model.BikeDTO;
import model.RepairOrder;
import model.RepairShop;
import static org.junit.jupiter.api.Assertions.*;
class ControllerTest {
private Controller controller;
@BeforeEach
void setUp() {
BikeRegistry bikeRegistry = new BikeRegistry();
RepairTaskCatalog taskCatalog = new RepairTaskCatalog();
RepairShop repairShop = new RepairShop();
controller = new Controller(repairShop, bikeRegistry, taskCatalog);
controller.startNewRepair();
}
@Test
void enterBikeIdWithValidIdReturnsNonNullBikeDTO() {
BikeDTO bike = controller.enterBikeID("BIKE-001");
assertNotNull(bike);
}
@Test
void enterBikeIdWithValidIdReturnsCorrectBikeId() {
BikeDTO bike = controller.enterBikeID("BIKE-001");
assertEquals("BIKE-001", bike.getBikeID());
}
@Test
void enterBikeIdWithUnknownIdReturnsNull() {
BikeDTO bike = controller.enterBikeID("BIKE-999");
assertNull(bike);
}
@Test
void addRepairTaskWithValidNameReturnsNonNullAmount() {
controller.enterBikeID("BIKE-001");
Amount total = controller.addRepairTask("Brake Pad Replacement");
assertNotNull(total);
}
@Test
void addRepairTaskWithValidNameReturnsCorrectRunningTotal() {
controller.enterBikeID("BIKE-001");
Amount total = controller.addRepairTask("Brake Pad Replacement");
assertEquals(350, total.getValue(), 0.001);
}
@Test
void addTwoRepairTasksReturnsCumulativeTotal() {
controller.enterBikeID("BIKE-001");
controller.addRepairTask("Brake Pad Replacement");
Amount total = controller.addRepairTask("Tire Replacement");
assertEquals(850, total.getValue(), 0.001);
}
@Test
void addRepairTaskWithUnknownNameReturnsNull() {
controller.enterBikeID("BIKE-001");
Amount total = controller.addRepairTask("Non-existing Task");
assertNull(total);
}
@Test
void endRepairReturnsNonNullRepairOrder() {
controller.enterBikeID("BIKE-001");
controller.addRepairTask("Battery Check");
RepairOrder repairOrder = controller.endRepair();
assertNotNull(repairOrder);
}
@Test
void endRepairReturnsRepairOrderWithCorrectBikeId() {
controller.enterBikeID("BIKE-002");
RepairOrder repairOrder = controller.endRepair();
assertEquals("BIKE-002", repairOrder.getBike().getBikeID());
}
@Test
void endRepairReturnsRepairOrderWithCorrectTotalAfterTasks() {
controller.enterBikeID("BIKE-001");
controller.addRepairTask("Battery Check");
controller.addRepairTask("Chain Lubrication");
RepairOrder repairOrder = controller.endRepair();
assertEquals(350, repairOrder.getTotal().getValue(), 0.001);
}
@Test
void enterDiagnosticReportIsReflectedInFinalRepairOrder() {
controller.enterBikeID("BIKE-003");
controller.enterDiagnosticReport("Chain replaced and tested.");
RepairOrder repairOrder = controller.endRepair();
assertEquals("Chain replaced and tested.", repairOrder.getDiagnosticReport());
}
}