contextMock = $this->getMockBuilder(Context::class) ->disableOriginalConstructor() ->getMock(); $this->storeManagerMock = $this->getMockBuilder(StoreManagerInterface::class) ->getMock(); $this->scopeConfigMock = $this->getMockBuilder(ScopeConfigInterface::class) ->getMock(); $this->encoderMock = $this->getMockBuilder(\Magento\Framework\Json\EncoderInterface::class) ->getMock(); $this->serializerMock = $this->getMockBuilder(\Magento\Framework\Serialize\Serializer\Json::class) ->getMock(); $this->contextMock->expects($this->exactly(2)) ->method('getStoreManager') ->willReturn($this->storeManagerMock); $this->contextMock->expects($this->once()) ->method('getScopeConfig') ->willReturn($this->scopeConfigMock); $this->model = new CustomerScopeData( $this->contextMock, $this->encoderMock, [], $this->serializerMock ); } public function testGetWebsiteId() { $storeId = 1; $storeMock = $this->getMockBuilder(StoreInterface::class) ->setMethods(['getWebsiteId']) ->getMockForAbstractClass(); $storeMock->expects($this->any()) ->method('getWebsiteId') ->willReturn($storeId); $this->storeManagerMock->expects($this->any()) ->method('getStore') ->with(null) ->willReturn($storeMock); $this->assertEquals($storeId, $this->model->getWebsiteId()); } public function testEncodeConfiguration() { $rules = [ '*' => [ 'Magento_Customer/js/invalidation-processor' => [ 'invalidationRules' => [ 'website-rule' => [ 'Magento_Customer/js/invalidation-rules/website-rule' => [ 'scopeConfig' => [ 'websiteId' => 1, ] ] ] ] ] ], ]; $this->serializerMock->expects($this->any()) ->method('serialize') ->with($rules) ->willReturn(json_encode($rules)); $this->assertEquals( json_encode($rules), $this->model->encodeConfiguration($rules) ); } }