meraproject/vendor/yoomoney/yookassa-sdk-php/tests/Model/AirlineTest.php

215 lines
6.1 KiB
PHP
Raw Permalink Normal View History

<?php
namespace Tests\YooKassa\Model;
use YooKassa\Model\Airline;
use PHPUnit\Framework\TestCase;
use YooKassa\Model\Leg;
use YooKassa\Model\LegInterface;
use YooKassa\Model\Passenger;
use YooKassa\Model\PassengerInterface;
class AirlineTest extends TestCase
{
/**
* @dataProvider validDataProvider
*
* @param $data
*/
public function testAirlineInstantiate($data)
{
$airline = new Airline();
self::assertFalse($airline->notEmpty());
$airline->setBookingReference($data['booking_reference']);
$airline->setTicketNumber($data['ticket_number']);
$airline->setPassengers($data['passengers']);
$airline->setLegs($data['legs']);
self::assertEquals($airline->getBookingReference(), $data['booking_reference']);
self::assertEquals($airline->getTicketNumber(), $data['ticket_number']);
self::assertTrue(is_array($airline->getPassengers()));
self::assertTrue(is_array($airline->getLegs()));
foreach ($airline->getLegs() as $leg) {
self::assertTrue($leg instanceof LegInterface);
}
foreach ($airline->getPassengers() as $passenger) {
self::assertTrue($passenger instanceof PassengerInterface);
}
self::assertTrue($airline->notEmpty());
}
/**
* @dataProvider validDataProvider
*
* @param $data
*/
public function testFromArrayInstantiate($data)
{
$airline = new Airline();
$airline->fromArray($data);
self::assertEquals($airline->getBookingReference(), $data['booking_reference']);
self::assertEquals($airline->getTicketNumber(), $data['ticket_number']);
self::assertTrue(is_array($airline->getPassengers()));
self::assertTrue(is_array($airline->getLegs()));
foreach ($airline->getLegs() as $leg) {
self::assertTrue($leg instanceof LegInterface);
}
foreach ($airline->getPassengers() as $passenger) {
self::assertTrue($passenger instanceof PassengerInterface);
}
self::assertTrue($airline->notEmpty());
}
/**
* @dataProvider exceptionDataProvider
*/
public function testAirlinePassengersDataValidate($data)
{
$airline = new Airline();
$this->setExpectedException($data['exception']);
$airline->setPassengers($data['value']);
}
/**
* @dataProvider exceptionDataProvider
*/
public function testAirlineLegsDataValidate($data)
{
$airline = new Airline();
$this->setExpectedException($data['exception']);
$airline->setLegs($data['value']);
}
/**
* @dataProvider stringsExceptionDataProvider
*/
public function testBookingReferenceValidate($data)
{
$airline = new Airline();
$this->setExpectedException($data['exception']);
$airline->setBookingReference($data['value']);
}
/**
* @dataProvider stringsExceptionDataProvider
*/
public function testTicketNumberValidate($data)
{
$airline = new Airline();
$this->setExpectedException($data['exception']);
$airline->setTicketNumber($data['value']);
}
public function validDataProvider()
{
$passenger = new Passenger();
$passenger->setFirstName("SERGEI");
$passenger->setLastName("IVANOV");
$leg = new Leg();
$leg->setDepartureAirport('LED');
$leg->setDestinationAirport("AMS");
$leg->setDepartureDate("2018-06-20");
return array(
array(
array(
"booking_reference" => "IIIKRV",
"ticket_number" => '12342123413',
"passengers" => array(
array(
"first_name" => "SERGEI",
"last_name" => "IVANOV",
),
),
"legs" => array(
array(
"departure_airport" => "LED",
"destination_airport" => "AMS",
"departure_date" => "2018-06-20",
),
),
),
),
array(
array(
"booking_reference" => "",
"ticket_number" => '',
"passengers" => array(
$passenger,
),
"legs" => array(
$leg,
),
),
),
);
}
public function exceptionDataProvider()
{
return array(
array(
array(
"exception" => 'YooKassa\Common\Exceptions\EmptyPropertyValueException',
"value" => '',
),
),
array(
array(
"exception" => 'YooKassa\Common\Exceptions\EmptyPropertyValueException',
"value" => null,
),
),
array(
array(
"exception" => 'YooKassa\Common\Exceptions\InvalidPropertyValueTypeException',
"value" => new \stdClass(),
),
),
array(
array(
"exception" => 'YooKassa\Common\Exceptions\InvalidPropertyValueTypeException',
"value" => array(1, 2, 3),
),
),
);
}
public function stringsExceptionDataProvider()
{
return array(
array(
array(
"exception" => 'YooKassa\Common\Exceptions\InvalidPropertyValueTypeException',
"value" => array(),
),
),
array(
array(
"exception" => 'YooKassa\Common\Exceptions\InvalidPropertyValueException',
"value" => 'stringThatGreaterThanNeededCharsLongAndActuallyNotValidAtAll123',
),
),
);
}
}