/** * @expectedException \Puli\Manager\Api\Installation\NotInstallableException * @expectedExceptionMessage Puli\Manager\Tests\Installation\Fixtures\TestInstallerInvalid * @expectedExceptionCode 8 */ public function testFailIfInstallerClassInvalid() { $resources = new ArrayResourceCollection(array(new GenericResource('/path/css'), new GenericResource('/path/js'))); $installerDescriptor = new InstallerDescriptor('rsync', self::INSTALLER_CLASS_INVALID, null, array(new InstallerParameter('param1', InstallerParameter::REQUIRED), new InstallerParameter('param2', InstallerParameter::OPTIONAL, 'default1'), new InstallerParameter('param3', InstallerParameter::OPTIONAL, 'default2'))); $server = new Server('example.com', 'rsync', 'ssh://server/public_html', '/%s', array('param1' => 'custom1', 'param3' => 'custom2')); $mapping = new AssetMapping('/path/{css,js}', 'example.com', 'assets'); $this->servers->add($server); $this->repo->expects($this->any())->method('find')->with('/path/{css,js}')->willReturn($resources); $this->installerManager->expects($this->any())->method('hasInstallerDescriptor')->with('rsync')->willReturn(true); $this->installerManager->expects($this->any())->method('getInstallerDescriptor')->with('rsync')->willReturn($installerDescriptor); $this->manager->prepareInstallation($mapping); }
private function assertServersLoaded() { if (null !== $this->servers) { return; } $serversData = $this->rootPackageFileManager->getExtraKey(self::SERVERS_KEY); if ($serversData) { $jsonValidator = new JsonValidator(); $errors = $jsonValidator->validate($serversData, __DIR__ . '/../../res/schema/servers-schema-1.0.json'); if (count($errors) > 0) { throw new ValidationFailedException(sprintf("The extra key \"%s\" is invalid:\n%s", self::SERVERS_KEY, implode("\n", $errors))); } } $this->servers = new ServerCollection(); $this->serversData = (array) $serversData; foreach ($this->serversData as $serverName => $serverData) { $this->servers->add($this->dataToServer($serverName, $serverData)); } }
public function testGetServerNames() { $this->collection->add($this->server1); $this->collection->add($this->server2); $this->assertSame(array('server1', 'server2'), $this->collection->getServerNames()); }