public function testEmptyParticipationStore() { // Arrange $analytics = new \PhpAb\Analytics\PDO([], $this->mockedPDO); // Act $result = $analytics->store('1.2.3.4-abc', 'homepage.php'); // Assert $this->assertFalse($result); }
$storage = new Cookie('phpab'); $manager = new Manager($storage); $analyticsData = new Generic(); $dispatcher = new Dispatcher(); $dispatcher->addSubscriber($analyticsData); $filter = new Percentage(50); $chooser = new RandomChooser(); $engine = new Engine($manager, $dispatcher, $filter, $chooser); $test = new Test('foo_test'); $test->addVariant(new SimpleVariant('_control')); $test->addVariant(new CallbackVariant('v1', function () { echo 'v1'; })); $test->addVariant(new CallbackVariant('v2', function () { echo 'v2'; })); $test->addVariant(new CallbackVariant('v3', function () { echo 'v3'; })); // Add some tests $engine->addTest($test); $engine->start(); // Here starts PDO interaction $pdo = new PDO('sqlite:./phpab.db'); $options = ['runTable' => 'Run', 'testIdentifierField' => 'testIdentifier', 'variantIdentifierField' => 'variantIdentifier', 'userIdentifierField' => 'userIdentifier', 'scenarioIdentifierField' => 'scenarioIdentifier', 'runIdentifierField' => 'runIdentifier', 'createdAtField' => 'createdAt']; // Inject PDO instance together with Analytics Data $analytics = new \PhpAb\Analytics\PDO($analyticsData->getTestsData(), $pdo, $options); // Store it providing a user identifier and a scenario // typically a URL or a controller name $analytics->store('1.2.3.4-abc', 'homepage.php');