public function testBasicInstanceOperations() { self::log("\n[#2] Test basic run and terminate operations of instances, including waiting for state changes."); self::log('Launch two instances.'); $result = $this->client->getCommand('RunInstances', array('ImageId' => self::TEST_AMI, 'MinCount' => 2, 'MaxCount' => 2, 'InstanceType' => InstanceType::T1_MICRO))->getResult(); self::log('Get the IDs of those two instances.'); $instanceIds = array(); foreach ($result['Instances'] as $instance) { $this->assertRegExp('/^i\\-[a-f0-9]{8}/', $instance['InstanceId']); $instanceIds[] = $instance['InstanceId']; } $this->assertCount(2, $instanceIds); self::log('Wait until they are running.'); $this->client->waitUntilInstanceRunning(array('InstanceIds' => $instanceIds)); self::log('Terminate the instances and verify that they are shutting-down.'); $result = $this->client->getCommand('TerminateInstances', array('InstanceIds' => $instanceIds))->getResult(); $this->assertEquals(InstanceStateName::SHUTTING_DOWN, $result->getPath('TerminatingInstances/0/CurrentState/Name')); $this->assertEquals(InstanceStateName::SHUTTING_DOWN, $result->getPath('TerminatingInstances/1/CurrentState/Name')); self::log('Wait until they are terminated.'); $this->client->waitUntilInstanceTerminated(array('InstanceIds' => $instanceIds)); self::log('Verify that the instances are terminated using the DescribeInstances iterator.'); $instances = $this->client->getIterator('DescribeInstances', array('InstanceIds' => $instanceIds)); foreach ($instances as $instance) { $this->assertEquals(InstanceStateName::TERMINATED, $instance['State']['Name']); } }
/** * @dataProvider iteratorProvider */ public function testDescribeIteratorTest(Operation $operation) { switch ($operation->getName()) { case 'DescribeImages': case 'DescribeReservedInstancesListings': case 'DescribeLicenses': self::log('Not running ' . $operation->getName()); return; } self::log('Testing iterator: ' . $operation->getName()); $iterator = $this->client->getIterator($operation->getName(), null, array('limit' => 25)); $this->assertLessThanOrEqual(25, iterator_count($iterator)); foreach ($iterator as $result) { $this->assertInternalType('array', $result); } }