exporter = new SSListExporter(); } public function provideClassesForExport() { return [ [ArrayList::class, false], [DataObject::class, false], [DataList::class, Member::class], [ArrayData::class, false] ]; } /** * @dataProvider provideClassesForExport() * @param $className * @param $constructorParam */ public function testExportStartsWithClassName($className, $constructorParam) { $obj = $constructorParam ? $className::create($constructorParam) : $className::create(); $export = ltrim($this->exporter->export($obj)); $this->assertStringStartsWith(get_class($obj), $export, 'Export should start with object\'s class name'); } /** * @testdox toMap() returns DataObjects's data */ public function testToMapReturnsDataOfDataObjects() { $data = [ 'ID' => 5, 'Foo' => 'Bar', 'Baz' => 'Boom', 'One' => 'Two' ]; $map = $this->exporter->toMap(DataObject::create($data, DataObject::CREATE_HYDRATED)); $this->assertEquals($data, $map, 'Map should match data passed to DataObject'); } /** * @testdox toMap() returns ArrayData's data */ public function testToMapReturnsDataOfArrayData() { $data = [ 'Foo' => 'Bar', 'Baz' => 'Boom', 'One' => 'Two' ]; $map = $this->exporter->toMap(ArrayData::create($data)); $this->assertEquals($data, $map, 'Map should match data passed to ArrayData'); } }