Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PaymentVerificationFactoryTest.php
Go to the documentation of this file.
1 <?php
7 
12 use PHPUnit_Framework_MockObject_MockObject as MockObject;
14 
15 class PaymentVerificationFactoryTest extends \PHPUnit\Framework\TestCase
16 {
20  private $factory;
21 
25  private $objectManager;
26 
30  private $fakeObjectManager;
31 
35  private $config;
36 
40  private $avsDefaultAdapter;
41 
45  private $cvvDefaultAdapter;
46 
50  protected function setUp()
51  {
52  $this->objectManager = new ObjectManager($this);
53 
54  $this->fakeObjectManager = $this->getMockBuilder(ObjectManagerInterface::class)
55  ->disableOriginalConstructor()
56  ->getMock();
57 
58  $this->config = $this->getMockBuilder(ConfigInterface::class)
59  ->disableOriginalConstructor()
60  ->getMock();
61 
62  $this->avsDefaultAdapter = $this->getMockBuilder(PaymentVerificationInterface::class)
63  ->disableOriginalConstructor()
64  ->getMock();
65 
66  $this->cvvDefaultAdapter = $this->getMockBuilder(PaymentVerificationInterface::class)
67  ->disableOriginalConstructor()
68  ->getMock();
69 
70  $this->factory = $this->objectManager->getObject(PaymentVerificationFactory::class, [
71  'objectManager' => $this->fakeObjectManager,
72  'config' => $this->config,
73  'avsDefaultAdapter' => $this->avsDefaultAdapter,
74  'cvvDefaultAdapter' => $this->cvvDefaultAdapter
75  ]);
76  }
77 
83  public function testCreatePaymentCvv()
84  {
85  $paymentMethodCode = 'exists_payment';
86 
87  $this->config->expects(self::once())
88  ->method('setMethodCode')
89  ->with(self::equalTo($paymentMethodCode))
90  ->willReturnSelf();
91 
92  $this->config->expects(self::once())
93  ->method('getValue')
94  ->with('cvv_ems_adapter')
95  ->willReturn(PaymentVerificationInterface::class);
96 
98  $cvvAdapter = $this->getMockBuilder(PaymentVerificationInterface::class)
99  ->disableOriginalConstructor()
100  ->getMock();
101 
102  $this->fakeObjectManager->expects(self::once())
103  ->method('create')
104  ->with(self::equalTo(PaymentVerificationInterface::class))
105  ->willReturn($cvvAdapter);
106 
107  $mapper = $this->factory->createPaymentCvv($paymentMethodCode);
108  self::assertInstanceOf(PaymentVerificationInterface::class, $mapper);
109  }
110 
116  public function testCreateDefaultCvvMapper()
117  {
118  $paymentMethodCode = 'non_exists_payment';
119 
120  $this->config->expects(self::once())
121  ->method('setMethodCode')
122  ->with(self::equalTo($paymentMethodCode))
123  ->willReturnSelf();
124 
125  $this->config->expects(self::once())
126  ->method('getValue')
127  ->with('cvv_ems_adapter')
128  ->willReturn(null);
129 
130  $this->fakeObjectManager->expects(self::never())
131  ->method('create');
132 
133  $mapper = $this->factory->createPaymentCvv($paymentMethodCode);
134  self::assertSame($this->cvvDefaultAdapter, $mapper);
135  }
136 
145  {
146  $paymentMethodCode = 'exists_payment';
147 
148  $this->config->expects(self::once())
149  ->method('setMethodCode')
150  ->with(self::equalTo($paymentMethodCode))
151  ->willReturnSelf();
152 
153  $this->config->expects(self::once())
154  ->method('getValue')
155  ->with('cvv_ems_adapter')
156  ->willReturn(\stdClass::class);
157 
158  $cvvAdapter = new \stdClass();
159  $this->fakeObjectManager->expects(self::once())
160  ->method('create')
161  ->with(self::equalTo(\stdClass::class))
162  ->willReturn($cvvAdapter);
163 
164  $this->factory->createPaymentCvv($paymentMethodCode);
165  }
166 
172  public function testCreatePaymentAvs()
173  {
174  $paymentMethodCode = 'exists_payment';
175 
176  $this->config->expects(self::once())
177  ->method('setMethodCode')
178  ->with(self::equalTo($paymentMethodCode))
179  ->willReturnSelf();
180 
181  $this->config->expects(self::once())
182  ->method('getValue')
183  ->with('avs_ems_adapter')
184  ->willReturn(PaymentVerificationInterface::class);
185 
186  $avsAdapter = $this->getMockBuilder(PaymentVerificationInterface::class)
187  ->disableOriginalConstructor()
188  ->getMock();
189 
190  $this->fakeObjectManager->expects(self::once())
191  ->method('create')
192  ->with(self::equalTo(PaymentVerificationInterface::class))
193  ->willReturn($avsAdapter);
194 
195  $mapper = $this->factory->createPaymentAvs($paymentMethodCode);
196  self::assertInstanceOf(PaymentVerificationInterface::class, $mapper);
197  }
198 
202  public function testCreateDefaultAvsMapper()
203  {
204  $paymentMethodCode = 'non_exists_payment';
205 
206  $this->config->expects(self::once())
207  ->method('setMethodCode')
208  ->with(self::equalTo($paymentMethodCode))
209  ->willReturnSelf();
210 
211  $this->config->expects(self::once())
212  ->method('getValue')
213  ->with('avs_ems_adapter')
214  ->willReturn(null);
215 
216  $this->fakeObjectManager->expects(self::never())
217  ->method('create');
218 
219  $mapper = $this->factory->createPaymentAvs($paymentMethodCode);
220  self::assertSame($this->avsDefaultAdapter, $mapper);
221  }
222 }