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/cluster_tests.rb
2015-06-05 21:39:54 -03:00

112 lines
4.3 KiB
Ruby

Shindo.tests('AWS::ECS | cluster requests', ['aws', 'ecs']) do
Fog::AWS[:ecs].reset_data
tests('success') do
tests("#create_cluster").formats(AWS::ECS::Formats::CREATE_CLUSTER) do
result = Fog::AWS[:ecs].create_cluster('clusterName' => 'cluster1').body
cluster = result['CreateClusterResult']['cluster']
returns('cluster1') { cluster['clusterName'] }
returns('ACTIVE') { cluster['status'] }
result
end
tests("#create_cluster another").formats(AWS::ECS::Formats::CREATE_CLUSTER) do
result = Fog::AWS[:ecs].create_cluster('clusterName' => 'foobar').body
cluster = result['CreateClusterResult']['cluster']
returns('foobar') { cluster['clusterName'] }
returns('ACTIVE') { cluster['status'] }
result
end
tests("#create_cluster without params").formats(AWS::ECS::Formats::CREATE_CLUSTER) do
result = Fog::AWS[:ecs].create_cluster.body
cluster = result['CreateClusterResult']['cluster']
returns('default') { cluster['clusterName'] }
result
end
tests("#list_clusters").formats(AWS::ECS::Formats::LIST_CLUSTERS) do
result = Fog::AWS[:ecs].list_clusters.body
clusters = result['ListClustersResult']['clusterArns']
returns(true) { clusters.size.eql?(3) }
result
end
tests("#describe_clusters with name").formats(AWS::ECS::Formats::DESCRIBE_CLUSTERS) do
result = Fog::AWS[:ecs].describe_clusters('clusters' => 'cluster1').body
clusters = result['DescribeClustersResult']['clusters']
failures = result['DescribeClustersResult']['failures']
returns(true) { clusters.size.eql?(1) }
returns('cluster1') { clusters.first['clusterName'] }
returns(true) { failures.empty? }
result
end
tests("#describe_clusters without params").formats(AWS::ECS::Formats::DESCRIBE_CLUSTERS) do
result = Fog::AWS[:ecs].describe_clusters.body
clusters = result['DescribeClustersResult']['clusters']
failures = result['DescribeClustersResult']['failures']
returns(true) { clusters.size.eql?(1) }
returns('default') { clusters.first['clusterName'] }
result
end
tests("#describe_clusters several with name").formats(AWS::ECS::Formats::DESCRIBE_CLUSTERS) do
result = Fog::AWS[:ecs].describe_clusters('clusters' => %w(cluster1 foobar)).body
clusters = result['DescribeClustersResult']['clusters']
cluster_names = clusters.map { |c| c['clusterName'] }.sort
returns(true) { clusters.size.eql?(2) }
returns('cluster1') { cluster_names.first }
returns('foobar') { cluster_names[1] }
result
end
tests("#describe_clusters with errors").formats(AWS::ECS::Formats::DESCRIBE_CLUSTERS) do
result = Fog::AWS[:ecs].describe_clusters('clusters' => %w(foobar not_here wtf)).body
clusters = result['DescribeClustersResult']['clusters']
failures = result['DescribeClustersResult']['failures']
returns(true) { failures.size.eql?(2) }
returns('MISSING') { failures.first['reason'] }
returns(true) { clusters.size.eql?(1) }
result
end
tests("#delete_cluster").formats(AWS::ECS::Formats::DELETE_CLUSTER) do
cluster_name = 'foobar'
result = Fog::AWS[:ecs].delete_cluster('cluster' => cluster_name).body
cluster = result['DeleteClusterResult']['cluster']
returns(true) { cluster['clusterName'].eql?(cluster_name) }
returns('INACTIVE') { cluster['status'] }
result
end
tests("#list_clusters after one delete").formats(AWS::ECS::Formats::LIST_CLUSTERS) do
result = Fog::AWS[:ecs].list_clusters.body
clusters = result['ListClustersResult']['clusterArns']
returns(true) { clusters.size.eql?(2) }
result
end
tests("#delete_cluster by arn").formats(AWS::ECS::Formats::DELETE_CLUSTER) do
result1 = Fog::AWS[:ecs].describe_clusters.body
cluster1 = result1['DescribeClustersResult']['clusters'].first
result2 = Fog::AWS[:ecs].delete_cluster('cluster' => cluster1['clusterArn']).body
cluster2 = result2['DeleteClusterResult']['cluster']
returns('default') { cluster2['clusterName'] }
returns('INACTIVE') { cluster2['status'] }
result2
end
end
tests('failures') do
tests('#delete_cluster without params').raises(Fog::AWS::ECS::Error) do
response = Fog::AWS[:ecs].delete_cluster.body
end
end
end