diff --git a/src/main/java/hs/fulda/de/ci/exam/project/Flight.java b/src/main/java/hs/fulda/de/ci/exam/project/Flight.java index ef70d40..4e6604d 100644 --- a/src/main/java/hs/fulda/de/ci/exam/project/Flight.java +++ b/src/main/java/hs/fulda/de/ci/exam/project/Flight.java @@ -2,6 +2,8 @@ package hs.fulda.de.ci.exam.project; import java.util.HashSet; +import static hs.fulda.de.ci.exam.project.FlightStatus.Cancelled; + public class Flight { String flightNumber; Airport departure; @@ -20,7 +22,7 @@ public class Flight { return this.flightInstances; } - public FlightInstance getFlightInstance(FlightInstance fi){ + public FlightInstance getFlightInstance(FlightInstance fi) { for (FlightInstance obj : flightInstances) { if (obj.equals(fi)) return obj; @@ -28,8 +30,18 @@ public class Flight { return null; } - public boolean cancel() { - return true; + public boolean cancel(FlightInstance fInstance1) { + if (flightInstances.contains(fInstance1)) { + for (FlightInstance obj : flightInstances) { + if (obj.equals(fInstance1)) { + obj.status = Cancelled; + System.out.println("Flight intance is cancelled"); + } + } + return true; + } + return false; + } public boolean addFlightSchedule(FlightInstance fi) { diff --git a/src/test/java/hs/fulda/de/ci/exam/project/FlightTest.java b/src/test/java/hs/fulda/de/ci/exam/project/FlightTest.java index 424f074..17d0b9c 100644 --- a/src/test/java/hs/fulda/de/ci/exam/project/FlightTest.java +++ b/src/test/java/hs/fulda/de/ci/exam/project/FlightTest.java @@ -6,6 +6,7 @@ import java.sql.Time; import java.util.HashSet; import static hs.fulda.de.ci.exam.project.FlightStatus.Active; +import static hs.fulda.de.ci.exam.project.FlightStatus.Cancelled; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -22,7 +23,7 @@ class FlightTest { Flight flight1 = new Flight("1", airport_fr, airport1_ist, 140); Flight flight2 = new Flight("2", airport1_ist, airport_fr, 120); - FlightInstance fInstance1 = new FlightInstance(new Time(12,45,00), "4E", Active); + FlightInstance fInstance1 = new FlightInstance(new Time(12, 45, 00), "4E", Active); @Test void getInstances_no_instance_should_be_equal() { @@ -48,6 +49,16 @@ class FlightTest { assertThat(expected).isEqualTo(result); } + @Test + void cancelingFlightShouldChangeActiveToCancelled() { + boolean addInstance = flight1.addFlightSchedule(fInstance1); + assertTrue(addInstance); + flight1.cancel(fInstance1); + FlightStatus result = flight1.getFlightInstance(fInstance1).getStatus(); + FlightStatus expected = Cancelled; + assertThat(expected).isEqualTo(result); + } + @Test void getFlightNumber() { assertThat(flight1.getFlightNumber()).describedAs("get flight number of the flight").isEqualTo("1"); diff --git a/target/classes/hs/fulda/de/ci/exam/project/Flight.class b/target/classes/hs/fulda/de/ci/exam/project/Flight.class index 7876b6b..4e95dbf 100644 Binary files a/target/classes/hs/fulda/de/ci/exam/project/Flight.class and b/target/classes/hs/fulda/de/ci/exam/project/Flight.class differ diff --git a/target/classes/hs/fulda/de/ci/exam/project/FlightInstance.class b/target/classes/hs/fulda/de/ci/exam/project/FlightInstance.class index 7f4aab6..a6953eb 100644 Binary files a/target/classes/hs/fulda/de/ci/exam/project/FlightInstance.class and b/target/classes/hs/fulda/de/ci/exam/project/FlightInstance.class differ diff --git a/target/test-classes/hs/fulda/de/ci/exam/project/FlightTest.class b/target/test-classes/hs/fulda/de/ci/exam/project/FlightTest.class index a4b7c91..dfb0f03 100644 Binary files a/target/test-classes/hs/fulda/de/ci/exam/project/FlightTest.class and b/target/test-classes/hs/fulda/de/ci/exam/project/FlightTest.class differ