* @author    donbstringham <*****@*****.**>
 * @copyright 2016 © donbstringham
 * @license   http://opensource.org/licenses/MIT MIT
 * @version   GIT: <git_id>
 * @link      http://donbstringham.us
 * $LastChangedDate$
 * $LastChangedBy$
 */
use Emris\Cli\Scaler\Domain\ServerBuilder;
use Emris\Cli\Scaler\Domain\ServerCollection;
describe('Emris\\Cli\\Scaler\\Domain\\ServerCollection', function () {
    beforeEach(function () {
        require 'container.data.php';
        $builder = new ServerBuilder();
        /** @var string $serverData01 */
        $builder->setIp('127.0.0.1');
        $builder->setPort('8080');
        $this->server01 = $builder->build();
        /** @var string $serverData02 */
        $builder->setIp('127.0.0.2');
        $builder->setPort('8081');
        $this->server02 = $builder->build();
        /** @var string $serverData03 */
        $builder->setIp('127.0.0.3');
        $builder->setPort('8081');
        $this->server03 = $builder->build();
        $this->collection = new ServerCollection([$this->server01, $this->server02, $this->server03]);
    });
    describe('->__construct()', function () {
        it('should return a ServerCollection object', function () {
            expect($this->collection)->to->be->instanceof('Emris\\Cli\\Scaler\\Domain\\ServerCollection');
 beforeEach(function () {
     $this->builder = new ContainerBuilder();
 });
 describe('->__construct()', function () {
     it('should return a Container and ContainerBuilder object', function () {
         expect($this->builder)->to->be->instanceof('Emris\\Cli\\Scaler\\Domain\\ContainerBuilder');
         $container = $this->builder->build();
         expect($container)->to->be->instanceof('Emris\\Cli\\Scaler\\Domain\\Container');
     });
 });
 describe('->buildFrom($server)', function () {
     it('should return a Container object', function () {
         $svrBldr = new ServerBuilder();
         $svrBldr->setId('0');
         $svrBldr->setName('/emrisalarmwebservice_eaws_php_1');
         $svrBldr->setIp('127.0.0.1');
         $svrBldr->setPort(9000);
         $server = $svrBldr->build();
         $container = $this->builder->buildFrom($server);
         expect($container)->to->be->instanceof('Emris\\Cli\\Scaler\\Domain\\Container');
     });
 });
 describe('->setJson($json)', function () {
     it('should return take json can convert it to metadata', function () {
         require 'container.data.php';
         /** @var string $containerData01 */
         $this->builder->setJson($containerData01);
         /** @var \Emris\Cli\Scaler\Domain\Container $container */
         $container = $this->builder->build();
         $metadata = $container->getMetadata();
         expect($container)->to->be->instanceof('Emris\\Cli\\Scaler\\Domain\\Container');