/**
  * Tests that the chart factory creates a pie chart for breakdown input.
  *
  * @return void
  */
 public function testCreatePieChartFromBuildBreakdown()
 {
     $this->markTestSkippedWhenEzcGraphChartNotExists();
     $input = new phpucBuildBreakdownInput();
     $input->processLog(new DOMXPath(new DOMDocument()));
     $factory = new phpucChartFactory();
     $chart = $factory->createChart($input);
     $this->assertType('phpucPieChart', $chart);
 }
 /**
  * Tests the line chart render method.
  *
  * @return void
  */
 public function testRender()
 {
     $this->markTestSkippedWhenEzcGraphChartNotExists();
     $dom = new DOMDocument();
     $dom->load(PHPUC_TEST_LOG_FILE);
     $input = new phpucBuildBreakdownInput();
     $input->processLog(new DOMXPath($dom));
     $chart = new phpucPieChart();
     $chart->setInput($input);
     $file = PHPUC_TEST_DIR . '/test.png';
     $chart->render(230, 420, $file);
     $this->assertFileExists($file);
 }
 /**
  * Extracts the test data for a single log file and tests the result.
  *
  * @param DOMXPath $xpath The xpath instance for the log file.
  *
  * @return void
  */
 protected function doTestSingleLog(DOMXPath $xpath)
 {
     $error = $xpath->query('/cruisecontrol[build/@error]/info/property[@name = "builddate"]/@value');
     $input = new phpucBuildBreakdownInput();
     $input->processLog($xpath);
     $data = $input->data;
     $this->assertArrayHasKey('Broken Builds', $data);
     $this->assertArrayHasKey('Good Builds', $data);
     if ($error->length === 1) {
         $this->assertEquals(0, $data['Good Builds']);
         $this->assertEquals(1, $data['Broken Builds']);
     } else {
         $this->assertEquals(1, $data['Good Builds']);
         $this->assertEquals(0, $data['Broken Builds']);
     }
 }