mockTrackingId = hash('sha1', uniqid(mt_rand(), true)); } /** * @return PageModel */ protected function getPageModel($transliterationEnabled = true) { $cookieHelper = $this->createMock(CookieHelper::class); $this->router = $this->createMock(Router::class); $this->ipLookupHelper = $this->createMock(IpLookupHelper::class); $leadModel = $this->createMock(LeadModel::class); $leadFieldModel = $this->createMock(FieldModel::class); $redirectModel = $this->getRedirectModel(); $this->companyModel = $this->createMock(CompanyModel::class); $trackableModel = $this->createMock(TrackableModel::class); $dispatcher = $this->createMock(EventDispatcher::class); $translator = $this->createMock(Translator::class); $entityManager = $this->createMock(EntityManager::class); $pageRepository = $this->createMock(PageRepository::class); $coreParametersHelper = $this->createMock(CoreParametersHelper::class); $hitRepository = $this->createMock(HitRepository::class); $userHelper = $this->createMock(UserHelper::class); $messageBus = $this->createMock(MessageBus::class); $contactTracker = $this->createMock(ContactTracker::class); $this->contactRequestHelper = $this->createMock(ContactRequestHelper::class); $contactTracker->expects($this ->any()) ->method('getContact') ->willReturn(['id' => self::$mockId, 'name' => self::$mockName]); $entityManager->expects($this ->any()) ->method('getRepository') ->willReturnMap( [ [\Mautic\PageBundle\Entity\Page::class, $pageRepository], [\Mautic\PageBundle\Entity\Hit::class, $hitRepository], ] ); $coreParametersHelper->expects($this->any()) ->method('get') ->with('transliterate_page_title') ->willReturn($transliterationEnabled); $deviceTrackerMock = $this->createMock(DeviceTracker::class); $statRepositoryMock = $this->createMock(StatRepository::class); $botRatioHelperMock = $this->createMock(BotRatioHelper::class); $pageModel = new PageModel( $cookieHelper, $this->ipLookupHelper, $leadModel, $leadFieldModel, $redirectModel, $trackableModel, $messageBus, $this->companyModel, $deviceTrackerMock, $contactTracker, $coreParametersHelper, $this->contactRequestHelper, $entityManager, $this->security = $this->createMock(CorePermissions::class), $dispatcher, $this->router, $translator, $userHelper, $this->createMock(LoggerInterface::class), $statRepositoryMock, $botRatioHelperMock ); return $pageModel; } /** * @return RedirectModel */ protected function getRedirectModel() { $shortener = $this->createMock(Shortener::class); $mockRedirectModel = $this->getMockBuilder(RedirectModel::class) ->setConstructorArgs([ $this->createMock(EntityManagerInterface::class), $this->createMock(CorePermissions::class), $this->createMock(EventDispatcherInterface::class), $this->createMock(UrlGeneratorInterface::class), $this->createMock(Translator::class), $this->createMock(UserHelper::class), $this->createMock(LoggerInterface::class), $this->createMock(CoreParametersHelper::class), $shortener, ]) ->onlyMethods(['createRedirectEntity', 'generateRedirectUrl']) ->getMock(); $mockRedirect = $this->createMock(\Mautic\PageBundle\Entity\Redirect::class); $mockRedirectModel->expects($this->any()) ->method('createRedirectEntity') ->willReturn($mockRedirect); $mockRedirectModel->expects($this->any()) ->method('generateRedirectUrl') ->willReturn('http://some-url.com'); return $mockRedirectModel; } }