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

testLastTradedPriceResponseHandlerBuilder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 10
1
<?php
2
namespace Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\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\MarketData\LastTradedPrice\Overrides\TestLastTradedPrice;
12
use Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Request\LastTradedPriceRequest;
13
use Carpenstar\ByBitAPI\Spot\MarketData\LastTradedPrice\Response\LastTradedPriceResponse;
14
use PHPUnit\Framework\TestCase;
15
16
class LastTradedPriceTest extends TestCase
17
{
18
    private static string $lastTradedPriceApiResponse = '{"retCode":0,"retMsg":"OK","result":{"symbol":"BTCUSDT","price":"26386.61"},"retExtInfo":{},"time":1683982585451}';
19
20
    public function testLastTradedPriceDTOBuilder()
21
    {
22
        $dto = ResponseDtoBuilder::make(LastTradedPriceResponse::class, json_decode(self::$lastTradedPriceApiResponse, true)['result']);
23
        $this->assertInstanceOf(LastTradedPriceResponse::class, $dto);
24
        $this->assertIsString($dto->getSymbol());
25
        $this->assertIsFloat($dto->getPrice());
26
    }
27
28
    public function testLastTradedPriceResponseHandlerBuilder()
29
    {
30
        $handler = ResponseHandlerBuilder::make(self::$lastTradedPriceApiResponse, CurlResponseHandler::class, LastTradedPriceResponse::class);
31
        $this->assertInstanceOf(EntityCollection::class, $handler->getBody());
32
        $this->assertGreaterThan(0, $handler->getBody()->count());
33
    }
34
35
    public function testLastTradedPriceEndpoint()
36
    {
37
        $endpoint = RestBuilder::make(TestLastTradedPrice::class, (new LastTradedPriceRequest())
38
            ->setSymbol("BTCUSDT"));
39
40
        $entityResponse = $endpoint->execute(EnumOutputMode::MODE_ENTITY, self::$lastTradedPriceApiResponse);
41
        $this->assertInstanceOf(CurlResponseDto::class, $entityResponse);
42
        $body = $entityResponse->getBody();
43
        $this->assertInstanceOf(EntityCollection::class, $body);
44
45
        $dto = $body->fetch();
46
        $this->assertInstanceOf(LastTradedPriceResponse::class, $dto);
47
        $this->assertIsString($dto->getSymbol());
48
        $this->assertIsFloat($dto->getPrice());
49
    }
50
}