|
| 1 | +<?php |
| 2 | + |
| 3 | +namespace DevGroup\Dreamkas\tests; |
| 4 | + |
| 5 | +use DevGroup\Dreamkas\Api; |
| 6 | +use DevGroup\Dreamkas\CustomerAttributes; |
| 7 | +use DevGroup\Dreamkas\exceptions\ValidationException; |
| 8 | +use DevGroup\Dreamkas\Payment; |
| 9 | +use DevGroup\Dreamkas\Position; |
| 10 | +use DevGroup\Dreamkas\Receipt; |
| 11 | +use DevGroup\Dreamkas\TaxMode; |
| 12 | +use GuzzleHttp\Exception\ClientException; |
| 13 | + |
| 14 | + |
| 15 | +/** |
| 16 | + * Class ApiTest |
| 17 | + */ |
| 18 | +class ApiTest extends \PHPUnit_Framework_TestCase |
| 19 | +{ |
| 20 | + |
| 21 | + public function testJson() |
| 22 | + { |
| 23 | + $api = new Api('FAKE', 123, Api::MODE_MOCK); |
| 24 | + $result = $api->json('GET', 'products'); |
| 25 | + |
| 26 | + $this->assertSame([[]], $result); |
| 27 | + } |
| 28 | + |
| 29 | + public function testPostReceipt() |
| 30 | + { |
| 31 | + |
| 32 | + $api = new Api('FAKE', 123, Api::MODE_MOCK); |
| 33 | + |
| 34 | + $receipt = new Receipt(); |
| 35 | + $receipt->taxMode = TaxMode::MODE_SIMPLE; |
| 36 | + $receipt->positions[] = new Position([ |
| 37 | + 'name' => 'Билет - тест', |
| 38 | + 'quantity' => 2, |
| 39 | + 'price' => 210000, |
| 40 | + ]); |
| 41 | + $receipt->payments[] = new Payment([ |
| 42 | + 'sum' => 420000, |
| 43 | + ]); |
| 44 | + $receipt->attributes = new CustomerAttributes([ |
| 45 | + 'email' => 'info@devgroup.ru', |
| 46 | + ]); |
| 47 | + |
| 48 | + $receipt->calculateSum(); |
| 49 | + |
| 50 | + |
| 51 | + $response = []; |
| 52 | + try { |
| 53 | + $response = $api->postReceipt($receipt); |
| 54 | + } catch (ValidationException $e) { |
| 55 | + $this->assertFalse(true, 'Validation exception: ' . $e->getMessage()); |
| 56 | + } catch (ClientException $e) { |
| 57 | + echo $e->getResponse()->getBody(); |
| 58 | + $this->assertFalse(true, 'Client exception'); |
| 59 | + } |
| 60 | + $this->assertArrayHasKey('status', $response); |
| 61 | + $this->assertArrayHasKey('id', $response); |
| 62 | + $this->assertArrayHasKey('createdAt', $response); |
| 63 | + |
| 64 | +// |
| 65 | + $receipt->type = Receipt::TYPE_REFUND; |
| 66 | + $response = []; |
| 67 | + try { |
| 68 | + $response = $api->postReceipt($receipt); |
| 69 | + } catch (ValidationException $e) { |
| 70 | + $this->assertFalse(true, 'Validation exception: ' . $e->getMessage()); |
| 71 | + } catch (ClientException $e) { |
| 72 | + echo $e->getResponse()->getBody(); |
| 73 | + $this->assertFalse(true, 'Client exception'); |
| 74 | + } |
| 75 | + $this->assertArrayHasKey('status', $response); |
| 76 | + $this->assertArrayHasKey('id', $response); |
| 77 | + $this->assertArrayHasKey('createdAt', $response); |
| 78 | + |
| 79 | + } |
| 80 | + |
| 81 | + |
| 82 | +} |
0 commit comments