コード例 #1
0
ファイル: RevisionFile.php プロジェクト: kalyabin/comitka
 /**
  * @inheritdoc
  */
 public function init()
 {
     if (!$this->project instanceof Project) {
         throw new InvalidParamException('Project variable must be an instance of ' . Project::className());
     }
     if (!$this->repository instanceof BaseRepository) {
         throw new InvalidParamException('Repository variable must be an instance of ' . BaseRepository::className());
     }
     if (!$this->commit instanceof BaseCommit) {
         throw new InvalidParamException('Commit variable must be an instance of ' . BaseCommit::className());
     }
     if (!$this->file instanceof File) {
         throw new InvalidParamException('File variable must be an instance of ' . File::className());
     }
     $this->id = $this->commit->getId() . md5($this->file->getPathname());
 }
コード例 #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());
 }
コード例 #3
0
 /**
  * Retrieve a project model
  *
  * @return ActiveQuery
  */
 public function getProject()
 {
     return $this->hasOne(Project::className(), ['id' => 'project_id']);
 }
コード例 #4
0
ファイル: ProjectApiTest.php プロジェクト: kalyabin/comitka
 /**
  * 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);
 }