Test Failed
Pull Request — master (#9)
by Vladislav
08:00
created

PurchaseTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 15
c 1
b 0
f 0
dl 0
loc 29
rs 10
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testMarketInfoEndpoint() 0 12 2
A testMarketInfoDTOBuilder() 0 4 1
A testMarketInfoResponseHandlerBuilder() 0 5 1
1
<?php
2
namespace Carpenstar\ByBitAPI\Spot\LeverageToken\Purchase\Tests;
3
4
use Carpenstar\ByBitAPI\Core\Builders\ResponseDtoBuilder;
5
use Carpenstar\ByBitAPI\Core\Builders\ResponseHandlerBuilder;
6
use Carpenstar\ByBitAPI\Core\Builders\RestBuilder;
7
use Carpenstar\ByBitAPI\Core\Enums\EnumOutputMode;
8
use Carpenstar\ByBitAPI\Core\Objects\Collection\EntityCollection;
9
use Carpenstar\ByBitAPI\Core\Response\CurlResponseDto;
10
use Carpenstar\ByBitAPI\Core\Response\CurlResponseHandler;
11
use Carpenstar\ByBitAPI\Spot\LeverageToken\Purchase\Overrides\TestPurchase;
12
use Carpenstar\ByBitAPI\Spot\LeverageToken\Purchase\Request\PurchaseRequest;
13
use Carpenstar\ByBitAPI\Spot\LeverageToken\Purchase\Response\PurchaseResponse;
14
use PHPUnit\Framework\TestCase;
15
16
class PurchaseTest extends TestCase
17
{
18
    static private string $purchaseResponse = '{"retCode":0,"retMsg":"success","result":{"amount":"100","id":"2085","ltCode":"DOT3LUSDT","orderAmount":"","orderQuantity":"","orderStatus":"2","serialNo":"x005","timestamp": 1662549845373,"valueCoin":"USDT"},"retExtInfo":{},"time":1662549845453}';
19
20
    public function testMarketInfoDTOBuilder()
21
    {
22
        $dto = ResponseDtoBuilder::make(PurchaseResponse::class, json_decode(self::$purchaseResponse, true)['result']);
23
        $this->assertInstanceOf(PurchaseResponse::class, $dto);
24
    }
25
26
    public function testMarketInfoResponseHandlerBuilder()
27
    {
28
        $handler = ResponseHandlerBuilder::make(self::$purchaseResponse, CurlResponseHandler::class, PurchaseResponse::class);
29
        $this->assertInstanceOf(EntityCollection::class, $handler->getBody());
30
        $this->assertGreaterThan(0, $handler->getBody()->count());
31
    }
32
33
    public function testMarketInfoEndpoint()
34
    {
35
        $endpoint = RestBuilder::make(TestPurchase::class, (new PurchaseRequest()));
36
37
        $entityResponse = $endpoint->execute(EnumOutputMode::MODE_ENTITY, self::$purchaseResponse);
38
        $this->assertInstanceOf(CurlResponseDto::class, $entityResponse);
39
        $body = $entityResponse->getBody();
40
        $this->assertInstanceOf(EntityCollection::class, $body);
41
42
        foreach ($body->fetch() as $wallet) {
43
            $dto = ResponseDtoBuilder::make(PurchaseResponse::class, $wallet);
44
            $this->assertInstanceOf(PurchaseResponse::class, $dto);
45
        }
46
    }
47
}