1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
fog--fog-aws/tests/requests/ecs/task_definitions_tests.rb
2015-06-05 21:39:54 -03:00

97 lines
4.2 KiB
Ruby

require 'fog/json'
Shindo.tests('AWS::ECS | task definitions requests', ['aws', 'ecs']) do
Fog::AWS[:ecs].reset_data
tests('success') do
tests("#list_task_definitions").formats(AWS::ECS::Formats::LIST_TASK_DEFINITIONS) do
result = Fog::AWS[:ecs].list_task_definitions.body
list_task_def_arns = result['ListTaskDefinitionsResult']['taskDefinitionArns']
returns(true) { list_task_def_arns.empty? }
result
end
tests("#register_task_definition").formats(AWS::ECS::Formats::REGISTER_TASK_DEFINITION) do
task_def_params = Fog::JSON.decode(IO.read(AWS::ECS::Samples::TASK_DEFINITION_1))
result = Fog::AWS[:ecs].register_task_definition(task_def_params).body
task_def = result['RegisterTaskDefinitionResult']['taskDefinition']
returns('console-sample-app-static') { task_def['family'] }
returns(true) { task_def['revision'] > 0 }
returns(false) { task_def['taskDefinitionArn'].match(/^arn:aws:ecs:.+:.+:task-definition\/.+:\d+$/).nil? }
result
end
tests("#list_task_definition_families").formats(AWS::ECS::Formats::LIST_TASK_DEFINITION_FAMILIES) do
result = Fog::AWS[:ecs].list_task_definition_families.body
families = result['ListTaskDefinitionFamiliesResult']['families']
returns(false) { families.empty? }
returns(true) { families.include?('console-sample-app-static') }
result
end
tests("#list_task_definitions again").formats(AWS::ECS::Formats::LIST_TASK_DEFINITIONS) do
result = Fog::AWS[:ecs].list_task_definitions.body
list_task_def_arns = result['ListTaskDefinitionsResult']['taskDefinitionArns']
returns(true) { list_task_def_arns.size.eql?(1) }
result
end
tests("#describe_task_definition").formats(AWS::ECS::Formats::DESCRIBE_TASK_DEFINITION) do
result1 = Fog::AWS[:ecs].list_task_definitions.body
task_def_arn = result1['ListTaskDefinitionsResult']['taskDefinitionArns'].first
result2 = Fog::AWS[:ecs].describe_task_definition('taskDefinition' => task_def_arn).body
task_def = result2['DescribeTaskDefinitionResult']['taskDefinition']
returns(true) { task_def['taskDefinitionArn'].eql?(task_def_arn) }
returns(true) { task_def['containerDefinitions'].size > 0 }
result2
end
tests("#deregister_task_definition").formats(AWS::ECS::Formats::DEREGISTER_TASK_DEFINITION) do
result1 = Fog::AWS[:ecs].list_task_definitions.body
task_def_arn = result1['ListTaskDefinitionsResult']['taskDefinitionArns'].first
result2 = Fog::AWS[:ecs].deregister_task_definition('taskDefinition' => task_def_arn).body
task_def = result2['DeregisterTaskDefinitionResult']['taskDefinition']
returns(true) { task_def['taskDefinitionArn'].eql?(task_def_arn) }
result2
end
tests("#list_task_definitions yet again").formats(AWS::ECS::Formats::LIST_TASK_DEFINITIONS) do
result = Fog::AWS[:ecs].list_task_definitions.body
list_task_def_arns = result['ListTaskDefinitionsResult']['taskDefinitionArns']
returns(true) { list_task_def_arns.empty? }
result
end
tests("#list_task_definition_families again").formats(AWS::ECS::Formats::LIST_TASK_DEFINITION_FAMILIES) do
result = Fog::AWS[:ecs].list_task_definition_families.body
families = result['ListTaskDefinitionFamiliesResult']['families']
returns(true) { families.empty? }
returns(false) { families.include?('console-sample-app-static') }
result
end
end
tests('failures') do
tests('#describe_task_definition without params').raises(Fog::AWS::ECS::Error) do
response = Fog::AWS[:ecs].describe_task_definition.body
end
tests('#describe_task_definition nonexistent').raises(Fog::AWS::ECS::Error) do
response = Fog::AWS[:ecs].describe_task_definition('taskDefinition' => 'foobar').body
end
tests('#deregister_task_definition without params').raises(Fog::AWS::ECS::Error) do
response = Fog::AWS[:ecs].deregister_task_definition.body
end
tests('#deregister_task_definition nonexistent').raises(Fog::AWS::ECS::NotFound) do
response = Fog::AWS[:ecs].deregister_task_definition('taskDefinition' => 'foobar:7873287283').body
end
end
end