Chris@0: formatterManager = new FormatterManager(); Chris@0: } Chris@0: Chris@0: protected function assertIncompatibleDataMessage($expected, $formatter, $data) Chris@0: { Chris@0: $e = new IncompatibleDataException($formatter, $data, $formatter->validDataTypes()); Chris@0: $this->assertEquals($expected, $e->getMessage()); Chris@0: } Chris@0: Chris@0: public function testIncompatibleData() Chris@0: { Chris@0: $tableFormatter = $this->formatterManager->getFormatter('table'); Chris@0: Chris@0: $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: $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: $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: $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: } Chris@0: Chris@0: /** Chris@0: * @expectedException \Exception Chris@0: * @expectedExceptionMessage Undescribable data error: NULL Chris@0: */ Chris@0: public function testUndescribableData() Chris@0: { Chris@0: $tableFormatter = $this->formatterManager->getFormatter('table'); Chris@0: $data = $tableFormatter->validate(null); Chris@0: $this->assertEquals('Will throw before comparing.', $data); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @expectedException \Exception Chris@0: * @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: */ Chris@0: public function testInvalidTableData() Chris@0: { Chris@0: $tableFormatter = $this->formatterManager->getFormatter('table'); Chris@0: $data = $tableFormatter->validate('bad data type'); Chris@0: $this->assertEquals('Will throw before comparing.', $data); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @expectedException \Exception Chris@0: * @expectedExceptionMessage Data provided to Consolidation\OutputFormatters\Formatters\SectionsFormatter must be an instance of Consolidation\OutputFormatters\StructuredData\RowsOfFields. Instead, a string was provided. Chris@0: */ Chris@0: public function testInvalidSectionsData() Chris@0: { Chris@0: $tableFormatter = $this->formatterManager->getFormatter('sections'); Chris@0: $data = $tableFormatter->validate('bad data type'); Chris@0: $this->assertEquals('Will throw before comparing.', $data); Chris@0: } Chris@0: }