Testing ResultSet

This commit is contained in:
Daniel Martinez
2015-06-18 10:11:19 +02:00
parent d6dc5d5062
commit 413cbf6eb2
2 changed files with 59 additions and 2 deletions

View File

@@ -41,8 +41,33 @@ class ResultSet
*
* @return array $points
*/
public function getPoints($metricName = '', $tags = array())
public function getPoints($metricName = '', array $tags = array())
{
return array();
$points = array();
// todo: we are considering always have a metricName
foreach ($this->parsedResults['results'] as $result) {
foreach ($result['series'] as $serie) {
if ($serie['measurement'] == $metricName) {
$points[] = $this->getPointsFromSerie($serie);
}
}
}
return $points;
}
/**
* @param array $serie
* @return array
*/
private function getPointsFromSerie(array $serie)
{
return array_combine(
$serie['columns'],
array_shift($serie['values'])
);
}
}

View File

@@ -14,14 +14,46 @@ class ResultSetTest extends \PHPUnit_Framework_TestCase
$this->resultSet = new ResultSet($resultJsonExample);
}
/**
* @expectedException \InvalidArgumentException
*/
public function testThrowsExceptionIfJSONisNotValid()
{
$invalidJSON = 'foo';
new ResultSet($invalidJSON);
}
/**
* We can get points for a measurement
*/
public function testGetPointsFromMeasurementName()
{
$measurementName = 'cpu_load_short';
$expectedNumberOfPoints = 2;
$expectedValueFromFirstPoint = 0.64;
$points = $this->resultSet->getPoints($measurementName);
$this->assertTrue(
is_array($points)
);
$this->assertCount($expectedNumberOfPoints, $points);
$somePoint = array_shift($points);
$this->assertEquals($expectedValueFromFirstPoint, $somePoint['value']);
}
public function testGetPointsFromTags()
{
$tags = array("host" => "server01");
$points = $this->resultSet->getPoints('', $tags);
$this->assertTrue(
is_array($points)
);
}
}