assertTrue(ArticleStatus::Ingesting->canTransitionTo(ArticleStatus::Draft)); $this->assertTrue(ArticleStatus::Draft->canTransitionTo(ArticleStatus::Active)); $this->assertTrue(ArticleStatus::Draft->canTransitionTo(ArticleStatus::NeedsReview)); $this->assertTrue(ArticleStatus::NeedsReview->canTransitionTo(ArticleStatus::Draft)); $this->assertTrue(ArticleStatus::Active->canTransitionTo(ArticleStatus::Listed)); $this->assertTrue(ArticleStatus::Listed->canTransitionTo(ArticleStatus::Sold)); } public function test_invalid_transitions(): void { $this->assertFalse(ArticleStatus::Sold->canTransitionTo(ArticleStatus::Draft)); $this->assertFalse(ArticleStatus::Ingesting->canTransitionTo(ArticleStatus::Sold)); $this->assertFalse(ArticleStatus::Listed->canTransitionTo(ArticleStatus::Ingesting)); } }