git-subtree-dir: solution/H05 git-subtree-split: db3524a6321cc840e329abb2b44bea58c7583330
73 lines
3.1 KiB
Java
73 lines
3.1 KiB
Java
package h05;
|
|
|
|
import org.junit.jupiter.api.AfterEach;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.sourcegrade.jagr.api.rubric.TestForSubmission;
|
|
import org.tudalgo.algoutils.transform.util.headers.ClassHeader;
|
|
import org.tudalgo.algoutils.transform.util.headers.FieldHeader;
|
|
import org.tudalgo.algoutils.transform.util.headers.MethodHeader;
|
|
import org.tudalgo.algoutils.tutor.general.assertions.Context;
|
|
|
|
import static org.tudalgo.algoutils.transform.SubmissionExecutionHandler.*;
|
|
import static org.tudalgo.algoutils.tutor.general.assertions.Assertions2.*;
|
|
|
|
@TestForSubmission
|
|
public class CombinedPlaneTest {
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
resetAll();
|
|
}
|
|
|
|
@Test
|
|
public void testClassHeader() {
|
|
ClassHeader originalClassHeader = getOriginalClassHeader(CombinedPlane.class);
|
|
assertEquals(PassengerPlane.class, originalClassHeader.getSuperType(), emptyContext(), result ->
|
|
"Class CombinedPlane does not extend PassengerPlane");
|
|
assertTrue(originalClassHeader.getInterfaceTypes().contains(CarriesCargo.class), emptyContext(), result ->
|
|
"Class CombinedPlane does not implement CarriesCargo");
|
|
}
|
|
|
|
@Test
|
|
public void testConstructor() {
|
|
String aircraftRegistration = "D-FLOP";
|
|
int baseWeight = 500;
|
|
FuelType fuelType = FuelType.JetB;
|
|
double fuelCapacity = 200;
|
|
int crewCount = 5;
|
|
Context context = contextBuilder()
|
|
.add("aircraftRegistration", aircraftRegistration)
|
|
.add("baseWeight", baseWeight)
|
|
.add("fuelType", fuelType)
|
|
.add("fuelCapacity", fuelCapacity)
|
|
.add("crewCount", crewCount)
|
|
.build();
|
|
|
|
Delegation.disable(MethodHeader.of(CombinedPlane.class, String.class, int.class, FuelType.class, double.class, int.class));
|
|
CombinedPlane combinedPlaneInstance = callObject(
|
|
() -> new CombinedPlane(aircraftRegistration, baseWeight, fuelType, fuelCapacity, crewCount),
|
|
context,
|
|
result -> "An exception occurred while invoking constructor of CombinedPlane");
|
|
|
|
assertEquals(aircraftRegistration,
|
|
FieldHeader.of(Plane.class, "aircraftRegistration").getValue(combinedPlaneInstance),
|
|
context,
|
|
result -> "Field aircraftRegistration has incorrect value");
|
|
assertEquals(baseWeight,
|
|
FieldHeader.of(Plane.class, "baseWeight").getValue(combinedPlaneInstance),
|
|
context,
|
|
result -> "Field baseWeight has incorrect value");
|
|
assertEquals(fuelType,
|
|
FieldHeader.of(Plane.class, "fuelType").getValue(combinedPlaneInstance),
|
|
context,
|
|
result -> "Field fuelType has incorrect value");
|
|
assertEquals(fuelCapacity,
|
|
FieldHeader.of(Plane.class, "fuelCapacity").getValue(combinedPlaneInstance),
|
|
context,
|
|
result -> "Field fuelCapacity has incorrect value");
|
|
assertEquals(crewCount,
|
|
FieldHeader.of(PassengerPlane.class, "crewCount").getValue(combinedPlaneInstance),
|
|
context,
|
|
result -> "Field crewCount has incorrect value");
|
|
}
|
|
}
|