@@ -40,6 +40,34 @@ public function shouldGetResponseSuccessfully() : void
4040 $ this ->assertEquals ('TK-0000 ' , $ response ['response ' ]['code ' ]);
4141 }
4242
43+ /**
44+ * @test
45+ * @expectedException \TK\SDK\Exception\InvalidArgumentException
46+ */
47+ public function shouldFailForInvalidScheduleType () : void
48+ {
49+ $ departureTime = gmdate ('Y-m-d H:i:s ' , strtotime ('+4 days ' ));
50+ $ originLocation = new ValueObject \Location ('IST ' , ValueObject \Location::MULTIPLE_AIRPORT_TRUE );
51+ $ destinationLocation = new ValueObject \Location ('JFK ' , ValueObject \Location::MULTIPLE_AIRPORT_TRUE );
52+ $ departureDateTime = new ValueObject \DepartureDateTime (
53+ new DateTimeImmutable ($ departureTime ),
54+ 'P3D ' ,
55+ 'P3D '
56+ );
57+ $ originDestinationInformation = new ValueObject \OriginDestinationInformation (
58+ $ departureDateTime ,
59+ $ originLocation ,
60+ $ destinationLocation
61+ );
62+ $ airScheduleRQ = (new ValueObject \AirScheduleRQ ($ originDestinationInformation ))
63+ ->withAirlineCode (ValueObject \AirScheduleRQ::AIRLINE_TURKISH_AIRLINES )
64+ ->withDirectAndNonStopOnlyInd ();
65+ new ValueObject \GetTimetableParameters (
66+ $ airScheduleRQ ,
67+ 'N ' ,
68+ ValueObject \GetTimetableParameters::TRIP_TYPE_ONE_WAY
69+ );
70+ }
4371
4472 /**
4573 * @test
@@ -63,25 +91,29 @@ public function shouldFailForInvalidAirportCode() : void
6391 $ airScheduleRQ = (new ValueObject \AirScheduleRQ ($ originDestinationInformation ))
6492 ->withAirlineCode ('MK ' )
6593 ->withDirectAndNonStopOnlyInd ();
66- $ getTimetableParameters = new ValueObject \GetTimetableParameters (
94+ new ValueObject \GetTimetableParameters (
6795 $ airScheduleRQ ,
6896 ValueObject \GetTimetableParameters::SCHEDULE_TYPE_WEEKLY ,
6997 ValueObject \GetTimetableParameters::TRIP_TYPE_ONE_WAY
7098 );
71- $ response = $ this ->client ->getTimetable ($ getTimetableParameters );
72- $ this ->assertEquals (200 , $ response ['status ' ]);
73- $ this ->assertEquals ('SUCCESS ' , $ response ['response ' ]['status ' ]);
74- $ this ->assertEquals ('TK-0000 ' , $ response ['response ' ]['code ' ]);
7599 }
76100
101+ /**
102+ * @test
103+ * @expectedException \TK\SDK\Exception\InvalidArgumentException
104+ */
105+ public function shouldFailForInvalidLocation () : void
106+ {
107+ new ValueObject \Location ('ISTT ' , ValueObject \Location::MULTIPLE_AIRPORT_TRUE );
108+ }
77109 /**
78110 * @test
79111 * @expectedException \TK\SDK\Exception\InvalidArgumentException
80112 */
81113 public function shouldFailForInvalidDurationWindowAfter () : void
82114 {
83115 $ departureTime = gmdate ('Y-m-d H:i:s ' , strtotime ('+4 days ' ));
84- $ departureDateTime = new ValueObject \DepartureDateTime (
116+ new ValueObject \DepartureDateTime (
85117 new DateTimeImmutable ($ departureTime ),
86118 'P4D ' ,
87119 'P3D '
@@ -96,10 +128,39 @@ public function shouldFailForInvalidDurationWindowAfter() : void
96128 public function shouldFailForInvalidDurationWindowBefore () : void
97129 {
98130 $ departureTime = gmdate ('Y-m-d H:i:s ' , strtotime ('+4 days ' ));
99- $ departureDateTime = new ValueObject \DepartureDateTime (
131+ new ValueObject \DepartureDateTime (
100132 new DateTimeImmutable ($ departureTime ),
101133 'P3D ' ,
102134 'P4D '
103135 );
104136 }
137+
138+ /**
139+ * @test
140+ * @expectedException \TK\SDK\Exception\InvalidArgumentException
141+ */
142+ public function shouldFailForInvalidTripType () : void
143+ {
144+ $ departureTime = gmdate ('Y-m-d H:i:s ' , strtotime ('+4 days ' ));
145+ $ originLocation = new ValueObject \Location ('IST ' , ValueObject \Location::MULTIPLE_AIRPORT_TRUE );
146+ $ destinationLocation = new ValueObject \Location ('JFK ' , ValueObject \Location::MULTIPLE_AIRPORT_TRUE );
147+ $ departureDateTime = new ValueObject \DepartureDateTime (
148+ new DateTimeImmutable ($ departureTime ),
149+ 'P3D ' ,
150+ 'P3D '
151+ );
152+ $ originDestinationInformation = new ValueObject \OriginDestinationInformation (
153+ $ departureDateTime ,
154+ $ originLocation ,
155+ $ destinationLocation
156+ );
157+ $ airScheduleRQ = (new ValueObject \AirScheduleRQ ($ originDestinationInformation ))
158+ ->withAirlineCode (ValueObject \AirScheduleRQ::AIRLINE_TURKISH_AIRLINES )
159+ ->withDirectAndNonStopOnlyInd ();
160+ new ValueObject \GetTimetableParameters (
161+ $ airScheduleRQ ,
162+ ValueObject \GetTimetableParameters::SCHEDULE_TYPE_WEEKLY ,
163+ 'n '
164+ );
165+ }
105166}
0 commit comments