public function isPublished() { if (!$this->status->equals(PublishStatus::usable())) { return false; } if (!$this->published || $this->published < new DateTime('now')) { return false; } return true; }
public function testSerialize() { $draft = PublishStatus::draft(); $usable = PublishStatus::usable(); $canceled = PublishStatus::canceled(); $this->assertEquals('"draft"', json_encode($draft)); $this->assertEquals('"usable"', json_encode($usable)); $this->assertEquals('"canceled"', json_encode($canceled)); }
public function testPublishPageInPast() { $date = new \DateTime('now'); $date->modify('-1 hour'); $this->page->publish($date); $this->assertTrue(PublishStatus::usable()->equals($this->page->getStatus())); $this->assertInstanceOf('DateTime', $this->page->getCreated()); $this->assertInstanceOf('DateTime', $this->page->getPublished()); $this->assertEquals($date, $this->page->getPublished()); $this->assertInstanceOf('DateTime', $this->page->getModified()); $this->assertFalse($this->page->isPublished()); }