public function test_addManyCustomDimensions_shouldAddNewColumns() { // should add nothing as not a valid index $this->logVisit->addManyCustomDimensions(0); $this->logVisit->addManyCustomDimensions(null); $this->assertSame(range(1, 5), $this->logVisit->getInstalledIndexes()); $this->logVisit->addManyCustomDimensions(1); $this->assertSame(range(1, 6), $this->logVisit->getInstalledIndexes()); $this->logVisit->addManyCustomDimensions(4); $this->assertSame(range(1, 10), $this->logVisit->getInstalledIndexes()); // should automatically add after highest index if some indexes are missing in between $this->logVisit->removeCustomDimension('8'); $this->logVisit->removeCustomDimension('2'); $this->logVisit->removeCustomDimension('1'); $this->logVisit->addManyCustomDimensions(2); $this->assertSame(array(3, 4, 5, 6, 7, 9, 10, 11, 12), $this->logVisit->getInstalledIndexes()); }
protected function execute(InputInterface $input, OutputInterface $output) { $scope = $this->getScope($input); $count = $this->getCount($input); $output->writeln(sprintf('Adding %d Custom Dimension(s) in scope %s.', $count, $scope)); $output->writeln('<info>This causes schema changes in the database and may take a very long time.</info>'); $noInteraction = $input->getOption('no-interaction'); if (!$noInteraction && !$this->confirmChange($output)) { return; } $output->writeln(''); $output->writeln('Starting to add Custom Dimension(s)'); $output->writeln(''); $tracking = new LogTable($scope); $tracking->addManyCustomDimensions($count); if ($scope === CustomDimensions::SCOPE_VISIT) { $tracking = new LogTable(CustomDimensions::SCOPE_CONVERSION); $tracking->addManyCustomDimensions($count); } Cache::clearCacheGeneral(); $numDimensionsAvailable = $tracking->getNumInstalledIndexes(); $this->writeSuccessMessage($output, array(sprintf('Your Piwik is now configured for up to %d Custom Dimensions in scope %s.', $numDimensionsAvailable, $scope))); }