public function testGetInvoice()
{
$response = $this->getMockResponse();
$response->method('getBody')->willReturn(file_get_contents(__DIR__ . '/../../DataFixtures/invoices/5NxFkXcJbCSivtQRJa4kHP.json'));
$adapter = $this->getMockAdapter();
$adapter->method('sendRequest')->willReturn($response);
$this->client->setAdapter($adapter);
$token = new \Bitpay\Token();
$token->setToken('asdfsds');
// No token/public facade
$invoice = $this->client->getInvoice('5NxFkXcJbCSivtQRJa4kHP');
$this->assertSame('invoices/5NxFkXcJbCSivtQRJa4kHP', $this->client->getRequest()->getPath());
$this->assertInstanceOf('Bitpay\\InvoiceInterface', $invoice);
// pos token/public facade
$this->client->setToken($token->setFacade('pos'));
$invoice = $this->client->getInvoice('5NxFkXcJbCSivtQRJa4kHP');
$this->assertSame('invoices/5NxFkXcJbCSivtQRJa4kHP', $this->client->getRequest()->getPath());
$this->assertInstanceOf('Bitpay\\InvoiceInterface', $invoice);
// merchant token/merchant facade
$this->client->setToken($token->setFacade('merchant'));
$invoice = $this->client->getInvoice('5NxFkXcJbCSivtQRJa4kHP');
$this->assertSame('invoices/5NxFkXcJbCSivtQRJa4kHP?token=asdfsds', $this->client->getRequest()->getPath());
$this->assertInstanceOf('Bitpay\\InvoiceInterface', $invoice);
}