shell bypass 403
<?php
namespace Tests\YandexCheckout\Model;
use PHPUnit\Framework\TestCase;
use YandexCheckout\Helpers\Random;
use YandexCheckout\Model\Receipt;
use YandexCheckout\Model\ReceiptCustomer;
class ReceiptCustomerTest extends TestCase
{
/**
* @dataProvider validDataProvider
* @param $options
*/
public function testGetSetPhone($options)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getPhone());
self::assertNull($instance->phone);
$value = !empty($options['customer']['phone'])
? $options['customer']['phone']
: (!empty($options['phone']) ? $options['phone'] : null);
$instance->setPhone($value);
if ($value === null || $value === '') {
self::assertNull($instance->getPhone());
self::assertNull($instance->phone);
} else {
self::assertEquals($value, $instance->getPhone());
self::assertEquals($value, $instance->phone);
}
}
/**
* @dataProvider validDataProvider
* @param $options
*/
public function testSetterPhone($options)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getPhone());
self::assertNull($instance->phone);
$value = !empty($options['customer']['phone'])
? $options['customer']['phone']
: (!empty($options['phone']) ? $options['phone'] : null);
$instance->phone = $value;
if ($value === null || $value === '') {
self::assertNull($instance->getPhone());
self::assertNull($instance->phone);
} else {
self::assertEquals($value, $instance->getPhone());
self::assertEquals($value, $instance->phone);
}
}
/**
* @dataProvider invalidPhoneProvider
* @expectedException \InvalidArgumentException
* @param $value
*/
public function testSetInvalidPhone($value)
{
$instance = new ReceiptCustomer();
$instance->setPhone($value);
}
public function invalidPhoneProvider()
{
return array(
array(new \stdClass()),
array(array()),
array(true),
array(false),
);
}
/**
* @dataProvider validDataProvider
* @param $options
*/
public function testGetSetEmail($options)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getEmail());
self::assertNull($instance->email);
$value = !empty($options['customer']['email'])
? $options['customer']['email']
: (!empty($options['email']) ? $options['email'] : null);
$instance->setEmail($value);
if ($value === null || $value === '') {
self::assertNull($instance->getEmail());
self::assertNull($instance->email);
} else {
self::assertEquals($value, $instance->getEmail());
self::assertEquals($value, $instance->email);
}
}
/**
* @dataProvider validDataProvider
* @param $options
*/
public function testSetterEmail($options)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getEmail());
self::assertNull($instance->email);
$value = !empty($options['customer']['email'])
? $options['customer']['email']
: (!empty($options['email']) ? $options['email'] : null);
$instance->email = $value;
if ($value === null || $value === '') {
self::assertNull($instance->getEmail());
self::assertNull($instance->email);
} else {
self::assertEquals($value, $instance->getEmail());
self::assertEquals($value, $instance->email);
}
}
/**
* @dataProvider validFullNameProvider
* @param $value
*/
public function testGetSetFullName($value)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getFullName());
self::assertNull($instance->fullName);
self::assertNull($instance->full_name);
$instance->setFullName($value);
if ($value === null || $value === '') {
self::assertNull($instance->getFullName());
self::assertNull($instance->fullName);
self::assertNull($instance->full_name);
} else {
self::assertEquals($value, $instance->getFullName());
self::assertEquals($value, $instance->fullName);
self::assertEquals($value, $instance->full_name);
}
}
/**
* @dataProvider validFullNameProvider
* @param $value
*/
public function testSetterFullName($value)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getFullName());
self::assertNull($instance->fullName);
self::assertNull($instance->full_name);
$instance->fullName = $value;
if ($value === null || $value === '') {
self::assertNull($instance->getFullName());
self::assertNull($instance->fullName);
self::assertNull($instance->full_name);
} else {
self::assertEquals($value, $instance->getFullName());
self::assertEquals($value, $instance->fullName);
self::assertEquals($value, $instance->full_name);
}
}
/**
* @dataProvider validFullNameProvider
* @param $value
*/
public function testSetterFull_name($value)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getFullName());
self::assertNull($instance->fullName);
self::assertNull($instance->full_name);
$instance->full_name = $value;
if ($value === null || $value === '') {
self::assertNull($instance->getFullName());
self::assertNull($instance->fullName);
self::assertNull($instance->full_name);
} else {
self::assertEquals($value, $instance->getFullName());
self::assertEquals($value, $instance->fullName);
self::assertEquals($value, $instance->full_name);
}
}
public function validFullNameProvider()
{
return array(
array(null),
array(''),
array(Random::str(1)),
array(Random::str(null, 256)),
array(Random::str(256)),
);
}
/**
* @dataProvider invalidFullNameProvider
* @expectedException \InvalidArgumentException
* @param $value
*/
public function testSetInvalidFullName($value)
{
$instance = new ReceiptCustomer();
$instance->setFullName($value);
}
public function invalidFullNameProvider()
{
return array(
array(new \stdClass()),
array(array()),
array(true),
array(false),
array(Random::str(257)),
);
}
/**
* @dataProvider validInnProvider
* @param $value
*/
public function testGetSetInn($value)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getInn());
self::assertNull($instance->inn);
$instance->setInn($value);
if ($value === null || $value === '') {
self::assertNull($instance->getInn());
self::assertNull($instance->inn);
} else {
self::assertEquals($value, $instance->getInn());
self::assertEquals($value, $instance->inn);
}
}
/**
* @dataProvider validInnProvider
* @param $options
*/
public function testSetterInn($options)
{
$instance = new ReceiptCustomer();
self::assertNull($instance->getInn());
self::assertNull($instance->inn);
$instance->inn = $options;
if ($options === null || $options === '') {
self::assertNull($instance->getInn());
self::assertNull($instance->inn);
} else {
self::assertEquals($options, $instance->getInn());
self::assertEquals($options, $instance->inn);
}
}
public function validInnProvider()
{
return array(
array(null),
array(''),
array('1234567890'),
array('123456789012'),
array(Random::str(10, 10, '1234567890')),
array(Random::str(12, 12, '1234567890')),
);
}
/**
* @dataProvider invalidInnProvider
* @expectedException \InvalidArgumentException
* @param $value
*/
public function testSetInvalidInn($value)
{
$instance = new ReceiptCustomer();
$instance->setInn($value);
}
public function invalidInnProvider()
{
return array(
array(new \stdClass()),
array(array()),
array(true),
array(false),
array('123456789'),
array('12345678901'),
array('1234567890123'),
array(Random::str(1)),
array(Random::str(10, 10, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')),
array(Random::str(12, 12, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')),
array(Random::str(13, 13, '1234567890')),
);
}
public function validDataProvider()
{
$result = array(
array(
array(
'customer' => array(),
),
),
array(
array(
'customer' => array(),
'phone' => Random::str(10, 10, '1234567890'),
'email' => uniqid() . '@' . uniqid(),
),
),
array(
array(
'customer' => array(
'phone' => Random::str(10, 10, '1234567890'),
'email' => uniqid() . '@' . uniqid(),
),
),
),
array(
array(
'customer' => array(
'full_name' => Random::str(1, 256),
'inn' => Random::str(12, 12, '1234567890'),
),
'phone' => Random::str(10, 10, '1234567890'),
'email' => uniqid() . '@' . uniqid(),
),
),
array(
array(
'customer' => array(
'full_name' => Random::str(1, 256),
'phone' => Random::str(10, 10, '1234567890'),
'email' => uniqid() . '@' . uniqid(),
'inn' => Random::str(10, 10, '1234567890'),
),
),
),
);
return $result;
}
/**
* @dataProvider fromArrayDataProvider
* @param array $source
* @param ReceiptCustomer $expected
*/
public function testCustomerFromArray($source, $expected)
{
$receipt = new Receipt();
$receipt->fromArray($source);
if (!empty($expected)) {
foreach ($expected as $property => $value) {
self::assertEquals($value, $expected->offsetGet($property));
}
} else {
self::assertEquals(null, $receipt->getCustomer());
}
}
public function fromArrayDataProvider()
{
$customer = new ReceiptCustomer();
$customer->setFullName('John Doe');
$customer->setEmail('johndoe@yandex.ru');
$customer->setPhone('79000000000');
$customer->setInn('6321341814');
return array(
array(
array(),
null,
),
array(
array(
'customer' => array(
'fullName' => 'John Doe',
'email' => 'johndoe@yandex.ru',
'phone' => '79000000000',
'inn' => '6321341814',
),
),
$customer
),
array(
array(
'customer' => array(
'full_name' => 'John Doe',
'inn' => '6321341814',
'email' => 'johndoe@yandex.ru',
'phone' => '79000000000',
),
),
$customer
),
array(
array(
'customer' => array(
'fullName' => 'John Doe',
'inn' => '6321341814',
),
'email' => 'johndoe@yandex.ru',
'phone' => '79000000000',
),
$customer
),
array(
array(
'customer' => array(
'full_name' => 'John Doe',
'inn' => '6321341814',
'email' => 'johndoe@yandex.ru',
),
'phone' => '79000000000',
),
$customer
),
array(
array(
'customer' => array(
'fullName' => 'John Doe',
'inn' => '6321341814',
'phone' => '79000000000',
),
'email' => 'johndoe@yandex.ru',
),
$customer
),
array(
array(
'customer' => array(
'full_name' => 'John Doe',
'inn' => '6321341814',
'phone' => '79000000000',
'email' => 'johndoe@yandex.ru',
),
'email' => 'johndoeOld@yandex.ru',
),
$customer
),
array(
array(
'customer' => array(
'fullName' => 'John Doe',
'inn' => '6321341814',
'phone' => '79000000000',
'email' => 'johndoe@yandex.ru',
),
'phone' => '79111111111',
),
$customer
),
array(
array(
'customer' => array(
'full_name' => 'John Doe',
'inn' => '6321341814',
'phone' => '79000000000',
'email' => 'johndoe@yandex.ru',
),
'phone' => '79111111111',
'email' => 'johndoeOld@yandex.ru',
),
$customer
),
);
}
}