b4c69728b261a816121f7d5a04b3238fa8d63831
[WP-Plugins/glm-member-db-registrations.git] /
1 <?php
2 namespace PayPal\Test\Api;
3
4 use PayPal\Api\Refund;
5 use PayPal\Api\Sale;
6 use PayPal\Test\Constants;
7 use PayPal\Test\Api\AmountTest;
8 use PayPal\Test\Api\PaymentTest;
9 use PayPal\Test\Api\LinksTest;
10
11 class SaleTest extends \PHPUnit_Framework_TestCase {
12
13         private $sale;
14
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";
20
21         public static function createSale() {
22                 $sale = new Sale();
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);
29                 return $sale;
30         }
31         
32         public function setup() {
33                 $this->sale = self::createSale();
34         }
35
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());
44         }
45         
46         public function testSerializeDeserialize() {
47                 $s1 = $this->sale;
48                 
49                 $s2 = new Sale();
50                 $s2->fromJson($s1->toJson());
51                 
52                 $this->assertEquals($s1, $s2);
53         }
54         
55         public function testOperations() {
56                 $payment = PaymentTest::createNewPayment();                     
57                 $payment->create();
58                 
59                 $transactions = $payment->getTransactions();
60                 $resources = $transactions[0]->getRelatedResources();           
61                 $saleId = $resources[0]->getSale()->getId();
62                 
63                 $sale = Sale::get($saleId);
64                 $this->assertNotNull($sale);            
65                 
66                 $refund = new Refund();
67                 $refund->setAmount(AmountTest::createAmount());
68                 $sale->refund($refund);
69                 
70                 $this->setExpectedException('\InvalidArgumentException');
71                 $sale->refund(NULL);
72         }
73 }