public function createWillSetDomainAndSiteFromCurrentRequestIfNotGiven()
{
$mockDomainRepository = $this->getMockBuilder(DomainRepository::class)->disableOriginalConstructor()->getMock();
$mockSite = $this->getMockBuilder(Site::class)->disableOriginalConstructor()->getMock();
$mockDomain = $this->getMockBuilder(Domain::class)->disableOriginalConstructor()->getMock();
$mockDomain->expects($this->atLeastOnce())->method('getSite')->will($this->returnValue($mockSite));
$mockDomainRepository->expects($this->atLeastOnce())->method('findOneByActiveRequest')->will($this->returnValue($mockDomain));
$mockSiteRepository = $this->getMockBuilder(SiteRepository::class)->disableOriginalConstructor()->getMock();
$mockSiteRepository->expects($this->any())->method('findFirstOnline')->will($this->returnValue(null));
$contentContextFactory = $this->getMockBuilder(ContentContextFactory::class)->setMethods(['validateContextProperties', 'mergeDimensionValues', 'mergeTargetDimensionContextProperties', 'getIdentifier'])->disableOriginalConstructor()->getMock();
$contentContextFactory->expects($this->atLeastOnce())->method('getIdentifier')->will($this->returnValue('abc'));
$this->inject($contentContextFactory, 'domainRepository', $mockDomainRepository);
$this->inject($contentContextFactory, 'siteRepository', $mockSiteRepository);
$this->inject($contentContextFactory, 'now', new \DateTime());
/** @var ContentContext $context */
$context = $contentContextFactory->create(['workspaceName' => 'user-test']);
$this->assertEquals($mockSite, $context->getCurrentSite());
$this->assertEquals($mockDomain, $context->getCurrentDomain());
}