public function it_sets_internal_state_to_success_if_all_statuses_passed(GithubCommit $githubCommit, GithubCommitStatus $commitStatus1, GithubCommitStatus $commitStatus2, GithubCommitStatus $commitStatus3, GithubCommitStatus $commitStatus4) { $commitStatusCollection = [$commitStatus1, $commitStatus2, $commitStatus3, $commitStatus4]; $commitStatus1->getState()->willReturn(GithubCommitStatusState::PASSED); $commitStatus2->getState()->willReturn(GithubCommitStatusState::PASSED); $commitStatus3->getState()->willReturn(GithubCommitStatusState::PASSED); $commitStatus4->getState()->willReturn(GithubCommitStatusState::PASSED); $githubCommit->getCommitStatuses()->willReturn($commitStatusCollection); $githubCommit->setInternalStatus(InternalStatus::SUCCESS)->shouldBeCalled(); $this->calculate($githubCommit)->shouldReturn($githubCommit); }
/** * @param GithubCommit $githubCommit * @param $expectedStates * * @return bool */ private function anyEqualTo(GithubCommit $githubCommit, $expectedStates) { foreach ($githubCommit->getCommitStatuses() as $status) { if (in_array($status->getState(), $expectedStates)) { return true; } } return false; }