createApplication(); // clean tables ContentModel::getQuery() ->delete(); User::getQuery() ->delete(); $this->content = App::make(Content::class); // create new rows $this->user = factory(User::class)->create(); factory(ContentModel::class, 3)->create(['userId' => $this->user->id, 'status' => Content::STATUS_DRAFT]); factory(ContentModel::class, 1)->create(['userId' => $this->user->id, 'status' => Content::STATUS_PROTECTED]); factory(ContentModel::class, 5)->create(['userId' => $this->user->id, 'status' => Content::STATUS_PUBLIC]); } /** * Test for selecting homepage. * At first, it tries to select non-existing homepage. On second try, homepage is created. */ public function testSelectingHomepage() { $homepage = $this->content->getHomepage(); $this->assertNull($homepage); $newHomepage = factory(ContentModel::class)->create([ 'userId' => $this->user->id, 'isHomepage' => 1, 'status' => Content::STATUS_PUBLIC, 'publishedFrom' => Carbon::now() ->subDays(10) ]); $homepage = $this->content->getHomepage(); $this->assertNotNull($homepage); $this->assertTrue($homepage->id === $newHomepage->id); } public function testSelectingAllPages() { $all = $this->content->all(); $this->assertCount(6, $all); } public function testSelectingByURL() { $slug = 'testing-slug-for-testing-purposes'; factory(ContentModel::class, 3)->create([ 'userId' => $this->user->id, 'status' => Content::STATUS_PUBLIC, 'url' => $slug ]); $page = $this->content->getByURL($slug); $this->assertNotNull($page); $this->assertTrue($page->exists); } public function testSelectingInvalidPageByURL() { $invalidPage = $this->content->getByURL('non-existing-url'); $this->assertNull($invalidPage); } }