annotate vendor/consolidation/output-formatters/tests/testIncompatibleData.php @ 9:1fc0ff908d1f

Add another data file
author Chris Cannam
date Mon, 05 Feb 2018 12:34:32 +0000
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2 namespace Consolidation\OutputFormatters;
Chris@0 3
Chris@0 4 use Consolidation\OutputFormatters\StructuredData\RowsOfFields;
Chris@0 5 use Consolidation\OutputFormatters\StructuredData\PropertyList;
Chris@0 6 use Consolidation\OutputFormatters\Exception\IncompatibleDataException;
Chris@0 7
Chris@0 8 class IncompatibleDataTests extends \PHPUnit_Framework_TestCase
Chris@0 9 {
Chris@0 10 protected $formatterManager;
Chris@0 11
Chris@0 12 function setup() {
Chris@0 13 $this->formatterManager = new FormatterManager();
Chris@0 14 }
Chris@0 15
Chris@0 16 protected function assertIncompatibleDataMessage($expected, $formatter, $data)
Chris@0 17 {
Chris@0 18 $e = new IncompatibleDataException($formatter, $data, $formatter->validDataTypes());
Chris@0 19 $this->assertEquals($expected, $e->getMessage());
Chris@0 20 }
Chris@0 21
Chris@0 22 public function testIncompatibleData()
Chris@0 23 {
Chris@0 24 $tableFormatter = $this->formatterManager->getFormatter('table');
Chris@0 25
Chris@0 26 $this->assertIncompatibleDataMessage('Data provided to Consolidation\OutputFormatters\Formatters\TableFormatter must be either an instance of Consolidation\OutputFormatters\StructuredData\RowsOfFields or an instance of Consolidation\OutputFormatters\StructuredData\PropertyList. Instead, a string was provided.', $tableFormatter, 'a string');
Chris@0 27 $this->assertIncompatibleDataMessage('Data provided to Consolidation\OutputFormatters\Formatters\TableFormatter must be either an instance of Consolidation\OutputFormatters\StructuredData\RowsOfFields or an instance of Consolidation\OutputFormatters\StructuredData\PropertyList. Instead, an instance of Consolidation\OutputFormatters\FormatterManager was provided.', $tableFormatter, $this->formatterManager);
Chris@0 28 $this->assertIncompatibleDataMessage('Data provided to Consolidation\OutputFormatters\Formatters\TableFormatter must be either an instance of Consolidation\OutputFormatters\StructuredData\RowsOfFields or an instance of Consolidation\OutputFormatters\StructuredData\PropertyList. Instead, an array was provided.', $tableFormatter, []);
Chris@0 29 $this->assertIncompatibleDataMessage('Data provided to Consolidation\OutputFormatters\Formatters\TableFormatter must be either an instance of Consolidation\OutputFormatters\StructuredData\RowsOfFields or an instance of Consolidation\OutputFormatters\StructuredData\PropertyList. Instead, an instance of Consolidation\OutputFormatters\StructuredData\PropertyList was provided.', $tableFormatter, new PropertyList([]));
Chris@0 30 }
Chris@0 31
Chris@0 32 /**
Chris@0 33 * @expectedException \Exception
Chris@0 34 * @expectedExceptionMessage Undescribable data error: NULL
Chris@0 35 */
Chris@0 36 public function testUndescribableData()
Chris@0 37 {
Chris@0 38 $tableFormatter = $this->formatterManager->getFormatter('table');
Chris@0 39 $data = $tableFormatter->validate(null);
Chris@0 40 $this->assertEquals('Will throw before comparing.', $data);
Chris@0 41 }
Chris@0 42
Chris@0 43 /**
Chris@0 44 * @expectedException \Exception
Chris@0 45 * @expectedExceptionMessage Data provided to Consolidation\OutputFormatters\Formatters\TableFormatter must be either an instance of Consolidation\OutputFormatters\StructuredData\RowsOfFields or an instance of Consolidation\OutputFormatters\StructuredData\PropertyList. Instead, a string was provided.
Chris@0 46 */
Chris@0 47 public function testInvalidTableData()
Chris@0 48 {
Chris@0 49 $tableFormatter = $this->formatterManager->getFormatter('table');
Chris@0 50 $data = $tableFormatter->validate('bad data type');
Chris@0 51 $this->assertEquals('Will throw before comparing.', $data);
Chris@0 52 }
Chris@0 53
Chris@0 54 /**
Chris@0 55 * @expectedException \Exception
Chris@0 56 * @expectedExceptionMessage Data provided to Consolidation\OutputFormatters\Formatters\SectionsFormatter must be an instance of Consolidation\OutputFormatters\StructuredData\RowsOfFields. Instead, a string was provided.
Chris@0 57 */
Chris@0 58 public function testInvalidSectionsData()
Chris@0 59 {
Chris@0 60 $tableFormatter = $this->formatterManager->getFormatter('sections');
Chris@0 61 $data = $tableFormatter->validate('bad data type');
Chris@0 62 $this->assertEquals('Will throw before comparing.', $data);
Chris@0 63 }
Chris@0 64 }