public function testGetTicker()
 {
     $container = [];
     $client = TestUtils::buildMockedClient($container, [new Response(200, ['Content-Type' => 'application/json'], json_encode(['high' => 200, 'last' => 115.61, 'timestamp' => 1446974253, 'bid' => 114.05, 'vwap' => 384.86, 'volume' => 23343.37, 'low' => 100, 'ask' => 116.21, 'open' => 383.62]))]);
     $api = new BitstampApi($client);
     $api->setClient($client);
     $ticker = $api->getTicker();
     $expectedTicker = new Ticker(115.61, 200, 100, 114.05, 116.21);
     $this->assertCount(1, $container);
     $this->assertEquals('GET', $container[0]['request']->getMethod());
     $this->assertEquals('https://www.bitstamp.net/api/ticker', $container[0]['request']->getUri());
     $this->assertEquals($expectedTicker, $ticker);
 }
 public function testRequestIsCorrectlySigned()
 {
     $nonceGeneratorMock = TestUtils::buildMockedNonceGenerator($this);
     $signer = new BtceRequestSigner();
     $signer->setNonceGenerator($nonceGeneratorMock);
     $unsignedRequest = new Request('GET', 'http://foo.com', [], 'foo=bar&baz=quux');
     $signedRequest = $signer->sign($unsignedRequest, 'APIKEY', 'f00b42');
     $this->assertEquals('APIKEY', $signedRequest->getHeader('Key')[0]);
     $this->assertEquals('2a32f5bebe09e7fcebfbae9ea1d6125be7fb9b526dc81b3c26f8abb70c9f02643670b88b75b690cc813f28dcb2c96e1455cfc655851dc48def84f954e42365ae', $signedRequest->getHeader('Sign')[0]);
     $this->assertEquals('nonce=1&foo=bar&baz=quux', $signedRequest->getBody()->getContents());
     $this->assertEquals($unsignedRequest->getMethod(), $signedRequest->getMethod());
     $this->assertEquals($unsignedRequest->getUri(), $signedRequest->getUri());
 }
Пример #3
0
 public function testGetBalance()
 {
     $container = [];
     $client = TestUtils::buildMockedClient($container, [new Response(200, [], json_encode(['success' => 1, 'return' => ['funds' => ['usd' => 100, 'btc' => 200, 'ltc' => 50]]]))]);
     $signerMock = TestUtils::buildMockedRequestSigner($this);
     $api = new BtceApi('key', 'secret');
     $api->setClient($client);
     $api->setRequestSigner($signerMock);
     $balance = $api->getBalance();
     $expectedBalance = new AccountBalance(['usd' => 100, 'btc' => 200, 'ltc' => 50]);
     $this->assertCount(1, $container);
     $this->assertEquals('POST', $container[0]['request']->getMethod());
     $this->assertEquals('https://btc-e.com/tapi', $container[0]['request']->getUri());
     parse_str($container[0]['request']->getBody()->getContents(), $body);
     $this->assertEquals('getInfo', $body['method']);
     $this->assertEquals($balance, $expectedBalance);
 }
 public function testRequestIsCorrectlySigned()
 {
     $nonceGeneratorMock = TestUtils::buildMockedNonceGenerator($this);
     $signer = new BitstampRequestSigner();
     $signer->setNonceGenerator($nonceGeneratorMock);
     $unsignedRequest = new Request('GET', 'http://foo.com', [], 'foo=bar&baz=quux');
     $signedRequest = $signer->sign($unsignedRequest, 'APIKEY', 'f00b42', 5);
     parse_str($signedRequest->getBody()->getContents(), $requestBody);
     $this->assertEquals('APIKEY', $requestBody['key']);
     $this->assertEquals(1, $requestBody['nonce']);
     $this->assertEquals('f3d649b1e4911bbc9e2f65208dabbfb83e467bfdceea3fc27010a0c4cfa15a96', $requestBody['signature']);
     $this->assertEquals('bar', $requestBody['foo']);
     $this->assertEquals('quux', $requestBody['baz']);
     $this->assertEquals($unsignedRequest->getMethod(), $signedRequest->getMethod());
     $this->assertEquals($unsignedRequest->getUri(), $signedRequest->getUri());
     $this->assertEquals($unsignedRequest->getHeaders(), $signedRequest->getHeaders());
 }