public function testEnvironment()
{
if (!$this->getUser()->isAccountOwner()) {
$this->markTestSkipped('Specified user cannot create new environments.');
}
$createdEnvId = 0;
// remove previous test envs
$env = new \Scalr_Environment();
$result = $env->loadByFilter(array('clientId' => $this->getEnvironment()->clientId, 'name' => self::getTestName(self::ENV_NAME)));
if (count($result)) {
foreach ($result as $e) {
$obj = new \Scalr_Environment();
$obj->loadById($e['id']);
$obj->delete();
}
}
// create new
$content = $this->request('/environments/xCreate', array('name' => self::getTestName(self::ENV_NAME)));
$this->assertTrue($content['success']);
if ($content['env']) {
$createdEnvId = $content['env']['id'];
}
// create failure
$content = $this->request('/environments/xCreate', array('name' => ''));
$this->assertFalse($content['success']);
// get info about test env
$content = $this->request('/environments/' . $createdEnvId . '/xGetInfo');
$this->assertTrue($content['success']);
$this->assertArrayHasKey('environment', $content);
$this->assertArrayHasKey('id', $content['environment']);
$this->assertArrayHasKey('name', $content['environment']);
$this->assertArrayHasKey('params', $content['environment']);
$this->assertArrayHasKey('enabledPlatforms', $content['environment']);
// get info about env failure
$content = $this->request('/environments/' . '-3' . '/xGetInfo');
$this->assertFalse($content['success']);
// check new env in list
$content = $this->request('/environments/xListEnvironments');
$this->assertTrue($content['success']);
$this->assertArrayHasKey('data', $content);
$flag = false;
foreach ($content['data'] as $value) {
if ($value['name'] == self::getTestName(self::ENV_NAME)) {
$flag = true;
}
}
$this->assertTrue($flag, 'Created environment not found in list');
// test platforms save
$this->envTestEc2($createdEnvId);
$content = $this->request('/environments/xRemove', array('envId' => $createdEnvId));
$this->assertTrue($content['success']);
}