From 26b8d2b92190de6ce4bbf6ccbb3f1a4f1a735d1d Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Tue, 12 Nov 2019 21:49:43 +0100 Subject: Introduce the NewsComments model --- tests/Unit/Models/NewsCommentsTest.php | 125 +++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 tests/Unit/Models/NewsCommentsTest.php (limited to 'tests') diff --git a/tests/Unit/Models/NewsCommentsTest.php b/tests/Unit/Models/NewsCommentsTest.php new file mode 100644 index 00000000..db00a0ce --- /dev/null +++ b/tests/Unit/Models/NewsCommentsTest.php @@ -0,0 +1,125 @@ +initDatabase(); + + $this->user = User::create([ + 'name' => 'lorem', + 'password' => '', + 'email' => 'lorem@example.com', + 'api_key' => '', + ]); + + $this->news = News::create([ + 'title' => 'test title', + 'text' => 'test text', + 'user_id' => $this->user->id, + ]); + + $this->newsCommentData = [ + 'news_id' => $this->news->id, + 'text' => 'test comment', + 'user_id' => $this->user->id, + ]; + } + + /** + * Tests that a NewsComment can be created and loaded. + * + * @return void + */ + public function testCreate(): void + { + $createdNewsComment = NewsComment::create($this->newsCommentData); + + $newsComment = NewsComment::find($createdNewsComment->id); + $this->assertInstanceOf(NewsComment::class, $newsComment); + $this->assertEquals($this->newsCommentData['news_id'], $newsComment->news_id); + $this->assertSame($this->newsCommentData['text'], $newsComment->text); + $this->assertEquals($this->newsCommentData['user_id'], $newsComment->user_id); + } + + /** + * Tests that accessing the User of a NewsComment works. + * + * @return void + */ + public function testUser(): void + { + $newsComment = NewsComment::create($this->newsCommentData); + $this->assertInstanceOf(User::class, $newsComment->user); + $this->assertSame($this->user->id, $newsComment->user->id); + } + + /** + * Tests that accessing the News of a NewsComment works. + * + * @return void + */ + public function testNews(): void + { + $newsComment = NewsComment::create($this->newsCommentData); + $this->assertInstanceOf(News::class, $newsComment->news); + $this->assertSame($this->news->id, $newsComment->news->id); + } + + /** + * Tests that accessing the NewsComments of a News works. + * + * @return void + */ + public function testNewsComments(): void + { + $newsComment = NewsComment::create($this->newsCommentData); + $comments = $this->news->comments; + $this->assertCount(1, $comments); + $comment = $comments->first(); + $this->assertSame($newsComment->id, $comment->id); + } + + /** + * Tests that accessing the NewsComments of an User works. + * + * @return void + */ + public function testUserNewsComments(): void + { + $newsComment = NewsComment::create($this->newsCommentData); + $comments = $this->user->newsComments; + $this->assertCount(1, $comments); + $comment = $comments->first(); + $this->assertSame($newsComment->id, $comment->id); + } +} -- cgit v1.2.3-54-g00ecf