/** * Test panel with finished review model * * @depends testWithReview */ public function testWithFinishedReview() { list($contributor, $reviewer, $authModel, $project, $commit) = $this->prepareFixtures(); $reviewModel = $this->projectModule->createContributionReview($project, $commit, $contributor, $reviewer); $this->assertInstanceOf(ContributionReview::className(), $reviewModel); $this->assertTrue($reviewModel->finishReview()); /* @var $contributor User */ /* @var $reviewer User */ /* @var $authModel Auth */ /* @var $project Project */ /* @var $commit BaseCommit */ $result = CommitPanel::widget(['project' => $project, 'commit' => $commit, 'contributor' => $contributor, 'authUser' => $authModel, 'reviewModel' => $reviewModel]); // contains review model but not contains finish review button $this->assertContains($reviewer->name, $result); $this->assertNotContains('did not complete a review', $result); $expectedString = '/projects/' . $project->id . '/' . $commit->getId() . '/finish-review'; $this->assertNotContains($expectedString, $result); $this->assertNotContains('Finish review', $result); // not contains to be a reviewer button $this->assertNotContains('(has no review)', $result); // has to be review button $expectedString = '/projects/' . $project->id . '/' . $commit->getId() . '/create-self-review'; $this->assertNotContains($expectedString, $result); $this->assertNotContains('To be a reviewer', $result); // contains finish review date $expectedString = 'at ' . $reviewModel->getReviewedDateTime()->format("d\\'M y H:i:s"); $this->assertContains($expectedString, $result); }
/** * Test contribution review * * @depends testGetProjectContributions * * @param BaseCommit $commit */ public function testCreateContributionReview(BaseCommit $commit) { /* @var $project Project */ $project = $this->getModule('Yii2')->grabFixture('projects', 'gitProject'); /* @var $reviewer User */ $reviewer = $this->getModule('Yii2')->grabFixture('users', 'activeUser1'); /* @var $contributor User */ $contributor = $this->getModule('Yii2')->grabFixture('users', 'activeUser2'); // create review without users $contributionReview = $this->projectApi->createContributionReview($project, $commit, new UnregisteredContributor()); $this->assertInstanceOf(ContributionReview::className(), $contributionReview); $this->assertInstanceOf(Project::className(), $contributionReview->project); $this->assertEquals($contributionReview->project->id, $project->id); $this->assertNull($contributionReview->reviewer); $this->assertInstanceOf(UnregisteredContributor::className(), $contributionReview->contributor); // check unique $this->assertNull($this->projectApi->createContributionReview($project, $commit, new UnregisteredContributor())); // remove review $this->assertEquals(1, $contributionReview->delete()); // create review with users $contributionReview = $this->projectApi->createContributionReview($project, $commit, $contributor); $this->assertInstanceOf(ContributionReview::className(), $contributionReview); $this->assertInstanceOf(Project::className(), $contributionReview->project); $this->assertEquals($contributionReview->project->id, $project->id); $this->assertNull($contributionReview->reviewer); $this->assertInstanceOf(ContributorInterface::class, $contributionReview->contributor); $this->assertEquals($contributionReview->contributor->id, $contributor->id); $this->assertEquals(1, $contributionReview->delete()); $contributionReview = $this->projectApi->createContributionReview($project, $commit, $contributor, $reviewer); $this->assertInstanceOf(ContributionReview::className(), $contributionReview); $this->assertInstanceOf(Project::className(), $contributionReview->project); $this->assertEquals($contributionReview->project->id, $project->id); $this->assertInstanceOf(ContributorInterface::class, $contributionReview->reviewer); $this->assertEquals($contributionReview->reviewer->id, $reviewer->id); $this->assertInstanceOf(ContributorInterface::class, $contributionReview->contributor); $this->assertEquals($contributionReview->contributor->id, $contributor->id); }