| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  | @image @project | 
					
						
							|  |  |  | Feature: Update images | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |   <% 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 | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image', {value: {"provider" => oprovider}}) %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     Then response should be '400' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <% end #other providers%> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <% (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 | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image', {value: {key => invalid_value}}) %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     Then response should be '400' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <% end #invalid values%> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <% 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 | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image', {value: {key => nil}}) %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     Then response should be '400' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <% end %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <% (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 | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image', {value: {key => "foo"}}) %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     Then response should be '400' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <% end %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |   <% [[], {}, "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 | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image', {value: {"id" => value}}) %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     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: | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       "message" : "Image '<%= image["id"] %>' has been updated" | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     } | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |   <% end %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |   Scenario: Update <%= provider %> image without id | 
					
						
							|  |  |  |     When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image', {without_field: "id"}) %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     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: | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       "message" : "Image '<%= image["id"] %>' has been updated" | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     } | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |   @<%= provider %> | 
					
						
							|  |  |  |   Scenario: Update <%= provider %> image | 
					
						
							|  |  |  |     When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image') %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     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: | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       "message" : "Image '<%= image["id"] %>' has been updated" | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     } | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |   @<%= provider %> | 
					
						
							|  |  |  |   Scenario: Update <%= provider %> image with bootstrap_template null | 
					
						
							|  |  |  |     When I send PUT '/v2.0/image/<%= image["id"] %>' query with JSON body | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image', {value: {"bootstrap_template" => nil}}) %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     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: | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       "message" : "Image '<%= image["id"] %>' has been updated" | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     } | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |   @<%= 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 | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |     <%= @formatter.json(provider + '/image', {value: {"bootstrap_template" => image["bootstrap_template"]}}) %> | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     """ | 
					
						
							|  |  |  |     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: | 
					
						
							|  |  |  |     """ | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       "message" : "Image '<%= image["id"] %>' has been updated" | 
					
						
							| 
									
										
										
										
											2014-07-15 11:34:42 +04:00
										 |  |  |     } | 
					
						
							|  |  |  |     """ | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |   <% end #providers %> | 
					
						
							|  |  |  | 
 |