scopeResolverPool = $this->getMockBuilder(ScopeResolverPool::class) ->disableOriginalConstructor() ->getMock(); $this->scopeResolver = $this->getMockBuilder(ScopeResolverInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->scope = $this->getMockBuilder(ScopeInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->scopeCodeResolver = new ScopeCodeResolver($this->scopeResolverPool); } public function testResolve() { $scopeType = 'website'; $scopeCode = 'myWebsite'; $scopeId = 4; $this->scopeResolverPool->expects($this->once()) ->method('get') ->with($scopeType) ->willReturn($this->scopeResolver); $this->scopeResolver->expects($this->once()) ->method('getScope') ->with($scopeId) ->willReturn($this->scope); $this->scope->expects($this->once()) ->method('getCode') ->willReturn($scopeCode); $this->assertEquals($scopeCode, $this->scopeCodeResolver->resolve($scopeType, $scopeId)); } }