<?php use Aviat\Ion\Transformer\AbstractTransformer; class TestTransformer extends AbstractTransformer { public function transform($item) { $out = []; $genre_list = (array) $item; foreach($genre_list as $genre) { $out[] = $genre['name']; } return $out; } } class AbstractTransformerTest extends AnimeClient_TestCase { protected $transformer; public function setUp() { $this->transformer = new TestTransformer(); } public function dataTransformCollection() { return [ 'object' => [ 'original' => [ (object)[ ['name' => 'Comedy'], ['name' => 'Romance'], ['name' => 'School'], ['name' => 'Harem'] ], (object)[ ['name' => 'Action'], ['name' => 'Comedy'], ['name' => 'Magic'], ['name' => 'Fantasy'], ['name' => 'Mahou Shoujo'] ], (object)[ ['name' => 'Comedy'], ['name' => 'Sci-Fi'] ] ], 'expected' => [ ['Comedy', 'Romance', 'School', 'Harem'], ['Action', 'Comedy', 'Magic', 'Fantasy', 'Mahou Shoujo'], ['Comedy', 'Sci-Fi'] ] ], 'array' => [ 'original' => [ [ ['name' => 'Comedy'], ['name' => 'Romance'], ['name' => 'School'], ['name' => 'Harem'] ], [ ['name' => 'Action'], ['name' => 'Comedy'], ['name' => 'Magic'], ['name' => 'Fantasy'], ['name' => 'Mahou Shoujo'] ], [ ['name' => 'Comedy'], ['name' => 'Sci-Fi'] ] ], 'expected' => [ ['Comedy', 'Romance', 'School', 'Harem'], ['Action', 'Comedy', 'Magic', 'Fantasy', 'Mahou Shoujo'], ['Comedy', 'Sci-Fi'] ] ], ]; } public function testTransform() { $data = $this->dataTransformCollection(); $original = $data['object']['original'][0]; $expected = $data['object']['expected'][0]; $actual = $this->transformer->transform($original); $this->assertEquals($expected, $actual); } /** * @dataProvider dataTransformCollection */ public function testTransformCollection($original, $expected) { $actual = $this->transformer->transform_collection($original); $this->assertEquals($expected, $actual); } }