Skip to content

Commit

Permalink
Update sdk-commons, implement new methods
Browse files Browse the repository at this point in the history
  • Loading branch information
Bertware committed May 15, 2019
1 parent 6fc8eeb commit 0307d51
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 41 deletions.
8 changes: 1 addition & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,14 @@
"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",
"squizlabs/php_codesniffer": "^3.4",
"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/"
Expand Down
10 changes: 10 additions & 0 deletions src/Trafiklab/Resrobot/Model/ResRobotVehicle.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'];
Expand Down
15 changes: 15 additions & 0 deletions src/Trafiklab/Resrobot/ResRobotWrapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/
Expand Down
64 changes: 30 additions & 34 deletions tests/Trafiklab/Resrobot/ResRobotWrapperIntegrationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand All @@ -34,20 +31,19 @@ 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);

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
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -113,19 +111,19 @@ 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);

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
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -262,30 +260,28 @@ 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);
}

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());
Expand Down

0 comments on commit 0307d51

Please sign in to comment.