Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
BillingAgreementConfigProviderTest.php
Go to the documentation of this file.
1 <?php
7 
9 use Magento\Paypal\Model\Billing\AgreementFactory;
12 
13 class BillingAgreementConfigProviderTest extends \PHPUnit\Framework\TestCase
14 {
19 
24 
25  protected function setUp()
26  {
27  $this->currentCustomerMock = $this->getMockBuilder(\Magento\Customer\Helper\Session\CurrentCustomer::class)
28  ->setMethods(['getCustomerId'])
29  ->disableOriginalConstructor()
30  ->getMock();
31 
32  $this->agreementFactoryMock = $this->getMockBuilder(\Magento\Paypal\Model\Billing\AgreementFactory::class)
33  ->setMethods(['create'])
34  ->disableOriginalConstructor()
35  ->getMock();
36 
37  $this->configProvider = new BillingAgreementConfigProvider(
38  $this->currentCustomerMock,
39  $this->agreementFactoryMock
40  );
41  }
42 
43  public function testGetConfig()
44  {
45  $customerId = 1;
46  $agreements = [
47  new \Magento\Framework\DataObject(['id' => 1, 'reference_id' => 'DFG123ER']),
48  new \Magento\Framework\DataObject(['id' => 2, 'reference_id' => 'JKT153ER']),
49  ];
50 
51  $expected = [
52  'payment' => [
53  'paypalBillingAgreement' => [
54  'agreements' => [
55  ['id' => 1, 'referenceId' => 'DFG123ER'],
56  ['id' => 2, 'referenceId' => 'JKT153ER']
57  ],
59  ]
60  ]
61  ];
62 
63  $this->currentCustomerMock->expects($this->once())->method('getCustomerId')->willReturn($customerId);
64 
65  $agreementMock = $this->getMockBuilder(\Magento\Paypal\Model\Billing\Agreement::class)
66  ->disableOriginalConstructor()
67  ->getMock();
68 
69  $agreementMock->expects($this->once())
70  ->method('getAvailableCustomerBillingAgreements')
71  ->with($customerId)
72  ->willReturn($agreements);
73 
74  $this->agreementFactoryMock->expects($this->once())->method('create')->willReturn($agreementMock);
75 
76  $this->assertEquals($expected, $this->configProvider->getConfig());
77  }
78 
80  {
81  $customerId = 0;
82  $expected = [
83  'payment' => [
84  'paypalBillingAgreement' => [
85  'agreements'=> [],
87  ]
88  ]
89  ];
90  $this->currentCustomerMock->expects($this->once())->method('getCustomerId')->willReturn($customerId);
91  $this->agreementFactoryMock->expects($this->never())->method('create');
92  $this->assertEquals($expected, $this->configProvider->getConfig());
93  }
94 }