Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IndexTest.php
Go to the documentation of this file.
1 <?php
7 declare(strict_types=1);
8 
10 
17 
18 class IndexTest extends \PHPUnit\Framework\TestCase
19 {
23  private $schemaTypeMock;
24 
28  private $requestMock;
29 
33  private $index;
34 
38  protected function setUp()
39  {
40  $this->requestMock = $this->getMockBuilder(RequestInterface::class)->getMock();
41  $this->schemaTypeMock = $this->getMockBuilder(SchemaTypeInterface::class)->getMock();
42 
43  $this->index = (new ObjectManager($this))->getObject(
44  Index::class,
45  [
46  'context' => (new ObjectManager($this))->getObject(
47  Context::class,
48  [
49  'request' => $this->requestMock,
50  ]
51  ),
52  'data' => [
53  'schema_types' => [
54  'test' => $this->schemaTypeMock
55  ]
56  ]
57  ]
58  );
59  }
60 
66  public function testGetSchemaUrlValidType()
67  {
68  $this->requestMock->expects($this->atLeastOnce())
69  ->method('getParam')
70  ->willReturn('test');
71 
72  $this->schemaTypeMock->expects($this->any())
73  ->method('getCode')->willReturn('test');
74 
75  $this->schemaTypeMock->expects($this->once())
76  ->method('getSchemaUrlPath')
77  ->willReturn('/test');
78 
79  $this->assertEquals('/test', $this->index->getSchemaUrl());
80  }
81 
87  public function testGetSchemaUrlInvalidType()
88  {
89  $this->requestMock->expects($this->atLeastOnce())
90  ->method('getParam')
91  ->willReturn('invalid');
92 
93  $this->schemaTypeMock->expects($this->any())
94  ->method('getCode')->willReturn('test');
95 
96  $this->expectException(\UnexpectedValueException::class);
97 
98  $this->index->getSchemaUrl();
99  }
100 }