public function testCreateInvoiceWithError()
{
$this->assertNull($this->client->getResponse());
$this->assertNull($this->client->getRequest());
$invoice = $this->getMockInvoice();
$invoice->method('setId')->will($this->returnSelf());
$invoice->method('setUrl')->will($this->returnSelf());
$invoice->method('setStatus')->will($this->returnSelf());
$invoice->method('setBtcPrice')->will($this->returnSelf());
$invoice->method('setPrice')->will($this->returnSelf());
$invoice->method('setInvoiceTime')->will($this->returnSelf());
$invoice->method('setExpirationTime')->will($this->returnSelf());
$invoice->method('setCurrentTime')->will($this->returnSelf());
$invoice->method('setBtcPaid')->will($this->returnSelf());
$invoice->method('setRate')->will($this->returnSelf());
$invoice->method('setExceptionStatus')->will($this->returnSelf());
$invoice->method('getCurrency')->willReturn($this->getMockCurrency());
$invoice->method('getItem')->willReturn($this->getMockItem());
$invoice->method('getBuyer')->willReturn($this->getMockBuyer());
$adapter = $this->getMockAdapter();
$response = $this->getMockResponse();
$response->method('getBody')->will($this->returnValue('{"error":"Some error message"}'));
$adapter->method('sendRequest')->willReturn($response);
$this->client->setAdapter($adapter);
// throws exception
$this->client->createInvoice($invoice);
}