@image @project Feature: Update images <% providers = @formatter.get_fixture('providers/without_static') %> <% providers.each do |provider| %> <% image = @formatter.get_fixture(provider + '/image') %> <% other_providers = providers.clone - [provider] %> <% other_providers.each do |oprovider| %> @<%= provider %> Scenario: Update <%= provider %> image with '<%= oprovider %>' provider (invalid image id for provider) When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image', {value: {"provider" => oprovider}}) %> """ Then response should be '400' <% end #other providers%> <% (image.keys - ["id"]).each do |key| %> <% [[], {}].each do |invalid_value| %> @<%= provider %> Scenario: Update <%= provider %> image with invalid <%= key %> value: '<%= invalid_value %>' When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image', {value: {key => invalid_value}}) %> """ Then response should be '400' <% end #invalid values%> <% end # keys%> <% (image.keys - ["bootstrap_template", "id"]).each do |key| %> @<%= provider %> Scenario: Update <%= provider %> image with invalid <%= key %> value: 'nil' When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image', {value: {key => nil}}) %> """ Then response should be '400' <% end %> <% (image.keys - ["name", "remote_user", "id"]).each do |key| %> @<%= provider %> Scenario: Update <%= provider %> image with invalid <%= key %> value: 'foo' When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image', {value: {key => "foo"}}) %> """ Then response should be '400' <% end %> <% [[], {}, "foo", nil].each do |value| %> @<%= provider %> Scenario: Update <%= provider %> image with invalid id value: '<%= value %>' When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image', {value: {"id" => value}}) %> """ Then response should be '200' And the Content-Type header should include 'application/json' And the JSON response should be an object And response should be JSON object like: """ { "message" : "Image '<%= image["id"] %>' has been updated" } """ <% end %> Scenario: Update <%= provider %> image without id When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image', {without_field: "id"}) %> """ Then response should be '200' And the Content-Type header should include 'application/json' And the JSON response should be an object And response should be JSON object like: """ { "message" : "Image '<%= image["id"] %>' has been updated" } """ @<%= provider %> Scenario: Update <%= provider %> image When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image') %> """ Then response should be '200' And the Content-Type header should include 'application/json' And the JSON response should be an object And response should be JSON object like: """ { "message" : "Image '<%= image["id"] %>' has been updated" } """ @<%= provider %> Scenario: Update <%= provider %> image with bootstrap_template null When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image', {value: {"bootstrap_template" => nil}}) %> """ Then response should be '200' And the Content-Type header should include 'application/json' And the JSON response should be an object And response should be JSON object like: """ { "message" : "Image '<%= image["id"] %>' has been updated" } """ @<%= provider %> Scenario: Update <%= provider %> image with old bootstrap_template: '<%= image["bootstrap_template"] %>' When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body """ <%= @formatter.json(provider + '/image', {value: {"bootstrap_template" => image["bootstrap_template"]}}) %> """ Then response should be '200' And the Content-Type header should include 'application/json' And the JSON response should be an object And response should be JSON object like: """ { "message" : "Image '<%= image["id"] %>' has been updated" } """ <% end #providers %>