From 0307d5102c271e668f3208a7b58bc456eaa658b9 Mon Sep 17 00:00:00 2001 From: Bert Date: Wed, 15 May 2019 12:52:01 +0200 Subject: [PATCH] Update sdk-commons, implement new methods --- composer.json | 8 +-- .../Resrobot/Model/ResRobotVehicle.php | 10 +++ src/Trafiklab/Resrobot/ResRobotWrapper.php | 15 +++++ .../ResRobotWrapperIntegrationTest.php | 64 +++++++++---------- 4 files changed, 56 insertions(+), 41 deletions(-) diff --git a/composer.json b/composer.json index 4e1f7c9..ed465f4 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "require": { "php": ">=7.1", "ext-json": "*", - "trafiklab/php-sdk-commons": "~0.3.4" + "trafiklab/php-sdk-commons": "~0.4.0" }, "require-dev": { "phpunit/phpunit": "^5.5", @@ -29,12 +29,6 @@ "phpmd/phpmd": "^2.6.0", "friendsofphp/php-cs-fixer": "^2.14" }, - "repositories": [ - { - "type": "vcs", - "url": "https://github.com/trafiklab/php-sdk-commons" - } - ], "autoload": { "psr-0": { "Trafiklab\\Resrobot": "src/" diff --git a/src/Trafiklab/Resrobot/Model/ResRobotVehicle.php b/src/Trafiklab/Resrobot/Model/ResRobotVehicle.php index d5dfe98..24bc000 100644 --- a/src/Trafiklab/Resrobot/Model/ResRobotVehicle.php +++ b/src/Trafiklab/Resrobot/Model/ResRobotVehicle.php @@ -86,6 +86,16 @@ public function getOperatorName(): string return $this->_operatorName; } + /** + * The line number of the vehicle, identifying the line on which it runs. Example: 41X. + * + * @return string + */ + public function getLineNumber(): string + { + return $this->_number; + } + private function parseApiResponse(array $json) { $this->_name = $json['name']; diff --git a/src/Trafiklab/Resrobot/ResRobotWrapper.php b/src/Trafiklab/Resrobot/ResRobotWrapper.php index 9b4c32f..1d0c1d7 100644 --- a/src/Trafiklab/Resrobot/ResRobotWrapper.php +++ b/src/Trafiklab/Resrobot/ResRobotWrapper.php @@ -126,6 +126,21 @@ public function lookupStopLocation(StopLocationLookupRequest $request): StopLoca return $this->_resrobotClient->lookupStopLocation($this->_key_reseplanerare, $request); } + public function createTimeTableRequestObject(): TimeTableRequest + { + return new ResRobotTimeTableRequest(); + } + + public function createRoutePlanningRequestObject(): RoutePlanningRequest + { + return new ResRobotRoutePlanningRequest(); + } + + public function createStopLocationLookupRequestObject(): StopLocationLookupRequest + { + return new ResRobotStopLocationLookupRequest(); + } + /** * @throws KeyRequiredException */ diff --git a/tests/Trafiklab/Resrobot/ResRobotWrapperIntegrationTest.php b/tests/Trafiklab/Resrobot/ResRobotWrapperIntegrationTest.php index ed00e13..14471a1 100644 --- a/tests/Trafiklab/Resrobot/ResRobotWrapperIntegrationTest.php +++ b/tests/Trafiklab/Resrobot/ResRobotWrapperIntegrationTest.php @@ -11,9 +11,6 @@ use Trafiklab\Common\Model\Exceptions\InvalidStopLocationException; use Trafiklab\Common\Model\Exceptions\KeyRequiredException; use Trafiklab\Resrobot\Model\Enum\ResRobotTransportType; -use Trafiklab\ResRobot\Model\ResRobotRoutePlanningRequest; -use Trafiklab\Resrobot\Model\ResRobotStopLocationLookupRequest; -use Trafiklab\Resrobot\Model\ResRobotTimeTableRequest; class ResRobotWrapperIntegrationTest extends PHPUnit_Framework_TestCase { @@ -34,11 +31,11 @@ public function testGetDepartures_validParameters_shouldReturnResponse() $this->markTestIncomplete(); } - $departuresRequest = new ResRobotTimeTableRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $departuresRequest = $resRobotWrapper->createTimeTableRequestObject(); $departuresRequest->setStopId("740000001"); $departuresRequest->setTimeTableType(TimeTableType::DEPARTURES); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setTimeTablesApiKey($this->_TIMETABLES_API_KEY); $response = $resRobotWrapper->getTimeTable($departuresRequest); @@ -46,8 +43,7 @@ public function testGetDepartures_validParameters_shouldReturnResponse() self::assertEquals(TimeTableType::DEPARTURES, $response->getType()); self::assertFalse(empty($response->getTimetable()[0]->getOperator())); - - $departuresRequest = new ResRobotTimeTableRequest(); + $departuresRequest = $resRobotWrapper->createTimeTableRequestObject(); $departuresRequest->setStopId("740020671"); // Arlanda buss $departuresRequest->setTimeTableType(TimeTableType::DEPARTURES); $departuresRequest->addTransportTypeToFilter(ResRobotTransportType::TRAIN_HIGH_SPEED); // Only trains @@ -69,11 +65,11 @@ public function testGetDepartures_invalidStationId_shouldThrowException() $this->expectException(InvalidStopLocationException::class); - $departuresRequest = new ResRobotTimeTableRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $departuresRequest = $resRobotWrapper->createTimeTableRequestObject(); $departuresRequest->setStopId("7400001"); $departuresRequest->setTimeTableType(TimeTableType::DEPARTURES); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setTimeTablesApiKey($this->_TIMETABLES_API_KEY); $resRobotWrapper->getTimeTable($departuresRequest); @@ -83,11 +79,13 @@ public function testGetDepartures_invalidStationId_shouldThrowException() public function testGetDepartures_invalidApiKey_shouldThrowException() { $this->expectException(InvalidKeyException::class); - $departuresRequest = new ResRobotTimeTableRequest(); + + $resRobotWrapper = new ResRobotWrapper(); + $departuresRequest = $resRobotWrapper->createTimeTableRequestObject(); $departuresRequest->setStopId("740000001"); $departuresRequest->setTimeTableType(TimeTableType::DEPARTURES); - $resRobotWrapper = new ResRobotWrapper(); + $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setTimeTablesApiKey("ABC0123"); $resRobotWrapper->getTimeTable($departuresRequest); @@ -97,11 +95,11 @@ public function testGetDepartures_missingApiKey_shouldThrowException() { $this->expectException(KeyRequiredException::class); - $departuresRequest = new ResRobotTimeTableRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $departuresRequest = $resRobotWrapper->createTimeTableRequestObject(); $departuresRequest->setStopId("740000001"); $departuresRequest->setTimeTableType(TimeTableType::DEPARTURES); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setTimeTablesApiKey(""); $resRobotWrapper->getTimeTable($departuresRequest); @@ -113,11 +111,11 @@ public function testGetArrivals_validParameters_shouldReturnResponse() $this->markTestIncomplete(); } - $arrivalsRequest = new ResRobotTimeTableRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $arrivalsRequest = $resRobotWrapper->createTimeTableRequestObject(); $arrivalsRequest->setStopId("740000001"); $arrivalsRequest->setTimeTableType(TimeTableType::ARRIVALS); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setTimeTablesApiKey($this->_TIMETABLES_API_KEY); $response = $resRobotWrapper->getTimeTable($arrivalsRequest); @@ -125,7 +123,7 @@ public function testGetArrivals_validParameters_shouldReturnResponse() self::assertEquals(TimeTableType::ARRIVALS, $response->getType()); self::assertFalse(empty($response->getTimetable()[0]->getOperator())); - $arrivalsRequest = new ResRobotTimeTableRequest(); + $arrivalsRequest = $resRobotWrapper->createTimeTableRequestObject(); $arrivalsRequest->setStopId("740020671"); // Arlanda buss $arrivalsRequest->setTimeTableType(TimeTableType::ARRIVALS); $arrivalsRequest->addOperatorToFilter(277); // Flygbussarna @@ -153,12 +151,12 @@ public function testGetRoutePlanning_validParameters_shouldReturnResponse() $queryTime = new DateTime(); $queryTime->setTime(18, 0); - $routePlanningRequest = new ResRobotRoutePlanningRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $routePlanningRequest = $resRobotWrapper->createRoutePlanningRequestObject(); $routePlanningRequest->setOriginStopId("740000001"); $routePlanningRequest->setDestinationStopId("740000002"); $routePlanningRequest->setDateTime($queryTime); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setRoutePlanningApiKey($this->_ROUTEPLANNING_API_KEY); $response = $resRobotWrapper->getRoutePlanning($routePlanningRequest); @@ -181,13 +179,13 @@ public function testGetRoutePlanning_WithVia_shouldReturnResponse() $queryTime = new DateTime(); $queryTime->setTime(18, 0); - $routePlanningRequest = new ResRobotRoutePlanningRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $routePlanningRequest = $resRobotWrapper->createRoutePlanningRequestObject(); $routePlanningRequest->setOriginStopId("740000001"); $routePlanningRequest->setDestinationStopId("740000002"); $routePlanningRequest->setDateTime($queryTime); $routePlanningRequest->setViaStopId("740000003"); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setRoutePlanningApiKey($this->_ROUTEPLANNING_API_KEY); $response = $resRobotWrapper->getRoutePlanning($routePlanningRequest); @@ -214,11 +212,11 @@ public function testGetRoutePlanning_invalidStationId_shouldThrowException() $this->expectException(InvalidStopLocationException::class); - $routePlanningRequest = new ResRobotRoutePlanningRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $routePlanningRequest = $resRobotWrapper->createRoutePlanningRequestObject(); $routePlanningRequest->setOriginStopId("740000001"); $routePlanningRequest->setDestinationStopId("7400-02"); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setRoutePlanningApiKey($this->_ROUTEPLANNING_API_KEY); $resRobotWrapper->getRoutePlanning($routePlanningRequest); @@ -228,11 +226,11 @@ public function testGetRoutePlanning_invalidApiKey_shouldThrowException() { $this->expectException(InvalidKeyException::class); - $routePlanningRequest = new ResRobotRoutePlanningRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $routePlanningRequest = $resRobotWrapper->createRoutePlanningRequestObject(); $routePlanningRequest->setOriginStopId("740000001"); $routePlanningRequest->setDestinationStopId("740000002"); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setRoutePlanningApiKey("ABC-012"); $resRobotWrapper->getRoutePlanning($routePlanningRequest); @@ -245,11 +243,11 @@ public function testGetRoutePlanning_missingApiKey_shouldThrowException() $queryTime = new DateTime(); $queryTime->setTime(18, 0); - $routePlanningRequest = new ResRobotRoutePlanningRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $routePlanningRequest = $resRobotWrapper->createRoutePlanningRequestObject(); $routePlanningRequest->setOriginStopId("740000001"); $routePlanningRequest->setDestinationStopId("740000002"); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setRoutePlanningApiKey(""); $resRobotWrapper->getRoutePlanning($routePlanningRequest); @@ -262,14 +260,14 @@ public function testGetRoutePlanning_invalidDate_shouldThrowException() $queryTime = new DateTime(); $queryTime->setDate(2100, 1, 1); - $routePlanningRequest = new ResRobotRoutePlanningRequest(); + $resRobotWrapper = new ResRobotWrapper(); + $routePlanningRequest = $resRobotWrapper->createRoutePlanningRequestObject(); $routePlanningRequest->setOriginStopId("740000001"); $routePlanningRequest->setDestinationStopId("740000002"); $routePlanningRequest->setLang("¯\_(ツ)_/¯"); $routePlanningRequest->setDateTime($queryTime); $routePlanningRequest->addTransportTypeToFilter(99999); - $resRobotWrapper = new ResRobotWrapper(); $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setRoutePlanningApiKey($this->_ROUTEPLANNING_API_KEY); $resRobotWrapper->getRoutePlanning($routePlanningRequest); @@ -277,15 +275,13 @@ public function testGetRoutePlanning_invalidDate_shouldThrowException() public function testLookupStopLocation_searchForTCentralen_shouldReturnMetroStation() { - - - $routePlanningRequest = new ResRobotStopLocationLookupRequest(); - $routePlanningRequest->setSearchQuery("t-centralen"); - $resRobotWrapper = new ResRobotWrapper(); + $lookupRequest = $resRobotWrapper->createStopLocationLookupRequestObject(); + $lookupRequest->setSearchQuery("t-centralen"); + $resRobotWrapper->setUserAgent("SDK Integration tests"); $resRobotWrapper->setStopLocationLookupApiKey($this->_ROUTEPLANNING_API_KEY); - $response = $resRobotWrapper->lookupStopLocation($routePlanningRequest); + $response = $resRobotWrapper->lookupStopLocation($lookupRequest); self::assertEquals("740020749", $response->getFoundStopLocations()[0]->getId()); self::assertEquals("T-Centralen T-bana (Stockholm kn)", $response->getFoundStopLocations()[0]->getName());