setReturn_url("http://localhost/return"); $redirectUrls->setCancel_url("http://localhost/cancel"); $payment = new Payment(); $payment->setIntent("sale"); $payment->setRedirect_urls($redirectUrls); $payment->setPayer(PayerTest::createPayer()); $payment->setTransactions(array(TransactionTest::createTransaction())); return $payment; } public static function createNewPayment() { $payer = new Payer(); $payer->setPayment_method("credit_card"); $payer->setFunding_instruments(array(FundingInstrumentTest::createFundingInstrument())); $transaction = new Transaction(); $transaction->setAmount(AmountTest::createAmount()); $transaction->setDescription("This is the payment description."); $redirectUrls = new RedirectUrls(); $redirectUrls->setReturn_url("http://localhost/return"); $redirectUrls->setCancel_url("http://localhost/cancel"); $payment = new Payment(); $payment->setIntent("sale"); $payment->setRedirect_urls($redirectUrls); $payment->setPayer($payer); $payment->setTransactions(array($transaction)); return $payment; } public function setup() { $this->payments['full'] = self::createPayment(); $this->payments['new'] = self::createNewPayment(); } public function testSerializeDeserialize() { $p2 = new Payment(); $p2->fromJson($this->payments['full']->toJSON()); $this->assertEquals($p2, $this->payments['full']); } public function testOperations() { $p1 = $this->payments['new']; $p1->create(); $this->assertNotNull($p1->getId()); $p2 = Payment::get($p1->getId()); $this->assertNotNull($p2); $paymentHistory = Payment::all(array('count' => '10')); $this->assertNotNull($paymentHistory); } }