2 namespace PayPal\Test\Api;
4 use PayPal\Api\CreditCardHistory;
6 use PayPal\Api\Address;
7 use PayPal\Api\CreditCard;
8 use PayPal\Test\Constants;
10 class CreditCardHistoryTest extends \PHPUnit_Framework_TestCase {
14 public static $id = "id";
15 public static $validUntil = "2013-02-28T00:00:00Z";
16 public static $state = "created";
17 public static $payerId = "payer-id";
18 public static $cardType = "visa";
19 public static $cardNumber = "4417119669820331";
20 public static $expireMonth = 11;
21 public static $expireYear = "2019";
22 public static $cvv = "012";
23 public static $firstName = "V";
24 public static $lastName = "C";
26 public static function createCreditCard() {
27 $card = new CreditCard();
28 $card->setType(self::$cardType);
29 $card->setNumber(self::$cardNumber);
30 $card->setExpireMonth(self::$expireMonth);
31 $card->setExpireYear(self::$expireYear);
32 $card->setCvv2(self::$cvv);
33 $card->setFirstName(self::$firstName);
34 $card->setLastName(self::$lastName);
35 $card->setId(self::$id);
36 $card->setValidUntil(self::$validUntil);
37 $card->setState(self::$state);
38 $card->setPayerId(self::$payerId);
42 public function setup() {
44 $card = self::createCreditCard();
45 $card->setBillingAddress(AddressTest::createAddress());
46 $card->setLinks(array(LinksTest::createLinks()));
47 $this->cards['full'] = $card;
49 $card = self::createCreditCard();
50 $this->cards['partial'] = $card;
53 public function testGetterSetters() {
54 $cardHistory = new CreditCardHistory();
55 $cardHistory->setCreditCards(array($this->cards['partial'], $this->cards['full']));
56 $cardHistory->setCount(2);
58 $this->assertEquals(2, count($cardHistory->getCreditCards()));
62 public function testSerializationDeserialization() {
63 $cardHistory = new CreditCardHistory();
64 $cardHistory->setCreditCards(array($this->cards['partial'], $this->cards['full']));
65 $cardHistory->setCount(2);
67 $cardHistoryCopy = new CreditCardHistory();
68 $cardHistoryCopy->fromJson($cardHistory->toJSON());
70 $this->assertEquals($cardHistory, $cardHistoryCopy);