103 lines
2.5 KiB
PHP
103 lines
2.5 KiB
PHP
|
<?php
|
|||
|
|
|||
|
namespace AtolOnlineClient\AtolOnlineClient\Response;
|
|||
|
|
|||
|
use AtolOnlineClient\Request\V4\PaymentReceiptRequest;
|
|||
|
use JMS\Serializer\SerializerBuilder;
|
|||
|
use PHPUnit\Framework\TestCase;
|
|||
|
|
|||
|
/**
|
|||
|
*/
|
|||
|
class RequestTest extends TestCase
|
|||
|
{
|
|||
|
/**
|
|||
|
* @return void
|
|||
|
* @covers \AtolOnlineClient\Request\V4\ClientReceiptRequest
|
|||
|
* @covers \AtolOnlineClient\Request\V4\CompanyReceiptRequest
|
|||
|
* @covers \AtolOnlineClient\Request\V4\PaymentReceiptRequest
|
|||
|
* @covers \AtolOnlineClient\Request\V4\ReceiptItemRequest
|
|||
|
* @covers \AtolOnlineClient\Request\V4\ReceiptPaymentRequest
|
|||
|
* @covers \AtolOnlineClient\Request\V4\ReceiptRequest
|
|||
|
* @covers \AtolOnlineClient\Request\V4\ServiceRequest
|
|||
|
* @covers \AtolOnlineClient\Request\V4\VatReceiptRequest
|
|||
|
*/
|
|||
|
public function testRequest(): void
|
|||
|
{
|
|||
|
$serializer = SerializerBuilder::create()->build();
|
|||
|
|
|||
|
$request = '{
|
|||
|
"external_id": "17052917561851307",
|
|||
|
"receipt": {
|
|||
|
"client": {
|
|||
|
"name": "name",
|
|||
|
"email": "kkt@kkt.ru",
|
|||
|
"phone": "88002000600",
|
|||
|
"inn": "111111111"
|
|||
|
},
|
|||
|
"company": {
|
|||
|
"email": "chek@romashka.ru",
|
|||
|
"sno": "osn",
|
|||
|
"inn": "1234567891",
|
|||
|
"payment_address": "http://magazin.ru/"
|
|||
|
},
|
|||
|
"items": [
|
|||
|
{
|
|||
|
"name": "колбаса Клинский Брауншвейгская с/к в/с ",
|
|||
|
"price": 1000,
|
|||
|
"quantity": 0.3,
|
|||
|
"sum": 300,
|
|||
|
"measurement_unit": "кг",
|
|||
|
"payment_method": "full_payment",
|
|||
|
"payment_object": "commodity",
|
|||
|
"vat": {
|
|||
|
"type": "vat18"
|
|||
|
}
|
|||
|
},
|
|||
|
{
|
|||
|
"name": "яйцоОкскоекуриноеС0 белое",
|
|||
|
"price": 100,
|
|||
|
"quantity": 1,
|
|||
|
"sum": 100,
|
|||
|
"measurement_unit": "Упаковка10 шт.",
|
|||
|
"payment_method": "full_payment",
|
|||
|
"payment_object": "commodity",
|
|||
|
"vat": {
|
|||
|
"type": "vat10"
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
"payments": [
|
|||
|
{
|
|||
|
"type": 1,
|
|||
|
"sum": 400
|
|||
|
}
|
|||
|
],
|
|||
|
"vats": [
|
|||
|
{
|
|||
|
"type": "vat18",
|
|||
|
"sum": 45.76
|
|||
|
},
|
|||
|
{
|
|||
|
"type": "vat10",
|
|||
|
"sum": 9.09
|
|||
|
}
|
|||
|
],
|
|||
|
"total": 400
|
|||
|
},
|
|||
|
"service": {
|
|||
|
"callback_url": "http://testtest"
|
|||
|
},
|
|||
|
"timestamp": "01.02.1713:45:00"
|
|||
|
}';
|
|||
|
|
|||
|
/** @var PaymentReceiptRequest $request */
|
|||
|
$request = $serializer->deserialize(
|
|||
|
$request,
|
|||
|
PaymentReceiptRequest::class,
|
|||
|
'json'
|
|||
|
);
|
|||
|
|
|||
|
$this->assertSame('17052917561851307', $request->getExternalId());
|
|||
|
}
|
|||
|
}
|