public function testExternalIdentifiersInheritance()
{
$loadBalancerName = self::LB_NAME_TEST;
$elb = $this->getElbMock();
$elbClass = get_class($elb);
/* @var $lb LoadBalancerDescriptionData */
$lb = $elb->loadBalancer->describe($loadBalancerName)->get(0);
$this->assertInstanceOf($elbClass, $lb->listenerDescriptions->getElb());
$this->assertEquals($loadBalancerName, $lb->listenerDescriptions->getLoadBalancerName());
foreach ($lb->listenerDescriptions as $listenerDescription) {
$this->assertInstanceOf($elbClass, $listenerDescription->getElb());
$this->assertEquals($loadBalancerName, $listenerDescription->getLoadBalancerName());
}
$this->assertInstanceOf($elbClass, $lb->backendServerDescriptions->getElb());
$this->assertEquals($loadBalancerName, $lb->backendServerDescriptions->getLoadBalancerName());
foreach ($lb->backendServerDescriptions as $backendServerDescription) {
$this->assertInstanceOf($elbClass, $backendServerDescription->getElb());
$this->assertEquals($loadBalancerName, $backendServerDescription->getLoadBalancerName());
}
$this->assertInstanceOf($elbClass, $lb->healthCheck->getElb());
$this->assertEquals($loadBalancerName, $lb->healthCheck->getLoadBalancerName());
$this->assertInstanceOf($elbClass, $lb->instances->getElb());
$this->assertEquals($loadBalancerName, $lb->instances->getLoadBalancerName());
foreach ($lb->instances as $instance) {
$this->assertInstanceOf($elbClass, $instance->getElb());
$this->assertEquals($loadBalancerName, $instance->getLoadBalancerName());
}
$this->assertInstanceOf($elbClass, $lb->policies->getElb());
$this->assertEquals($loadBalancerName, $lb->instances->getLoadBalancerName());
$this->assertInstanceOf($elbClass, $lb->policies->appCookieStickinessPolicies->getElb());
$this->assertEquals($loadBalancerName, $lb->policies->appCookieStickinessPolicies->getLoadBalancerName());
foreach ($lb->policies->appCookieStickinessPolicies as $appCookieStickinessPolicy) {
$this->assertInstanceOf($elbClass, $appCookieStickinessPolicy->getElb());
$this->assertEquals($loadBalancerName, $appCookieStickinessPolicy->getLoadBalancerName());
}
$this->assertInstanceOf($elbClass, $lb->policies->lbCookieStickinessPolicies->getElb());
$this->assertEquals($loadBalancerName, $lb->policies->lbCookieStickinessPolicies->getLoadBalancerName());
foreach ($lb->policies->lbCookieStickinessPolicies as $lbCookieStickinessPolicy) {
$this->assertInstanceOf($elbClass, $lbCookieStickinessPolicy->getElb());
$this->assertEquals($loadBalancerName, $lbCookieStickinessPolicy->getLoadBalancerName());
}
$this->assertInstanceOf($elbClass, $lb->sourceSecurityGroup->getElb());
$this->assertEquals($loadBalancerName, $lb->sourceSecurityGroup->getLoadBalancerName());
}