Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PlaceOrderFactoryTest.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 
19 class PlaceOrderFactoryTest extends \PHPUnit\Framework\TestCase
20 {
24  private $objectManager;
25 
29  private $placeOrderPool;
30 
34  private $placeOrderFactory;
35 
39  protected function setUp()
40  {
41  $this->objectManager = $this->getMockForAbstractClass(ObjectManagerInterface::class);
42 
43  $this->placeOrderPool = $this->getMockBuilder(PlaceOrderPool::class)
44  ->disableOriginalConstructor()
45  ->getMock();
46 
47  $this->placeOrderFactory = new PlaceOrderFactory($this->objectManager, $this->placeOrderPool);
48  }
49 
55  public function testCreate()
56  {
57  $paymentProviderCode = 'code';
58 
59  $placeOrder = $this->getMockForAbstractClass(PlaceOrderInterface::class);
60  $this->placeOrderPool->method('get')
61  ->with($paymentProviderCode)
62  ->willReturn($placeOrder);
63 
64  $instance = $this->placeOrderFactory->create($paymentProviderCode);
65 
66  $this->assertInstanceOf(PlaceOrderInterface::class, $instance);
67  }
68 
74  public function testCreateWithDefault()
75  {
76  $paymentProviderCode = 'code';
77 
78  $this->placeOrderPool->method('get')
79  ->with($paymentProviderCode)
80  ->willReturn(null);
81  $placeOrder = $this->getMockBuilder(PlaceOrderDefault::class)
82  ->disableOriginalConstructor()
83  ->getMock();
84  $this->objectManager->method('get')
85  ->with(PlaceOrderDefault::class)
86  ->willReturn($placeOrder);
87 
88  $instance = $this->placeOrderFactory->create($paymentProviderCode);
89 
90  $this->assertInstanceOf(PlaceOrderDefault::class, $instance);
91  }
92 }