Exemplo n.º 1
0
 /**
  * Creates contribution review model.
  *
  * Returns model if successfully added.
  *
  * @param Project $project Project model to relate with model
  * @param BaseCommit $commit Contribution model to relate with model
  * @param ContributorInterface $contributor Contributor model
  * @param ContributorInterface $reviewer Reviewer model (null if set to default contributor reviewer)
  *
  * @return ContributionReview|null
  */
 public function createContributionReview(Project $project, BaseCommit $commit, ContributorInterface $contributor, $reviewer = null)
 {
     $model = new ContributionReview();
     $model->setAttributes(['commit_id' => $commit->getId(), 'project_id' => $project->id, 'date' => $commit->getDate()->format('Y-m-d H:i:s'), 'message' => $commit->message, 'contributor_name' => $commit->contributorName, 'contributor_email' => $commit->contributorEmail, 'repo_type' => $project->repo_type, 'contributor_id' => $contributor->getContributorId(), 'reviewer_id' => $reviewer instanceof ContributorInterface ? $reviewer->getContributorId() : $contributor->getDefaultViewerId()]);
     if ($model->save()) {
         return $model;
     }
     return null;
 }
Exemplo n.º 2
0
 /**
  * Test model validation and save
  */
 public function testValidationSaveAndDelete()
 {
     $model = new ContributionReview();
     $attributes = ['commit_id' => [['value' => null, 'isValid' => false], ['value' => [], 'isValid' => false], ['value' => ['wrong string'], 'isValid' => false], ['value' => str_repeat('A', 41), 'isValid' => false], ['value' => 1, 'isValid' => false], ['value' => md5(uniqid()), 'isValid' => true]], 'project_id' => [['value' => null, 'isValid' => false], ['value' => [], 'isValid' => false], ['value' => ['wrong string'], 'isValid' => false], ['value' => 'string', 'isValid' => false], ['value' => $this->getModule('Yii2')->grabFixture('projects', 'gitProject')->id, 'isValid' => true]], 'date' => [['value' => null, 'isValid' => false], ['value' => [], 'isValid' => false], ['value' => ['wrong string'], 'isValid' => false], ['value' => 'string', 'isValid' => false], ['value' => 1, 'isValid' => false], ['value' => date('Y-m-d H:i:s'), 'isValid' => true]], 'contributor_id' => [['value' => null, 'isValid' => true], ['value' => [], 'isValid' => true], ['value' => '', 'isValid' => true], ['value' => 'wrong integer', 'isValid' => false], ['value' => ['wrong integer'], 'isValid' => false], ['value' => $this->getModule('Yii2')->grabFixture('users', 'activeUser1')->id, 'isValid' => true]], 'reviewer_id' => [['value' => null, 'isValid' => true], ['value' => [], 'isValid' => true], ['value' => '', 'isValid' => true], ['value' => 'wrong integer', 'isValid' => false], ['value' => ['wrong integer'], 'isValid' => false], ['value' => $this->getModule('Yii2')->grabFixture('users', 'activeUser2')->id, 'isValid' => true]], 'message' => [['value' => null, 'isValid' => true], ['value' => 0, 'isValid' => false], ['value' => [], 'isValid' => true], ['value' => ['wrong string'], 'isValid' => false], ['value' => 'test message', 'isValid' => true]], 'contributor_email' => [['value' => null, 'isValid' => true], ['value' => [], 'isValid' => true], ['value' => 0, 'isValid' => false], ['value' => ['wrong string'], 'isValid' => false], ['value' => 'test contributor', 'isValid' => true]], 'contributor_name' => [['value' => null, 'isValid' => false], ['value' => [], 'isValid' => false], ['value' => 0, 'isValid' => false], ['value' => '', 'isValid' => false], ['value' => ['wrong string'], 'isValid' => false], ['value' => 'test contributor', 'isValid' => true]], 'repo_type' => [['value' => null, 'isValid' => false], ['value' => [], 'isValid' => false], ['value' => 0, 'isValid' => false], ['value' => '', 'isValid' => false], ['value' => ['wrong string'], 'isValid' => false], ['value' => 'wrong repo', 'isValid' => false], ['value' => 'svn', 'isValid' => true], ['value' => 'git', 'isValid' => true], ['value' => 'hg', 'isValid' => true]], 'reviewed' => [['value' => null, 'isValid' => true], ['value' => [], 'isValid' => true], ['value' => ['wrong string'], 'isValid' => false], ['value' => 'string', 'isValid' => false], ['value' => 1, 'isValid' => false], ['value' => date('Y-m-d H:i:s'), 'isValid' => true]]];
     $this->getModule('\\Helper\\Unit')->validateModelAttributes($model, $attributes, $this);
     $this->assertTrue($model->validate());
     $this->assertTrue($model->save());
     $this->assertInstanceOf(Project::className(), $model->project);
     $this->assertEquals($model->project->id, $this->getModule('Yii2')->grabFixture('projects', 'gitProject')->id);
     $this->assertInstanceOf(User::className(), $model->contributor);
     $this->assertEquals($model->contributor->id, $this->getModule('Yii2')->grabFixture('users', 'activeUser1')->id);
     $this->assertInstanceOf(User::className(), $model->reviewer);
     $this->assertEquals($model->reviewer->id, $this->getModule('Yii2')->grabFixture('users', 'activeUser2')->id);
     // test unique model
     $attributes = $model->getAttributes();
     unset($attributes['id']);
     $newModel = new ContributionReview();
     $newModel->setAttributes($attributes);
     $this->assertFalse($newModel->validate());
     $this->assertArrayHasKey('commit_id', $newModel->getErrors());
     // delete test
     $this->assertEquals(1, $model->delete());
 }