Test Failed
Pull Request — master (#13)
by Vladislav
09:26 queued 01:13
created

OpenOrdersTest::testOpenOrdersDTOBuilder()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 23
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 2
eloc 20
c 2
b 0
f 0
nc 2
nop 0
dl 0
loc 23
rs 9.6
1
<?php
2
namespace Carpenstar\ByBitAPI\Spot\Trade\OpenOrders\Tests;
3
4
use Carpenstar\ByBitAPI\BybitAPI;
5
use Carpenstar\ByBitAPI\Core\Exceptions\SDKException;
6
use Carpenstar\ByBitAPI\Core\Response\CurlResponseHandler;
7
use Carpenstar\ByBitAPI\Spot\Trade\OpenOrders\Interfaces\IOpenOrdersResponseItemInterface;
8
use Carpenstar\ByBitAPI\Spot\Trade\OpenOrders\OpenOrders;
9
use Carpenstar\ByBitAPI\Spot\Trade\OpenOrders\Request\OpenOrdersRequest;
10
use Carpenstar\ByBitAPI\Spot\Trade\OpenOrders\Response\OpenOrdersResponse;
11
use PHPUnit\Framework\TestCase;
12
13
class OpenOrdersTest extends TestCase
14
{
15
    /**
16
     * Тестирование заполнения структуры ответа
17
     * @return void
18
     */
19
    public function testBuildResponseData()
20
    {
21
        $json = '{"retCode":0,"retMsg":"OK","result":{"list":[{"accountId":"533287","symbol":"BTCUSDT","orderLinkId":"spotx004","orderId":"1210858291884732160","orderPrice":"23500","orderQty":"0.02","execQty":"0","cummulativeQuoteQty":"0","avgPrice":"0","status":"NEW","timeInForce":"GTC","orderType":"LIMIT_MAKER","side":"SELL","stopPrice":"0.0","icebergQty":"0.0","createTime":1659081556722,"updateTime":1659081556740,"isWorking":"1","blockTradeId":"","cancelType":"UNKNOWN","smpGroup":0,"smpOrderId":"","smpType":"None"}]},"retExtInfo": {},"time": 1659081570356}';
22
        $data = (new CurlResponseHandler())->build(json_decode($json, true), OpenOrdersResponse::class);
23
24
        $this->assertEquals(0, $data->getReturnCode());
25
        $this->assertEquals('OK', $data->getReturnMessage());
26
        $this->assertInstanceOf(OpenOrdersResponse::class, $data->getResult());
27
28
        /** @var OpenOrdersResponse $orderInfo */
29
        $orderInfo = $data->getResult();
30
        foreach ($orderInfo->getOpenOrders() as $order) {
31
            $this->assertNotNull($order->getSide());
32
            $this->assertNotNull($order->getAccountId());
33
            $this->assertNotNull($order->getSymbol());
34
            $this->assertNotNull($order->getOrderLinkId());
35
            $this->assertNotNull($order->getOrderId());
36
            $this->assertNotNull($order->getOrderPrice());
37
            $this->assertNotNull($order->getOrderQty());
38
            $this->assertNotNull($order->getExecQty());
39
            $this->assertNotNull($order->getAvgPrice());
40
            $this->assertNotNull($order->getCummulativeQuoteQty());
41
            $this->assertNotNull($order->getStatus());
42
            $this->assertNotNull($order->getTimeInForce());
43
            $this->assertNotNull($order->getOrderType());
44
            $this->assertNotNull($order->getStopPrice());
45
            $this->assertNotNull($order->getCreateTime());
46
            $this->assertNotNull($order->getUpdateTime());
47
            $this->assertNotNull($order->getIsWorking());
48
        }
49
    }
50
51
    /**
52
     * Тестирование эндпоинта на корректное исполнение
53
     * @return void
54
     * @throws SDKException
55
     */
56
    public function testCancelOrderEndpoint()
57
    {
58
        $bybit = (new BybitAPI())->setCredentials('https://api-testnet.bybit.com', 'fL02oi5qo8i2jDxlum', 'Ne1EE35XTprIWrId9vGEAc1ZYJTmodA4qFzZ');
59
60
        $openOrdersResponse = $bybit->privateEndpoint(OpenOrders::class, (new OpenOrdersRequest())->setSymbol('ETHUSDT'))->execute();
61
62
        $this->assertEquals(0, $openOrdersResponse->getReturnCode());
63
        $this->assertEquals('OK', $openOrdersResponse->getReturnMessage());
64
        $this->assertInstanceOf(OpenOrdersResponse::class, $openOrdersResponse->getResult());
65
66
        $orderInfoList = $openOrdersResponse->getResult()->getOpenOrders();
0 ignored issues
show
Bug introduced by
The method getOpenOrders() does not exist on Carpenstar\ByBitAPI\Core\Objects\AbstractResponse. It seems like you code against a sub-type of Carpenstar\ByBitAPI\Core\Objects\AbstractResponse such as Carpenstar\ByBitAPI\Spot...onse\OpenOrdersResponse. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

66
        $orderInfoList = $openOrdersResponse->getResult()->/** @scrutinizer ignore-call */ getOpenOrders();
Loading history...
67
68
        foreach ($orderInfoList as $order) {
69
            $this->assertIsInt($order->getOrderId());
70
            $this->assertIsString($order->getOrderLinkId());
71
            $this->assertIsString($order->getSymbol());
72
            $this->assertIsString($order->getStatus());
73
            $this->assertIsInt($order->getAccountId());
74
            $this->assertIsFloat($order->getOrderPrice());
75
            $this->assertInstanceOf(\DateTime::class, $order->getCreateTime());
76
            $this->assertIsFloat($order->getOrderQty());
77
            $this->assertIsFloat($order->getExecQty());
78
            $this->assertIsString($order->getTimeInForce());
79
            $this->assertIsString($order->getOrderType());
80
            $this->assertIsString($order->getSide());
81
        }
82
    }
83
}