コード例 #1
0
ファイル: SismoTest.php プロジェクト: hyperlator/Sismo
 public function testCommitResultForSuccessFail()
 {
     // build is a fail
     $process = $this->getProcess();
     $process->expects($this->once())->method('isSuccessful')->will($this->returnValue(false));
     $process->expects($this->once())->method('getOutput')->will($this->returnValue('foo'));
     $process->expects($this->once())->method('getErrorOutput')->will($this->returnValue('bar'));
     // build is triggered as commit does not exist
     $builder = $this->getBuilder();
     $builder->expects($this->once())->method('prepare')->will($this->returnValue(array('sha1', 'fabien', '2011-01-01 01:01:01 +0200', 'initial commit')));
     $builder->expects($this->once())->method('build')->will($this->returnValue($process));
     // check commit status
     $commit = $this->getCommit();
     $commit->expects($this->once())->method('setStatusCode')->with($this->equalTo('failed'));
     $commit->expects($this->once())->method('setOutput')->with($this->matchesRegularExpression('/foo.*bar/s'));
     // check that storage is updated
     $storage = $this->getStorage();
     $storage->expects($this->any())->method('initCommit')->will($this->returnValue($commit));
     $storage->expects($this->once())->method('updateCommit')->with($this->equalTo($commit));
     $sismo = new Sismo($storage, $builder);
     $sismo->build($this->getProject());
 }
コード例 #2
0
ファイル: app.php プロジェクト: havvg/Sismo
    if (is_file($app['config.storage.file'])) {
        $storage = (require $app['config.storage.file']);
    } else {
        $storage = new Storage($app['db']);
    }
    return $storage;
});
$app['builder'] = $app->share(function () use($app) {
    $process = new Process(sprintf('%s --version', $app['git.path']));
    if ($process->run() > 0) {
        throw new \RuntimeException(sprintf('The git binary cannot be found (%s).', $app['git.path']));
    }
    return new Builder($app['build.path'], $app['git.path'], $app['git.cmds']);
});
$app['sismo'] = $app->share(function () use($app) {
    $sismo = new Sismo($app['storage'], $app['builder']);
    if (!is_file($app['config.file'])) {
        throw new \RuntimeException(sprintf("Looks like you forgot to define your projects.\nSismo looked into \"%s\".", $app['config.file']));
    }
    $projects = (require $app['config.file']);
    if (null === $projects) {
        throw new \RuntimeException(sprintf('The "%s" configuration file must return an array of Projects (returns null).', $app['config.file']));
    }
    if (!is_array($projects)) {
        throw new \RuntimeException(sprintf('The "%s" configuration file must return an array of Projects (returns a non-array).', $app['config.file']));
    }
    foreach ($projects as $project) {
        if (!$project instanceof Project) {
            throw new \RuntimeException(sprintf('The "%s" configuration file must return an array of Project instances.', $app['config.file']));
        }
        $sismo->addProject($project);