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()); }
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()); }