Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ResourceLoaderTest.php
Go to the documentation of this file.
1 <?php
9 
10 class ResourceLoaderTest extends \PHPUnit\Framework\TestCase
11 {
15  public function testPopulateAclOnValidObjects()
16  {
18  $aclResource = $this->createMock(\Magento\Framework\Acl\AclResource::class);
19 
21  $acl = $this->createPartialMock(\Magento\Framework\Acl::class, ['addResource']);
22  $acl->expects($this->exactly(2))->method('addResource');
23  $acl->expects($this->at(0))->method('addResource')->with($aclResource, null)->will($this->returnSelf());
24  $acl->expects($this->at(1))->method('addResource')->with($aclResource, $aclResource)->will($this->returnSelf());
25 
26  $factoryObject = $this->createPartialMock(\Magento\Framework\Acl\AclResourceFactory::class, ['createResource']);
27  $factoryObject->expects($this->any())->method('createResource')->will($this->returnValue($aclResource));
28 
30  $resourceProvider = $this->createMock(\Magento\Framework\Acl\AclResource\ProviderInterface::class);
31  $resourceProvider->expects($this->once())
32  ->method('getAclResources')
33  ->will(
34  $this->returnValue(
35  [
36  [
37  'id' => 'parent_resource::id',
38  'title' => 'Parent Resource Title',
39  'sortOrder' => 10,
40  'children' => [
41  [
42  'id' => 'child_resource::id',
43  'title' => 'Child Resource Title',
44  'sortOrder' => 10,
45  'children' => [],
46  ],
47  ],
48  ],
49  ]
50  )
51  );
52 
54  $loaderResource = new \Magento\Framework\Acl\Loader\ResourceLoader($resourceProvider, $factoryObject);
55 
56  $loaderResource->populateAcl($acl);
57  }
58 
65  public function testPopulateAclWithException()
66  {
68  $aclResource = $this->createMock(\Magento\Framework\Acl\AclResource::class);
69 
70  $factoryObject = $this->getMockBuilder(\Magento\Framework\Acl\AclResourceFactory::class)
71  ->setMethods(['createResource'])
72  ->disableOriginalConstructor()
73  ->getMock();
74 
75  $factoryObject->expects($this->any())->method('createResource')->will($this->returnValue($aclResource));
76 
78  $resourceProvider = $this->createMock(\Magento\Framework\Acl\AclResource\ProviderInterface::class);
79  $resourceProvider->expects($this->once())
80  ->method('getAclResources')
81  ->will(
82  $this->returnValue(
83  [
84  [
85  'title' => 'Parent Resource Title',
86  'sortOrder' => 10,
87  'children' => [
88  [
89  'id' => 'child_resource::id',
90  'title' => 'Child Resource Title',
91  'sortOrder' => 10,
92  'children' => [],
93  ],
94  ],
95  ],
96  ]
97  )
98  );
99 
101  $acl = $this->createPartialMock(\Magento\Framework\Acl::class, ['addResource']);
102 
104  $loaderResource = new \Magento\Framework\Acl\Loader\ResourceLoader($resourceProvider, $factoryObject);
105 
106  $loaderResource->populateAcl($acl);
107  }
108 }