/** @test */ function it_returns_empty_array_if_the_related_has_empty_collection() { $this->makeUserWithPosts(); $post = Post::first(); $post->user_id = 0; $post->save(); $transformer = new PostTransformer(); $transformed = $transformer->with('author')->transform($post); $this->assertEquals($transformed['author'], null); $user = User::first(); $user->posts()->delete(); $transformer = new UserTransformer(); $transformed = $transformer->with('posts.tags')->transform($user); $this->assertEquals($transformed['posts'], []); }
/** * @param int $count * @param bool $save * @return array */ protected function makePosts($count = 1, $save = false) { $faker = Faker\Factory::create(); $posts = []; for ($i = 0; $i < $count; $i++) { $post = new Post(); $post->title = $faker->title; $post->body = $faker->sentence; if ($save) { $post->save(); } $posts[] = $post; } return $count === 1 ? $posts[0] : $posts; }