コード例 #1
0
 public function testGetId()
 {
     $request = new CM_Http_Request_Post('/foo/null');
     $user = CMTest_TH::createUser();
     $fixtureRequestClient = new CM_Splittest_Fixture($request);
     $fixtureUser = new CM_Splittest_Fixture($user);
     $this->assertSame($request->getClientId(), $fixtureRequestClient->getId());
     $this->assertSame($user->getId(), $fixtureUser->getId());
 }
コード例 #2
0
ファイル: SplittestTest.php プロジェクト: cargomedia/cm
 public function testOutdatedLocalCache()
 {
     $test1 = CM_Model_Splittest_Mock::create('foo', range(1, 10));
     $test2 = CM_Model_Splittest_Mock::create('bar', range(1, 10));
     $mockBuilder = $this->getMockBuilder('CM_Model_User');
     $mockBuilder->setMethods(['getId']);
     $userMock = $mockBuilder->getMock();
     $userMock->expects($this->any())->method('getId')->will($this->returnValue(mt_rand()));
     /** @var CM_Model_User $userMock */
     $fixture = new CM_Splittest_Fixture($userMock);
     CM_Db_Db::insert('cm_splittestVariation_fixture', array('splittestId' => $test1->getId(), $fixture->getColumnId() => $fixture->getId(), 'variationId' => $test1->getVariations()->findByName(1)->getId(), 'createStamp' => time()));
     $this->assertTrue($test1->isVariationFixture($fixture, 1));
     CM_Db_Db::insert('cm_splittestVariation_fixture', array('splittestId' => $test2->getId(), $fixture->getColumnId() => $fixture->getId(), 'variationId' => $test2->getVariations()->findByName(10)->getId(), 'createStamp' => time()));
     $this->assertTrue($test2->isVariationFixture($fixture, 10));
 }
コード例 #3
0
ファイル: Client.php プロジェクト: cargomedia/cm
 public function trackSplittest(CM_Splittest_Fixture $fixture, CM_Model_SplittestVariation $variation)
 {
     $nameSplittest = $variation->getSplittest()->getName();
     $nameVariation = $variation->getName();
     switch ($fixture->getFixtureType()) {
         case CM_Splittest_Fixture::TYPE_REQUEST_CLIENT:
             $this->setRequestClientId($fixture->getId());
             break;
         case CM_Splittest_Fixture::TYPE_USER:
             $this->setUserId($fixture->getId());
             break;
     }
     $trackEventJob = new CMService_KissMetrics_TrackPropertyListJob();
     $trackEventJob->queue(array('code' => $this->_getCode(), 'identityList' => $this->_getIdentityList(), 'propertyList' => array('Splittest ' . $nameSplittest => $nameVariation)));
 }
コード例 #4
0
ファイル: Splittest.php プロジェクト: NicolasSchmutz/cm
 /**
  * @param CM_Splittest_Fixture $fixture
  * @return string
  */
 protected static function _getCacheKeyFixture(CM_Splittest_Fixture $fixture)
 {
     return CM_CacheConst::Splittest_VariationFixtures . '_id:' . $fixture->getId() . '_type:' . $fixture->getFixtureType();
 }