Passed
Push — master ( faa4ac...572ea2 )
by Vladislav
06:35 queued 04:06
created

PurchaseRedeemHistoryTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 31
rs 10
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testPurchaseRedeemHistoryEndpoint() 0 12 2
A testPurchaseRedeemHistoryResponseHandlerBuilder() 0 5 1
A testPurchaseRedeemHistoryDTOBuilder() 0 5 2
1
<?php
2
namespace Carpenstar\ByBitAPI\Spot\LeverageToken\PurchaseRedeemHistory\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\PurchaseRedeemHistory\Overrides\TestPurchaseRedeemHistory;
12
use Carpenstar\ByBitAPI\Spot\LeverageToken\PurchaseRedeemHistory\Request\PurchaseRedeemHistoryRequest;
13
use Carpenstar\ByBitAPI\Spot\LeverageToken\PurchaseRedeemHistory\Response\PurchaseRedeemHistoryResponse;
14
use PHPUnit\Framework\TestCase;
15
16
class PurchaseRedeemHistoryTest extends TestCase
17
{
18
    static private string $purchaseRedeemResponse = '{"retCode":0,"retMsg":"success","result":{"list":[{"amount":"","excTime":1662549752000,"fee":"","ltCode":"DOT3L","orderId":"2083","orderStatus":"3","orderTime":1662549752000,"orderType":1,"serialNo":"x003","value":"","valueCoin":"USDT"},{"amount":"","excTime":1662549702000,"fee":"","ltCode":"DOT3L","orderId":"2082","orderStatus":"3","orderTime":1662549702000,"orderType":1,"serialNo":"x002","value":"","valueCoin":"USDT"}]},"retExtInfo":{},"time":1662608374640}';
19
20
    public function testPurchaseRedeemHistoryDTOBuilder()
21
    {
22
        foreach (json_decode(self::$purchaseRedeemResponse, true)['result']["list"] as $item) {
23
            $dto = ResponseDtoBuilder::make(PurchaseRedeemHistoryResponse::class, $item);
24
            $this->assertInstanceOf(PurchaseRedeemHistoryResponse::class, $dto);
25
        }
26
    }
27
28
    public function testPurchaseRedeemHistoryResponseHandlerBuilder()
29
    {
30
        $handler = ResponseHandlerBuilder::make(self::$purchaseRedeemResponse, CurlResponseHandler::class, PurchaseRedeemHistoryResponse::class);
31
        $this->assertInstanceOf(EntityCollection::class, $handler->getBody());
32
        $this->assertGreaterThan(0, $handler->getBody()->count());
33
    }
34
35
    public function testPurchaseRedeemHistoryEndpoint()
36
    {
37
        $endpoint = RestBuilder::make(TestPurchaseRedeemHistory::class, (new PurchaseRedeemHistoryRequest()));
38
39
        $entityResponse = $endpoint->execute(EnumOutputMode::MODE_ENTITY, self::$purchaseRedeemResponse);
40
        $this->assertInstanceOf(CurlResponseDto::class, $entityResponse);
41
        $body = $entityResponse->getBody();
42
        $this->assertInstanceOf(EntityCollection::class, $body);
43
44
        foreach ($body->fetch() as $item) {
45
            $dto = ResponseDtoBuilder::make(PurchaseRedeemHistoryResponse::class, $item);
46
            $this->assertInstanceOf(PurchaseRedeemHistoryResponse::class, $dto);
47
        }
48
    }
49
}