예제 #1
0
 public function testFormat()
 {
     $notifier = $this->getMock('Sismo\\Notifier\\Notifier');
     $r = new \ReflectionObject($notifier);
     $m = $r->getMethod('format');
     $m->setAccessible(true);
     $project = new Project('Twig');
     $commit = new Commit($project, '123456');
     $commit->setAuthor('Fabien');
     $commit->setMessage('Foo');
     $this->assertEquals('twig', $m->invoke($notifier, '%slug%', $commit));
     $this->assertEquals('Twig', $m->invoke($notifier, '%name%', $commit));
     $this->assertEquals('building', $m->invoke($notifier, '%status%', $commit));
     $this->assertEquals('building', $m->invoke($notifier, '%status_code%', $commit));
     $this->assertEquals('123456', $m->invoke($notifier, '%sha%', $commit));
     $this->assertEquals('Fabien', $m->invoke($notifier, '%author%', $commit));
     $this->assertEquals('Foo', $m->invoke($notifier, '%message%', $commit));
 }
예제 #2
0
 public function testNotify()
 {
     $project = new Project('Twig');
     $failedCommit = new Commit($project, '123456');
     $failedCommit->setAuthor('Fabien');
     $failedCommit->setMessage('Foo');
     $successCommit = new Commit($project, '123455');
     $successCommit->setAuthor('Fabien');
     $successCommit->setMessage('Bar');
     $successCommit->setStatusCode('success');
     $baseNotifier = $this->getMock('Sismo\\Notifier\\Notifier');
     $baseNotifier->expects($this->once())->method('notify')->will($this->returnValue('foo'));
     $notifier = new CrossFingerNotifier(array($baseNotifier));
     //a failed commit should call notify on real notifier
     $this->assertTrue($notifier->notify($failedCommit));
     $project->setCommits(array($successCommit));
     //a success commit should not call notify on real notifier
     $this->assertFalse($notifier->notify($successCommit));
 }
예제 #3
0
 public function testNotify()
 {
     $project = new Project('Twig');
     $successCommit = new Commit($project, '123455');
     $successCommit->setAuthor('Fabien');
     $successCommit->setMessage('Bar');
     $successCommit->setStatusCode('success');
     $failedCommit = new Commit($project, '123456');
     $failedCommit->setAuthor('Fabien');
     $failedCommit->setMessage('Foo');
     $failedCommit->setStatusCode('failed');
     $project->setCommits(array($failedCommit, $successCommit));
     $logger = $this->getMock('Psr\\Log\\NullLogger');
     $logger->expects($this->once())->method('info');
     $logger->expects($this->once())->method('critical');
     $notifier = new LoggerNotifier($logger);
     //notify success commit
     $notifier->notify($successCommit);
     //notify failed commit
     $notifier->notify($failedCommit);
 }
예제 #4
0
파일: sismo.php 프로젝트: ronzalo/dyl_s2
 private function createCommit($project, $result)
 {
     $commit = new Commit($project, $result['sha']);
     $commit->setAuthor($result['author']);
     $commit->setMessage($result['message']);
     $commit->setDate(\DateTime::createFromFormat('Y-m-d H:i:s', $result['date']));
     if ($result['build_date']) {
         $commit->setBuildDate(\DateTime::createFromFormat('Y-m-d H:i:s', $result['build_date']));
     }
     $commit->setStatusCode($result['status']);
     $commit->setOutput($result['output']);
     return $commit;
 }
예제 #5
0
파일: CommitTest.php 프로젝트: rouffj/Sismo
 public function testAuthor()
 {
     $commit = new Commit(new Project('Twig'), '7d78d5f7a8c039059046d6c5e1d7f66765bd91c7');
     $commit->setAuthor('foo');
     $this->assertEquals('foo', $commit->getAuthor());
 }