makeMetric('bonuce_count', 'nb_visits', ComputedMetric::AGGREGATION_AVG); $formatter = new Formatter(); $metric->setType($type); $table = new DataTable(); $table->setMetadata('site', new Site(1)); $metric->beforeFormat(null, $table); $formatted = $metric->format($value, $formatter); $this->assertEquals($expected, $formatted); } public function getFormatValueProvider() { return array( array($type = Dimension::TYPE_NUMBER, $value = 5.354, $expected = 5.4), array($type = Dimension::TYPE_FLOAT, $value = 5.354, $expected = 5.35), array($type = Dimension::TYPE_MONEY, $value = 5.392, $expected = '$5.39'), array($type = Dimension::TYPE_PERCENT, $value = 0.343, $expected = '34.3%'), array($type = Dimension::TYPE_DURATION_S, $value = 121, $expected = '2 min 1s'), array($type = Dimension::TYPE_DURATION_MS, $value = 392, $expected = '0.39s'), array($type = Dimension::TYPE_BYTE, $value = 392, $expected = '392 B'), ); } public function testGetName() { $metric = $this->makeMetric('bounces', 'nb_visits', ComputedMetric::AGGREGATION_AVG); $this->assertSame('avg_bounces_per_visits', $metric->getName()); $metric = $this->makeMetric('bounces', 'nb_uniq_visits', ComputedMetric::AGGREGATION_AVG); $this->assertSame('avg_bounces_per_uniq_visits', $metric->getName()); $metric = $this->makeMetric('sum_bounces', 'nb_uniq_visits', ComputedMetric::AGGREGATION_AVG); $this->assertSame('avg_sum_bounces_per_uniq_visits', $metric->getName()); $metric = $this->makeMetric('bounces', 'nb_visits', ComputedMetric::AGGREGATION_RATE); $this->assertSame('bounces_visits_rate', $metric->getName()); $metric = $this->makeMetric('bounces', 'nb_uniq_visits', ComputedMetric::AGGREGATION_RATE); $this->assertSame('bounces_uniq_visits_rate', $metric->getName()); $metric = $this->makeMetric('sum_bounces', 'nb_uniq_visits', ComputedMetric::AGGREGATION_RATE); $this->assertSame('sum_bounces_uniq_visits_rate', $metric->getName()); } public function testSetName() { $metric = $this->makeMetric('bounces', 'nb_visits', ComputedMetric::AGGREGATION_AVG); $metric->setName('avg_bounces'); $this->assertSame('avg_bounces', $metric->getName()); } public function testGetTranslatedName() { $metric = $this->makeMetric('bounce_count', 'nb_visits', ComputedMetric::AGGREGATION_AVG); $this->assertSame('Avg. Actions In Visit per Visit', $metric->getTranslatedName()); $metric = $this->makeMetric('bounce_count', 'nb_visits', ComputedMetric::AGGREGATION_RATE); $this->assertSame('Bounces Rate', $metric->getTranslatedName()); } public function testGetDocumentation() { $metric = $this->makeMetric('bounce_count', 'nb_visits', ComputedMetric::AGGREGATION_AVG); $this->assertSame('Average value of "Actions In Visit" per "Visits".', $metric->getDocumentation()); $metric = $this->makeMetric('bounce_count', 'nb_visits', ComputedMetric::AGGREGATION_RATE); $this->assertSame('The ratio of "Actions In Visit" out of all "Visits".', $metric->getDocumentation()); } public function testGetDependentMetrics() { $metric = $this->makeMetric('bounce_count', 'nb_visits', ComputedMetric::AGGREGATION_AVG); $this->assertSame(array('bounce_count', 'nb_visits'), $metric->getDependentMetrics()); } public function testSetCategory() { $metric = $this->makeMetric('bounce_count', 'nb_visits', ComputedMetric::AGGREGATION_AVG); $metric->setCategory('123'); $this->assertSame('123', $metric->getCategoryId()); } }