/**
  * @param Payload $payload
  * @return boolean
  */
 protected function validateCommitMessages(Payload $payload)
 {
     $hasErrors = FALSE;
     $url = $payload->getPullRequest()->resolveApiUrl(PullRequest::API_URL_COMMITS);
     $response = $payload->getApi()->get($url);
     $commits = json_decode($response->getContent(), JSON_OBJECT_AS_ARRAY);
     foreach ($commits as $commitData) {
         $commit = new Commit($commitData['commit']);
         $commit->setUrl($commitData['comments_url']);
         $commit->setId($commitData['sha']);
         $commit->setSha1($commitData['sha']);
         $validationResult = $this->validateCommitMessage($payload, $commit);
         $hasErrors = TRUE !== $validationResult || TRUE === $hasErrors;
     }
     return FALSE === $hasErrors;
 }
Exemple #2
0
 /**
  * @return void
  */
 public function testStoreCommitValidation()
 {
     $commit = new Commit();
     $commit->setUrl('fakeurl');
     $commit->setId('fakesha1');
     $pullRequest = new PullRequest();
     $expected = json_encode(array('commit_id' => 'fakesha1', 'body' => 'fakemessage', 'path' => '/a/b/c', 'position' => 123));
     $api = $this->getMockBuilder('Milo\\GitHub\\Api')->setMethods(array('post'))->getMock();
     $payload = $this->getMockBuilder('NamelessCoder\\Gizzle\\Payload')->setMethods(array('getApi', 'getRepository'))->setConstructorArgs(array('{}', ''))->getMock();
     $payload->expects($this->any())->method('getRepository')->willReturn(new Repository());
     $payload->expects($this->once())->method('getApi')->willReturn($api);
     $api->expects($this->once())->method('post')->with($this->anything(), $expected);
     $payload->storeCommitValidation($pullRequest, $commit, 'fakemessage', '/a/b/c', 123);
 }