2 namespace PayPal\Test\Api;
6 use PayPal\Test\Constants;
7 use PayPal\Test\Api\AmountTest;
8 use PayPal\Test\Api\PaymentTest;
9 use PayPal\Test\Api\LinksTest;
11 class SaleTest extends \PHPUnit_Framework_TestCase {
15 public static $captureId = "CAP-123";
16 public static $createTime = "2013-02-28T00:00:00Z";
17 public static $id = "R-5678";
18 public static $parentPayment = "PAY-123";
19 public static $state = "Created";
21 public static function createSale() {
23 $sale->setAmount(AmountTest::createAmount());
24 $sale->setCreateTime(self::$createTime);
25 $sale->setId(self::$id);
26 $sale->setLinks(array(LinksTest::createLinks()));
27 $sale->setParentPayment(self::$parentPayment);
28 $sale->setState(self::$state);
32 public function setup() {
33 $this->sale = self::createSale();
36 public function testGetterSetter() {
37 $this->assertEquals(self::$createTime, $this->sale->getCreateTime());
38 $this->assertEquals(self::$id, $this->sale->getId());
39 $this->assertEquals(self::$parentPayment, $this->sale->getParentPayment());
40 $this->assertEquals(self::$state, $this->sale->getState());
41 $this->assertEquals(AmountTest::$currency, $this->sale->getAmount()->getCurrency());
42 $links = $this->sale->getLinks();
43 $this->assertEquals(LinksTest::$href, $links[0]->getHref());
46 public function testSerializeDeserialize() {
50 $s2->fromJson($s1->toJson());
52 $this->assertEquals($s1, $s2);
55 public function testOperations() {
56 $payment = PaymentTest::createNewPayment();
59 $transactions = $payment->getTransactions();
60 $resources = $transactions[0]->getRelatedResources();
61 $saleId = $resources[0]->getSale()->getId();
63 $sale = Sale::get($saleId);
64 $this->assertNotNull($sale);
66 $refund = new Refund();
67 $refund->setAmount(AmountTest::createAmount());
68 $sale->refund($refund);
70 $this->setExpectedException('\InvalidArgumentException');