shell bypass 403
<?php namespace Tests\YandexCheckout\Model; use PHPUnit\Framework\TestCase; use YandexCheckout\Helpers\Random; use YandexCheckout\Helpers\StringObject; use YandexCheckout\Model\AmountInterface; use YandexCheckout\Model\CurrencyCode; use YandexCheckout\Model\MonetaryAmount; use YandexCheckout\Model\ReceiptRegistrationStatus; use YandexCheckout\Model\Refund; use YandexCheckout\Model\RefundStatus; use YandexCheckout\Model\Source; use YandexCheckout\Request\Refunds\CreateRefundRequest; class RefundTest extends TestCase { /** * @dataProvider validIdDataProvider * @param string $value */ public function testGetSetId($value) { $instance = new Refund(); self::assertNull($instance->getId()); self::assertNull($instance->id); $instance->setId($value); self::assertEquals((string)$value, $instance->getId()); self::assertEquals((string)$value, $instance->id); $instance = new Refund(); $instance->id = $value; self::assertEquals((string)$value, $instance->getId()); self::assertEquals((string)$value, $instance->id); } public function validIdDataProvider() { $values = 'abcdefghijklmnopqrstuvwxyz'; $values .= strtoupper($values) . '0123456789._-+'; return array( array(Random::str(36, $values)), array(Random::str(36, $values)), array(new StringObject(Random::str(36, $values))), array(new StringObject(Random::str(36, $values))), ); } /** * @dataProvider invalidIdDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetInvalidId($value) { $instance = new Refund(); $instance->setId($value); } /** * @dataProvider invalidIdDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetterInvalidId($value) { $instance = new Refund(); $instance->id = $value; } /** * @return array */ public function invalidIdDataProvider() { return array( array(''), array(null), array(array()), array(Random::str(1,35)), array(Random::str(1)), array(Random::str(35)), array(Random::str(37,48)), array(Random::str(37)), array(new \stdClass()), array(1), array(0), array(-1), array(true), array(false), ); } /** * @dataProvider validSources * @param $value */ public function testSetSources($value) { $instance = new CreateRefundRequest(); $instance->setSources($value); if (is_array($value)) { $value = array(new Source($value[0])); } self::assertEquals($value, $instance->getSources()); } /** * @return array[] * @throws \Exception */ public function validSources() { $sources = array(); for($i = 0; $i < 10; $i++) { $sources[$i][] = array( 'account_id' => (string)Random::int(11111111, 99999999), 'amount' => array( 'value' => sprintf('%.2f', round(Random::float(0.1, 99.99), 2)), 'currency' => Random::value(CurrencyCode::getValidValues()) ), 'platform_fee_amount' => array( 'value' => sprintf('%.2f', round(Random::float(0.1, 99.99), 2)), 'currency' => Random::value(CurrencyCode::getValidValues()) ), ); } $sources[$i][] = array(new Source($sources[0])); return array($sources); } /** * @dataProvider validIdDataProvider * @param string $value */ public function testGetSetPaymentId($value) { $instance = new Refund(); self::assertNull($instance->getPaymentId()); self::assertNull($instance->paymentId); self::assertNull($instance->payment_id); $instance->setPaymentId($value); self::assertEquals((string)$value, $instance->getPaymentId()); self::assertEquals((string)$value, $instance->paymentId); self::assertEquals((string)$value, $instance->payment_id); $instance = new Refund(); $instance->paymentId = $value; self::assertEquals((string)$value, $instance->getPaymentId()); self::assertEquals((string)$value, $instance->paymentId); self::assertEquals((string)$value, $instance->payment_id); $instance = new Refund(); $instance->payment_id = $value; self::assertEquals((string)$value, $instance->getPaymentId()); self::assertEquals((string)$value, $instance->paymentId); self::assertEquals((string)$value, $instance->payment_id); } /** * @dataProvider invalidIdDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetInvalidPaymentId($value) { $instance = new Refund(); $instance->setPaymentId($value); } /** * @dataProvider invalidIdDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetterInvalidPaymentId($value) { $instance = new Refund(); $instance->paymentId = $value; } /** * @dataProvider invalidIdDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetterInvalidPayment_id($value) { $instance = new Refund(); $instance->payment_id = $value; } /** * @dataProvider validStatusDataProvider * @param string $value */ public function testGetSetStatus($value) { $instance = new Refund(); self::assertNull($instance->getStatus()); self::assertNull($instance->status); $instance->setStatus($value); self::assertEquals((string)$value, $instance->getStatus()); self::assertEquals((string)$value, $instance->status); $instance = new Refund(); $instance->status = $value; self::assertEquals((string)$value, $instance->getStatus()); self::assertEquals((string)$value, $instance->status); } /** * @return array */ public function validStatusDataProvider() { $result = array(); foreach (RefundStatus::getValidValues() as $value) { $result[] = array($value); $result[] = array(new StringObject($value)); } return $result; } /** * @dataProvider invalidIdDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetInvalidStatus($value) { $instance = new Refund(); $instance->setStatus($value); } /** * @dataProvider invalidIdDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetterInvalidStatus($value) { $instance = new Refund(); $instance->status = $value; } /** * @dataProvider validCreatedAtDataProvider * @param mixed $value */ public function testGetSetCreatedAt($value) { $instance = new Refund(); if (is_numeric($value)) { $expected = $value; } elseif ($value instanceof \DateTime) { $expected = $value->getTimestamp(); } else { $expected = strtotime((string)$value); } self::assertNull($instance->getCreatedAt()); self::assertNull($instance->createdAt); self::assertNull($instance->created_at); $instance->setCreatedAt($value); self::assertSame($expected, $instance->getCreatedAt()->getTimestamp()); self::assertSame($expected, $instance->createdAt->getTimestamp()); self::assertSame($expected, $instance->created_at->getTimestamp()); $instance = new Refund(); $instance->createdAt = $value; self::assertSame($expected, $instance->getCreatedAt()->getTimestamp()); self::assertSame($expected, $instance->createdAt->getTimestamp()); self::assertSame($expected, $instance->created_at->getTimestamp()); $instance = new Refund(); $instance->created_at = $value; self::assertSame($expected, $instance->getCreatedAt()->getTimestamp()); self::assertSame($expected, $instance->createdAt->getTimestamp()); self::assertSame($expected, $instance->created_at->getTimestamp()); } /** * @return array */ public function validCreatedAtDataProvider() { return array( array(new \DateTime()), array(new \DateTime(date(DATE_ATOM, Random::int(1, time())))), array(time()), array(Random::int(1, time())), array(date(DATE_ATOM)), array(date(DATE_ATOM, Random::int(1, time()))), array(new StringObject(date(DATE_ATOM))), array(new StringObject(date(DATE_ATOM, Random::int(1, time())))), ); } /** * @dataProvider invalidCreatedAtDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetInvalidCreatedAt($value) { $instance = new Refund(); $instance->setCreatedAt($value); } /** * @dataProvider invalidCreatedAtDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetterInvalidCreatedAt($value) { $instance = new Refund(); $instance->createdAt = $value; } /** * @dataProvider invalidCreatedAtDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetterInvalidCreated_at($value) { $instance = new Refund(); $instance->created_at = $value; } /** * @return array */ public function invalidCreatedAtDataProvider() { return array( array(null), array(''), array(array()), array(new \stdClass()), array('test'), ); } /** * @dataProvider validAmountDataProvider * @param AmountInterface $value */ public function testGetSetAmount($value) { $instance = new Refund(); self::assertNull($instance->getAmount()); self::assertNull($instance->amount); $instance->setAmount($value); self::assertSame($value, $instance->getAmount()); self::assertSame($value, $instance->amount); $instance = new Refund(); $instance->amount = $value; self::assertSame($value, $instance->getAmount()); self::assertSame($value, $instance->amount); } /** * @return array */ public function validAmountDataProvider() { return array( array(new MonetaryAmount(1)), array(new MonetaryAmount(Random::float(0.01, 9999999.99))), ); } /** * @dataProvider invalidAmountDataProvider * @param mixed $value */ public function testSetInvalidAmount($value) { if ($value instanceof AmountInterface) { self::setExpectedException('InvalidArgumentException'); $instance = new Refund(); $instance->setAmount($value); } elseif (class_exists('TypeError')) { self::setExpectedException('TypeError'); $instance = new Refund(); $instance->setAmount($value); } } /** * @dataProvider invalidAmountDataProvider * @param mixed $value */ public function testSetterInvalidAmount($value) { if ($value instanceof AmountInterface) { self::setExpectedException('InvalidArgumentException'); $instance = new Refund(); $instance->amount = $value; } elseif (class_exists('TypeError')) { self::setExpectedException('TypeError'); $instance = new Refund(); $instance->amount = $value; } } /** * @return array */ public function invalidAmountDataProvider() { return array( array(''), array(null), array(true), array(false), array(new MonetaryAmount()), array(array()), array(1), array(new \stdClass()), ); } /** * @dataProvider validReceiptRegisteredDataProvider * @param string $value */ public function testGetSetReceiptRegistered($value) { $instance = new Refund(); self::assertNull($instance->getReceiptRegistration()); self::assertNull($instance->receiptRegistration); self::assertNull($instance->receipt_registration); $instance->setReceiptRegistration($value); self::assertEquals((string)$value, $instance->getReceiptRegistration()); self::assertEquals((string)$value, $instance->receiptRegistration); self::assertEquals((string)$value, $instance->receipt_registration); $instance = new Refund(); $instance->receiptRegistration = $value; self::assertEquals((string)$value, $instance->getReceiptRegistration()); self::assertEquals((string)$value, $instance->receiptRegistration); self::assertEquals((string)$value, $instance->receipt_registration); $instance = new Refund(); $instance->receipt_registration = $value; self::assertEquals((string)$value, $instance->getReceiptRegistration()); self::assertEquals((string)$value, $instance->receiptRegistration); self::assertEquals((string)$value, $instance->receipt_registration); } /** * @return array */ public function validReceiptRegisteredDataProvider() { $result = array(); foreach (ReceiptRegistrationStatus::getValidValues() as $value) { $result[] = array($value); $result[] = array(new StringObject($value)); } return $result; } /** * @dataProvider invalidReceiptRegisteredDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetInvalidReceiptRegistered($value) { $instance = new Refund(); $instance->setReceiptRegistration($value); } /** * @dataProvider invalidReceiptRegisteredDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetterInvalidReceiptRegistration($value) { $instance = new Refund(); $instance->receiptRegistration = $value; } /** * @dataProvider invalidReceiptRegisteredDataProvider * @expectedException \InvalidArgumentException * @param $value */ public function testSetterInvalidReceipt_registration($value) { $instance = new Refund(); $instance->receipt_registration = $value; } /** * @return array */ public function invalidReceiptRegisteredDataProvider() { return array( array(''), array(null), array(true), array(false), array(array()), array(new \stdClass()), array(Random::str(1,10)), array(new StringObject(Random::str(1,10))), ); } /** * @dataProvider validCommentDataProvider * @param string $value */ public function testGetSetDescription($value) { $instance = new Refund(); self::assertNull($instance->getDescription()); self::assertNull($instance->description); $instance->setDescription($value); self::assertEquals((string)$value, $instance->getDescription()); self::assertEquals((string)$value, $instance->description); $instance = new Refund(); $instance->description = $value; self::assertEquals((string)$value, $instance->getDescription()); self::assertEquals((string)$value, $instance->description); } public function validCommentDataProvider() { return array( array(Random::str(1, 249)), array(new StringObject(Random::str(1, 249))), array(Random::str(250)), array(new StringObject(Random::str(250))), ); } /** * @dataProvider invalidCommentDataProvider * @expectedException \InvalidArgumentException * @param mixed $value */ public function testSetInvalidComment($value) { $instance = new Refund(); $instance->setDescription($value); } /** * @dataProvider invalidCommentDataProvider * @expectedException \InvalidArgumentException * @param mixed $value */ public function testSetterInvalidComment($value) { $instance = new Refund(); $instance->description = $value; } public function invalidCommentDataProvider() { return array( array(null), array(''), array(array()), array(true), array(false), array(new \stdClass()), ); } }