BaseTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. use Docker\Composer\FileFormat2;
  3. use PHPUnit\Framework\TestCase;
  4. use Symfony\Component\Yaml\Yaml;
  5. require __DIR__ . "/../../../autoload.php";
  6. class BaseTest extends TestCase
  7. {
  8. public function testSimpleUsage()
  9. {
  10. $composer = new \Docker\Composer\FileFormat("", "2.2");
  11. $composer->addService("Base")->image("ubuntu:16.10");
  12. $composer->addService("Ftth")->image("ubuntu:17.10");
  13. $composer->addService("ubuntu")->image("ubuntu");
  14. $composer->addService("custom")->build("./custom");
  15. $composer->addService("test1")->build("./custom1")->addVolumes('volumen_test1_test2', '/opt/test1');
  16. $composer->addService("test2")->build("./custom2")->addVolumes('volumen_test1_test2', '/opt/test2')
  17. ->network('flowdat3')->ipv4_address("172.172.172.2");
  18. $composer->addService("test3")->build("./custom3")
  19. ->setReservationMemory("1G")
  20. ->setReservationCPU("1")
  21. ->setLimitCPU("0.3");
  22. $composer->getVolumes()->addVolumen('volumen_test1_test2', 'local');
  23. $nc = new \Docker\Composer\NetworkConfig();
  24. $nc->addDriver()->addSubnetGateway();
  25. $composer->getNetwork()->addDriver('flowdat3')->addConfig('flowdat3', $nc);
  26. $rtr = Yaml::parse($composer->render());
  27. $expected = array(
  28. "version" => "2.2",
  29. "services" => array(
  30. "Base" => array("image" => "ubuntu:16.10"),
  31. "Ftth" => array("image" => "ubuntu:17.10"),
  32. "ubuntu" => array("image" => "ubuntu"),
  33. "custom" => array("build" => array("context" => "./custom")),
  34. "test1" => array("build" => array("context" => "./custom1"), "volumes" => array('volumen_test1_test2:/opt/test1')),
  35. "test2" => array("build" => array("context" => "./custom2"), "volumes" => array('volumen_test1_test2:/opt/test2'),
  36. "networks" => array("flowdat3" => array("ipv4_address" => "172.172.172.2"))),
  37. "test3" => array("build" => array("context" => "./custom3"),
  38. "deploy" => array('resources' => array('reservations' => array("memory" => "1G", "cpus" => "1"), 'limits' => array("cpus" => "0.3")))),
  39. ),
  40. "volumes" => array('volumen_test1_test2' => array('driver' => 'local')),
  41. "networks" => array('flowdat3' => array('driver' => 'bridge',
  42. 'ipam' => array('driver' => 'default',
  43. 'config' => array(array('subnet' => '172.172.172.0/24'))))));
  44. $this->assertEquals($expected, $rtr);
  45. }
  46. }