scopeConfigMock = $this->getMockForAbstractClass(ScopeConfigInterface::class); $this->contextMock = $this->createMock(Context::class); $this->contextMock->method('getScopeConfig')->willReturn($this->scopeConfigMock); $objectManager = new ObjectManagerHelper($this); $this->helper = $objectManager->getObject( Data::class, ['context' => $this->contextMock] ); } /** * Test getIsShareable() with data provider * * @param int $linkShareable * @param bool $config * @param bool $expectedResult * @dataProvider getIsShareableDataProvider */ public function testGetIsShareable($linkShareable, $config, $expectedResult) { $this->scopeConfigMock->method('isSetFlag') ->with(Link::XML_PATH_CONFIG_IS_SHAREABLE, ScopeInterface::SCOPE_STORE) ->willReturn($config); $linkMock = $this->createMock(Link::class); $linkMock->method('getIsShareable')->willReturn($linkShareable); $this->assertEquals($expectedResult, $this->helper->getIsShareable($linkMock)); } /** * Data provider for getIsShareable() * * @return array */ public function getIsShareableDataProvider() { return [ 'link shareable yes' => [Link::LINK_SHAREABLE_YES, true, true], 'link shareable no' => [Link::LINK_SHAREABLE_NO, true, false], 'link shareable config true' => [Link::LINK_SHAREABLE_CONFIG, true, true], 'link shareable config false' => [Link::LINK_SHAREABLE_CONFIG, false, false], ]; } }