function testGetTransaction()
 {
     XmlSerializer::$sort = false;
     // prepare post, request, response fixtures
     $postData = $this->schemaNotification('transaction_notification.json');
     $channel_token = $postData['channel_token'];
     $uid = $postData['unique_id'];
     $requestXml = $this->schemaRequest('reconcile.xml');
     $requestXml = preg_replace('/<unique_id>[^<]+<\\/unique_id>/', "<unique_id>{$uid}</unique_id>", $requestXml);
     $responseXml = $this->schemaResponse('reconcile.xml');
     $responseXml = preg_replace('/<unique_id>[^<]+<\\/unique_id>/', "<unique_id>{$uid}</unique_id>", $responseXml);
     $this->curlMock()->shouldReceive('xmlPost')->with("https://test.hypercharge.net/reconcile/{$channel_token}", $requestXml)->once()->andReturn($responseXml);
     // actually test the notification
     $tn = new TransactionNotification($postData);
     $this->assertTrue($tn->hasTransaction());
     $trx = $tn->getTransaction();
     $this->assertIsA($trx, 'Hypercharge\\Transaction');
     $this->assertTrue($trx->isApproved());
     $this->assertEqual($trx->unique_id, $uid);
 }