QuandlSymbolTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 4
c 2
b 0
f 1
lcom 1
cbo 3
dl 0
loc 72
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 10 2
B testGetSymbol() 0 32 1
A testGetBacenCdi() 0 22 1
1
<?php
2
3
namespace Royopa\Quandl\Tests;
4
5
use Royopa\Quandl\Quandl;
6
7
class QuandlSymbolTest extends \PHPUnit_Framework_TestCase
8
{
9
    private $api_key    = "DEBUG_KEY";
10
    private $cache_file = false;
11
12
    protected function setUp()
13
    {
14
        if (! file_exists(__DIR__.'/../.env')) {
15
            return;
16
        }
17
        
18
        $dotenv = new \Dotenv\Dotenv(__DIR__.'/../');
19
        $dotenv->load();
20
        $this->api_key = getenv('QUANDL_API_KEY');
21
    }
22
23
    public function testGetSymbol()
24
    {
25
        $quandl = new Quandl($this->api_key);
26
        $quandl->force_curl    = false;
27
        $quandl->no_ssl_verify = true;;
28
29
        $symbol = 'GOOG/BVMF_PETR4';
30
        $dates  = [
31
            'trim_start' => '2015-06-08',
32
            'trim_end'   => '2015-06-12'
33
        ];
34
        $format = 'json';
35
        
36
        $result = $quandl->getSymbol($symbol, $dates);
37
38
        // tests to columns names
39
        $columnsNames = $result->column_names;
40
        $this->assertEquals('Date', $columnsNames[0]);
41
        $this->assertEquals('Open', $columnsNames[1]);
42
        $this->assertEquals('High', $columnsNames[2]);
43
        $this->assertEquals('Low', $columnsNames[3]);
44
        $this->assertEquals('Close', $columnsNames[4]);
45
        $this->assertEquals('Volume', $columnsNames[5]);
46
47
        // test to check count results returned
48
        $data = $result->data;
49
        $this->assertEquals(5, count($data));
50
51
        // test to check url generated
52
        $urlExpected = "https://www.quandl.com/api/v1/datasets/{$symbol}.{$format}?trim_start={$dates['trim_start']}&trim_end={$dates['trim_end']}&auth_token={$this->api_key}";
53
        $this->assertEquals($urlExpected, $quandl->last_url);
54
    }
55
56
    public function testGetBacenCdi()
57
    {
58
        $quandl = new Quandl($this->api_key);
59
        $symbol = 'BCB/4389'; # CDI
60
61
        $result = $quandl->getSymbol(
62
            $symbol,
63
            array(
64
                'trim_start' => '2015-06-22',
65
                'trim_end'   => '2015-06-22',
66
                "sort_order"      => "desc",
67
                "exclude_headers" => true,
68
                "rows"            => 1,
69
            )
70
        );
71
72
        $date  = new \DateTime($result->data[0][0]);
73
        $value = $result->data[0][1];
74
75
        $this->assertEquals(13.64, $value);
76
        $this->assertEquals(new \DateTime('2015-06-22'), $date);
77
    }
78
}
79