public function testLoadBalancerListeners()
{
$listenersResult = array('Listeners.member.1.Protocol' => 'HTTP', 'Listeners.member.1.InstancePort' => 1024, 'Listeners.member.1.LoadBalancerPort' => 80, 'Listeners.member.1.SSLCertificateId' => '', 'Listeners.member.2.Protocol' => 'HTTP', 'Listeners.member.2.InstancePort' => 1025, 'Listeners.member.2.LoadBalancerPort' => 1025, 'Listeners.member.2.SSLCertificateId' => null, 'Listeners.member.3.Protocol' => 'HTTP', 'Listeners.member.3.InstancePort' => 1026, 'Listeners.member.3.LoadBalancerPort' => 1026, 'Listeners.member.3.SSLCertificateId' => null);
$loadBalancerName = self::LB_NAME_TEST;
$elb = $this->getElbMock();
$repo = $elb->getEntityManager()->getRepository('Elb:LoadBalancerDescription');
$loadBalancer = $elb->loadBalancer->describe($loadBalancerName)->get(0);
$ret = $loadBalancer->createListeners(array(new ListenerData(1025, 1025, 'HTTP'), new ListenerData(1026, 1026, 'HTTP')));
$this->assertTrue($ret, 'Could not create listeners');
foreach ($loadBalancer->listenerDescriptions as $v) {
$this->assertInstanceOf('Scalr\\Service\\Aws\\Elb', $v->getElb());
$this->assertEquals($loadBalancerName, $v->getLoadBalancerName());
$this->assertInstanceOf('Scalr\\Service\\Aws\\Elb', $v->listener->getElb());
$this->assertEquals($loadBalancerName, $v->listener->getLoadBalancerName());
}
$this->assertEquals($listenersResult, $loadBalancer->listenerDescriptions->getQueryArray());
$ret = $loadBalancer->createListeners();
$this->assertTrue($ret, 'Can not create listeners from loadBalancer instance itself.');
$this->assertEquals($listenersResult, $loadBalancer->listenerDescriptions->getQueryArray());
$loadBalancer->deleteListeners(80);
$this->assertEquals(array('Listeners.member.1.Protocol' => 'HTTP', 'Listeners.member.1.InstancePort' => 1025, 'Listeners.member.1.LoadBalancerPort' => 1025, 'Listeners.member.1.SSLCertificateId' => null, 'Listeners.member.2.Protocol' => 'HTTP', 'Listeners.member.2.InstancePort' => 1026, 'Listeners.member.2.LoadBalancerPort' => 1026, 'Listeners.member.2.SSLCertificateId' => null), $loadBalancer->listenerDescriptions->getQueryArray());
$elb->loadBalancer->deleteListeners($loadBalancerName, array(1025, 1026));
$this->assertEquals(array(), $loadBalancer->listenerDescriptions->getQueryArray());
$loadBalancer->delete();
}