public function testSetUserForRequestClient_usersFromSameClientGetSameVariation() { /** @var CM_Model_Splittest_RequestClient_Mock $splittestRequestClient */ $splittestRequestClient = CM_Model_Splittest_RequestClient_Mock::create('foo', range(1, 100)); /** @var CM_Model_Splittest_User_Mock $splittestUser */ $splittestUser = CM_Model_Splittest_User_Mock::findId($splittestRequestClient->getId()); $request1 = new CM_Http_Request_Post('/foo/null'); $variationRequest1 = $splittestRequestClient->getVariationFixture($request1); $userA = CMTest_TH::createUser(); CM_Splittest_Fixture::setUserForRequestClient($request1, $userA); $this->assertSame($variationRequest1, $splittestUser->getVariationFixture($userA)); for ($i = 0; $i < 10; $i++) { $userNew = CMTest_TH::createUser(); CM_Splittest_Fixture::setUserForRequestClient($request1, $userNew); $this->assertSame($variationRequest1, $splittestUser->getVariationFixture($userNew)); } $this->assertSame($variationRequest1, $splittestUser->getVariationFixture($userA)); $splittestRequestClient->delete(); CMTest_TH::clearCache(); }
/** * @param CM_Model_User $user */ public function setUser(CM_Model_User $user) { $user->setOnline(true); $this->set('userId', $user->getId()); $this->regenerateId(); if ($request = $this->getRequest()) { CM_Splittest_Fixture::setUserForRequestClient($request, $user); $user->getUseragents()->addFromRequest($request); } }