KlineTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 28
c 3
b 0
f 0
dl 0
loc 38
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A testKlineTestEndpoint() 0 36 3
1
<?php
2
3
namespace Carpenstar\ByBitAPI\Derivatives\MarketData\Kline\Tests;
4
5
use Carpenstar\ByBitAPI\BybitAPI;
6
use Carpenstar\ByBitAPI\Core\Enums\EnumIntervals;
7
use Carpenstar\ByBitAPI\Derivatives\MarketData\Kline\Kline;
8
use Carpenstar\ByBitAPI\Derivatives\MarketData\Kline\Request\KlineRequest;
9
use Carpenstar\ByBitAPI\Derivatives\MarketData\Kline\Response\KlineResponseItem;
10
use PHPUnit\Framework\TestCase;
11
12
class KlineTest extends TestCase
13
{
14
    public function testKlineTestEndpoint()
15
    {
16
        echo "\n //// --- //// \n";
17
        
18
        $bybit = (new BybitAPI())->setCredentials('https://api-testnet.bybit.com');
19
20
        $response = $bybit->publicEndpoint(
21
            Kline::class,
22
            (new KlineRequest())
23
            ->setSymbol('BTCUSDT')
24
            ->setInterval(EnumIntervals::HOUR_1)
25
            ->setStart('2024-07-11 10:00:00')
26
            ->setEnd('2024-07-12 11:00:00')
27
            ->setLimit(4)
28
        )->execute();
29
30
        if ($response->getReturnCode() == 0) {
31
            echo "CODE: {$response->getReturnCode()}\n";
32
            echo "MESSAGE: {$response->getReturnMessage()}\n";
33
    
34
            /** @var KlineResponseItem $klineItem */
35
            foreach ($response->getResult()->getKlineList() as $klineItem) {
0 ignored issues
show
Bug introduced by
The method getKlineList() 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\Deri...\Response\KlineResponse or Carpenstar\ByBitAPI\Deri...IndexPriceKlineResponse or Carpenstar\ByBitAPI\Deri...\MarkPriceKlineResponse. ( Ignorable by Annotation )

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

35
            foreach ($response->getResult()->/** @scrutinizer ignore-call */ getKlineList() as $klineItem) {
Loading history...
36
                echo " --- \n";
37
                echo "Start Time: {$klineItem->getStartTime()->format('Y-m-d H:i:s')}\n";
38
                echo "Open Price: {$klineItem->getOpen()}\n";
39
                echo "High Price: {$klineItem->getHigh()}\n";
40
                echo "Low Price: {$klineItem->getLow()}\n";
41
                echo "Close Price: {$klineItem->getClose()}\n";
42
            }
43
    
44
            $this->assertTrue(true);
45
        } else {
46
            echo "API ERORR: " . get_class($this) . "\n";
47
            echo "CODE: {$response->getReturnCode()} \n"; 
48
            echo "MESSAGE: {$response->getReturnMessage()} \n"; 
49
            echo "EXTENDED:" . implode(";\n", $response->getExtendedInfo()) . "\n"; 
50
        }
51
    }
52
}
53