/** * Tes menambahkan Post dan relasinya dengan Tag */ public function testTagRelation() { $cat = Category::create(['title' => 'uncategorized']); $user = User::create(['name' => 'user', 'email' => 'user', 'password' => 'user', 'picture' => 'user']); $tags = []; $tags[] = Tag::create(['title' => 'title']); $obj = new Post(); $obj->title = 'title'; $obj->category_id = $cat->id; $obj->user_id = $user->id; $saved = $obj->save(); $this->assertTrue($saved); if ($saved) { $ids = Collection::make($tags)->map(function ($tag) { return $tag->id; })->toArray(); $obj->tags()->attach($ids); $temp_tags = $obj->tags()->get(); $this->assertEquals(count($tags), count($temp_tags)); foreach ($temp_tags as $key => $temp_tag) { $this->assertEquals($temp_tag->id, $tags[$key]->id); } } }
public function testUpdate() { $tags[] = Tag::create(['title' => 'tagx']); $tags[] = Tag::create(['title' => 'tagy']); $tags[] = Tag::create(['title' => 'tagz']); // tes pemanggilan update sukses $params = $this->setUpParams(); $params['id'] = $this->obj->id . '000'; $params['tags'] = array_map(function ($x) { return $x->id; }, $tags); $response = $this->call('PUT', '/' . self::$endpoint . '/' . $this->obj->id, $params); $this->assertEquals(200, $response->getStatusCode()); $result = $response->getOriginalContent()->toArray(); // tes apakah hasil return adalah yang sesuai unset($params['tags']); foreach ($params as $key => $val) { $this->assertArrayHasKey($key, $result); if (isset($result[$key]) && $key != 'created_at' && $key != 'updated_at' && $key != 'slug') { $this->assertEquals($val, $result[$key]); } } $this->assertEquals(3, count($result['tags'])); // tes tak ada yang dicari $response = $this->call('GET', '/' . self::$endpoint . '/696969', $params); $this->assertEquals(404, $response->getStatusCode()); }
/** * Run the database seeds. * * @return void */ public function run() { Tag::create(array('title' => 'funny', 'slug' => 'funny')); Tag::create(array('title' => 'sad', 'slug' => 'sad')); Tag::create(array('title' => 'heartwarming', 'slug' => 'heartwarming')); }