Example #1
0
 public function testCanDoCreatePnrCall()
 {
     $mockedSendResult = new Client\Session\Handler\SendResult();
     $mockedSendResult->responseXml = 'A dummy message result';
     // Not an actual XML reply.
     $mockedSendResult->responseObject = new \stdClass();
     $mockedSendResult->responseObject->dummyprop = 'A dummy message result';
     // Not an actual response property
     $messageResult = new Client\Result($mockedSendResult);
     $options = new Client\RequestOptions\PnrCreatePnrOptions();
     $options->actionCode = 11;
     //11 End transact with retrieve (ER)
     $options->travellers[] = new Client\RequestOptions\Pnr\Traveller(['number' => 1, 'firstName' => 'FirstName', 'lastName' => 'LastName']);
     $options->itineraries = [new Client\RequestOptions\Pnr\Itinerary(['segments' => [new Client\RequestOptions\Pnr\Segment\Miscellaneous(['status ' => Client\RequestOptions\Pnr\Segment::STATUS_CONFIRMED, 'company' => '1A', 'date' => \DateTime::createFromFormat('Ymd', '20161022', new \DateTimeZone('UTC')), 'cityCode' => 'BRU', 'freeText' => 'DUMMY MISCELLANEOUS SEGMENT'])]])];
     $options->elements[] = new Client\RequestOptions\Pnr\Element\Ticketing(['ticketMode' => 'OK']);
     $options->elements[] = new Client\RequestOptions\Pnr\Element\Contact(['type' => Client\RequestOptions\Pnr\Element\Contact::TYPE_PHONE_MOBILE, 'value' => '+3222222222']);
     $expectedPnrResult = new Client\Struct\Pnr\AddMultiElements($options);
     $receivedFromElement = new Client\Struct\Pnr\AddMultiElements\DataElementsIndiv(Client\Struct\Pnr\AddMultiElements\ElementManagementData::SEGNAME_RECEIVE_FROM, 4);
     $receivedFromElement->freetextData = new Client\Struct\Pnr\AddMultiElements\FreetextData('some RF string amabnl-amadeus-ws-client-' . Client::VERSION, Client\Struct\Pnr\AddMultiElements\FreetextDetail::TYPE_RECEIVE_FROM);
     $expectedPnrResult->dataElementsMaster->dataElementsIndiv[] = $receivedFromElement;
     $mockSessionHandler = $this->getMockBuilder('Amadeus\\Client\\Session\\Handler\\HandlerInterface')->getMock();
     $mockSessionHandler->expects($this->once())->method('sendMessage')->with('PNR_AddMultiElements', $expectedPnrResult, ['endSession' => false])->will($this->returnValue($mockedSendResult));
     $mockSessionHandler->expects($this->once())->method('getMessagesAndVersions')->will($this->returnValue(['PNR_AddMultiElements' => '14.2']));
     $mockResponseHandler = $this->getMockBuilder('Amadeus\\Client\\ResponseHandler\\ResponseHandlerInterface')->getMock();
     $mockResponseHandler->expects($this->once())->method('analyzeResponse')->with($mockedSendResult, 'PNR_AddMultiElements')->will($this->returnValue($messageResult));
     $par = new Params();
     $par->sessionHandler = $mockSessionHandler;
     $par->requestCreatorParams = new Params\RequestCreatorParams(['receivedFrom' => 'some RF string', 'originatorOfficeId' => 'BRUXXXXXX']);
     $par->responseHandler = $mockResponseHandler;
     $client = new Client($par);
     $response = $client->pnrCreatePnr($options);
     $this->assertEquals($messageResult, $response);
 }