/** * @test */ public function getNodesReturnsNodesFromApplicationsAsSet() { $deployment = new \TYPO3\Surf\Domain\Model\Deployment('Test deployment'); $application1 = new \TYPO3\Surf\Domain\Model\Application('Test application 1'); $application2 = new \TYPO3\Surf\Domain\Model\Application('Test application 2'); $application1->addNode(new \TYPO3\Surf\Domain\Model\Node('test1.example.com')); $application2->addNode(new \TYPO3\Surf\Domain\Model\Node('test1.example.com'))->addNode(new \TYPO3\Surf\Domain\Model\Node('test2.example.com')); $deployment->addApplication($application1)->addApplication($application2); $nodes = $deployment->getNodes(); $nodeNames = array_map(function ($node) { return $node->getName(); }, $nodes); sort($nodeNames); $this->assertEquals(array('test1.example.com', 'test2.example.com'), $nodeNames); }
/** * @test */ public function executePassesApplicationOptionsToTask() { $node = new \TYPO3\Surf\Domain\Model\Node('Test node'); $application = new \TYPO3\Surf\Domain\Model\Application('Test application'); $deployment = new \TYPO3\Surf\Domain\Model\Deployment('Test deployment'); /** @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject $logger */ $logger = $this->getMock('Psr\\Log\\LoggerInterface'); $deployment->setLogger($logger); $task = $this->getMock('TYPO3\\Surf\\Domain\\Model\\Task'); /** @var \TYPO3\Surf\Domain\Service\TaskManager|\PHPUnit_Framework_MockObject_MockObject $taskManager */ $taskManager = $this->getMock('TYPO3\\Surf\\Domain\\Service\\TaskManager', array('createTaskInstance')); $taskManager->expects($this->any())->method('createTaskInstance')->with('MyVendor\\MyPackage\\Task\\TaskGroup\\MyTask')->will($this->returnValue($task)); $applicationOptions = array('repositoryUrl' => 'ssh://review.typo3.org/foo'); $application->setOptions($applicationOptions); $task->expects($this->atLeastOnce())->method('execute')->with($this->anything(), $this->anything(), $this->anything(), $this->arrayHasKey('repositoryUrl')); $localOptions = array(); $taskManager->execute('MyVendor\\MyPackage\\Task\\TaskGroup\\MyTask', $node, $application, $deployment, 'test', $localOptions); }