public function testDescribeDBSecurityGroups()
{
$rds = $this->getRdsMock();
$dbsglist = $rds->dbSecurityGroup->describe();
$this->assertInstanceOf($this->getRdsClassName('DataType\\DBSecurityGroupList'), $dbsglist);
$this->assertInstanceOf($this->getAwsClassName('Rds'), $dbsglist->getRds());
$this->assertEquals(3, count($dbsglist));
/* @var $sg DBSecurityGroupData */
$sg = $dbsglist->get(0);
$this->assertInstanceOf($this->getRdsClassName('DataType\\DBSecurityGroupData'), $sg);
$this->assertInstanceOf($this->getAwsClassName('Rds'), $sg->getRds());
$this->assertEquals('default', $sg->dBSecurityGroupDescription);
$this->assertEquals('default-name', $sg->dBSecurityGroupName);
$this->assertEquals('621567473609', $sg->ownerId);
$this->assertEquals('vpc-1ab2c3d4', $sg->vpcId);
$this->assertInstanceOf($this->getRdsClassName('DataType\\IPRangeList'), $sg->iPRanges);
$this->assertInstanceOf($this->getAwsClassName('Rds'), $sg->iPRanges->getRds());
$this->assertEquals(1, count($sg->iPRanges));
/* @var $iprange IPRangeData */
$iprange = $sg->iPRanges->get(0);
$this->assertInstanceOf($this->getRdsClassName('DataType\\IPRangeData'), $iprange);
$this->assertInstanceOf($this->getAwsClassName('Rds'), $iprange->getRds());
$this->assertEquals('127.0.0.1/30', $iprange->cIDRIP);
$this->assertEquals('authorized', $iprange->status);
unset($iprange);
$this->assertInstanceOf($this->getRdsClassName('DataType\\EC2SecurityGroupList'), $sg->eC2SecurityGroups);
$this->assertInstanceOf($this->getAwsClassName('Rds'), $sg->eC2SecurityGroups->getRds());
$this->assertEquals(1, count($sg->eC2SecurityGroups));
/* @var $ec2sg EC2SecurityGroupData */
$ec2sg = $sg->eC2SecurityGroups->get(0);
$this->assertInstanceOf($this->getRdsClassName('DataType\\EC2SecurityGroupData'), $ec2sg);
$this->assertInstanceOf($this->getAwsClassName('Rds'), $ec2sg->getRds());
$this->assertEquals(null, $ec2sg->eC2SecurityGroupId);
$this->assertEquals('myec2securitygroup', $ec2sg->eC2SecurityGroupName);
$this->assertEquals('054794666394', $ec2sg->eC2SecurityGroupOwnerId);
$this->assertEquals('authorized', $ec2sg->status);
unset($ec2sg);
$rds->getEntityManager()->detachAll();
}