Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
GeneratorFactoryTest.php
Go to the documentation of this file.
1 <?php
7 
13 use PHPUnit_Framework_MockObject_MockObject as MockObject;
14 
18 class GeneratorFactoryTest extends \PHPUnit\Framework\TestCase
19 {
23  private $factory;
24 
28  private $fakeObjectManager;
29 
33  protected function setUp()
34  {
35  $objectManager = new ObjectManager($this);
36 
37  $this->fakeObjectManager = $this->getMockBuilder(ObjectManagerInterface::class)
38  ->disableOriginalConstructor()
39  ->setMethods(['create'])
40  ->getMockForAbstractClass();
41 
42  $this->factory = $objectManager->getObject(GeneratorFactory::class, [
43  'objectManager' => $this->fakeObjectManager
44  ]);
45  }
46 
55  public function testCreate($type, $className)
56  {
57  $generator = $this->getMockBuilder($className)
58  ->disableOriginalConstructor()
59  ->getMock();
60 
61  $this->fakeObjectManager->expects(self::once())
62  ->method('create')
63  ->with($className)
64  ->willReturn($generator);
65 
66  $instance = $this->factory->create($type);
67  self::assertInstanceOf($className, $instance);
68  }
69 
75  public function typeDataProvider()
76  {
77  return [
78  ['cases/creation', PatternGenerator::class],
79  ['cases/review', PatternGenerator::class],
80  ['cases/rescore', CaseRescore::class],
81  ['guarantees/completion', PatternGenerator::class],
82  ['guarantees/creation', PatternGenerator::class],
83  ['guarantees/cancel', PatternGenerator::class],
84  ];
85  }
86 
94  public function testCreateWithException()
95  {
96  $type = 'cases/unknown';
97  $this->factory->create($type);
98  }
99 }
$objectManager
Definition: bootstrap.php:17
$type
Definition: item.phtml:13
if($currentSelectedMethod==$_code) $className
Definition: form.phtml:31