From 925a8eed3868957c50cae9c7e87de466df712b6d Mon Sep 17 00:00:00 2001 From: soodpr Date: Mon, 2 Apr 2018 16:03:19 -0400 Subject: [PATCH] Adding integration tests for API500/600 for plan-scripts --- .../api500/plan_script/create_spec.rb | 73 +++++++++++++++++++ .../api500/plan_script/delete_spec.rb | 30 ++++++++ .../api500/plan_script/update_spec.rb | 32 ++++++++ .../api600/plan_script/create_spec.rb | 73 +++++++++++++++++++ .../api600/plan_script/delete_spec.rb | 30 ++++++++ .../api600/plan_script/update_spec.rb | 32 ++++++++ 6 files changed, 270 insertions(+) create mode 100644 spec/integration/image-streamer/api500/plan_script/create_spec.rb create mode 100644 spec/integration/image-streamer/api500/plan_script/delete_spec.rb create mode 100644 spec/integration/image-streamer/api500/plan_script/update_spec.rb create mode 100644 spec/integration/image-streamer/api600/plan_script/create_spec.rb create mode 100644 spec/integration/image-streamer/api600/plan_script/delete_spec.rb create mode 100644 spec/integration/image-streamer/api600/plan_script/update_spec.rb diff --git a/spec/integration/image-streamer/api500/plan_script/create_spec.rb b/spec/integration/image-streamer/api500/plan_script/create_spec.rb new file mode 100644 index 000000000..9c9987b12 --- /dev/null +++ b/spec/integration/image-streamer/api500/plan_script/create_spec.rb @@ -0,0 +1,73 @@ +# (C) Copyright 2018 Hewlett Packard Enterprise Development LP +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# You may not use this file except in compliance with the License. +# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +require 'spec_helper' + +klass = OneviewSDK::ImageStreamer::API500::PlanScript +RSpec.describe klass, integration_i3s: true, type: CREATE, sequence: i3s_seq(klass) do + include_context 'integration i3s api500 context' + + describe '#create' do + it 'creates a plan script' do + options = { + description: 'Description of this plan script', + name: PLAN_SCRIPT1_NAME, + hpProvided: false, + planType: 'deploy', + content: 'f' + } + + item = klass.new($client_i3s_500, options) + expect { item.create! }.not_to raise_error + item.retrieve! + expect(item['uri']).to be + expect(item['name']).to eq(options[:name]) + expect(item['description']).to eq(options[:description]) + expect(item['hpProvided']).to eq(options[:hpProvided]) + expect(item['planType']).to eq(options[:planType]) + expect(item['content']).to eq(options[:content]) + end + + it 'creates a plan script with custom attributes' do + options = { + description: 'Description of this plan script', + name: PLAN_SCRIPT2_NAME, + hpProvided: false, + planType: 'deploy', + content: 'esxcli system hostname set --domain "@DomainName@"' + } + + item = klass.new($client_i3s_500, options) + expect { item.create! }.not_to raise_error + item.retrieve! + expect(item['uri']).to be + expect(item['name']).to eq(options[:name]) + expect(item['description']).to eq(options[:description]) + expect(item['hpProvided']).to eq(options[:hpProvided]) + expect(item['planType']).to eq(options[:planType]) + expect(item['content']).to eq(options[:content]) + expect(item['customAttributes']).to eq('[{"name":"DomainName","value":""}]') + end + end + + describe '#retrieve_differences' do + it 'raises exception when uri is empty' do + item = klass.new($client_i3s_500) + expect { item.retrieve_differences }.to raise_error(OneviewSDK::IncompleteResource, /Please set uri attribute/) + end + + it 'retrieves the modified contents' do + item = klass.find_by($client_i3s_500, name: PLAN_SCRIPT1_NAME).first + expect(item['uri']).to be + expect { item.retrieve_differences }.not_to raise_error + end + end +end diff --git a/spec/integration/image-streamer/api500/plan_script/delete_spec.rb b/spec/integration/image-streamer/api500/plan_script/delete_spec.rb new file mode 100644 index 000000000..917f4bf96 --- /dev/null +++ b/spec/integration/image-streamer/api500/plan_script/delete_spec.rb @@ -0,0 +1,30 @@ +# (C) Copyright 2018 Hewlett Packard Enterprise Development LP +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# You may not use this file except in compliance with the License. +# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +require 'spec_helper' + +klass = OneviewSDK::ImageStreamer::API500::PlanScript +RSpec.describe klass, integration_i3s: true, type: DELETE do + include_context 'integration i3s api500 context' + + describe '#delete' do + it 'removes all plan scripts' do + item = klass.find_by($client_i3s_500, name: PLAN_SCRIPT1_NAME).first + expect(item).to be + item2 = klass.find_by($client_i3s_500, name: PLAN_SCRIPT2_NAME).first + expect(item2).to be + expect { item.delete }.not_to raise_error + expect(item.retrieve!).to eq(false) + expect { item2.delete }.not_to raise_error + expect(item2.retrieve!).to eq(false) + end + end +end diff --git a/spec/integration/image-streamer/api500/plan_script/update_spec.rb b/spec/integration/image-streamer/api500/plan_script/update_spec.rb new file mode 100644 index 000000000..96a0f8a60 --- /dev/null +++ b/spec/integration/image-streamer/api500/plan_script/update_spec.rb @@ -0,0 +1,32 @@ +# (C) Copyright 2018 Hewlett Packard Enterprise Development LP +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# You may not use this file except in compliance with the License. +# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +require 'spec_helper' + +klass = OneviewSDK::ImageStreamer::API500::PlanScript +RSpec.describe klass, integration_i3s: true, type: UPDATE do + include_context 'integration i3s api500 context' + + describe '#update' do + it 'updates the name of the plan script' do + item = klass.find_by($client_i3s_500, name: PLAN_SCRIPT1_NAME).first + expect(item['uri']).to be + item['name'] = PLAN_SCRIPT1_NAME_UPDATE + expect { item.update }.not_to raise_error + item.retrieve! + expect(item['name']).to eq(PLAN_SCRIPT1_NAME_UPDATE) + item['name'] = PLAN_SCRIPT1_NAME + expect { item.update }.not_to raise_error + item.retrieve! + expect(item['name']).to eq(PLAN_SCRIPT1_NAME) + end + end +end diff --git a/spec/integration/image-streamer/api600/plan_script/create_spec.rb b/spec/integration/image-streamer/api600/plan_script/create_spec.rb new file mode 100644 index 000000000..2d97aa713 --- /dev/null +++ b/spec/integration/image-streamer/api600/plan_script/create_spec.rb @@ -0,0 +1,73 @@ +# (C) Copyright 2018 Hewlett Packard Enterprise Development LP +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# You may not use this file except in compliance with the License. +# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +require 'spec_helper' + +klass = OneviewSDK::ImageStreamer::API600::PlanScript +RSpec.describe klass, integration_i3s: true, type: CREATE, sequence: i3s_seq(klass) do + include_context 'integration i3s api600 context' + + describe '#create' do + it 'creates a plan script' do + options = { + description: 'Description of this plan script', + name: PLAN_SCRIPT1_NAME, + hpProvided: false, + planType: 'deploy', + content: 'f' + } + + item = klass.new($client_i3s_600, options) + expect { item.create! }.not_to raise_error + item.retrieve! + expect(item['uri']).to be + expect(item['name']).to eq(options[:name]) + expect(item['description']).to eq(options[:description]) + expect(item['hpProvided']).to eq(options[:hpProvided]) + expect(item['planType']).to eq(options[:planType]) + expect(item['content']).to eq(options[:content]) + end + + it 'creates a plan script with custom attributes' do + options = { + description: 'Description of this plan script', + name: PLAN_SCRIPT2_NAME, + hpProvided: false, + planType: 'deploy', + content: 'esxcli system hostname set --domain "@DomainName@"' + } + + item = klass.new($client_i3s_600, options) + expect { item.create! }.not_to raise_error + item.retrieve! + expect(item['uri']).to be + expect(item['name']).to eq(options[:name]) + expect(item['description']).to eq(options[:description]) + expect(item['hpProvided']).to eq(options[:hpProvided]) + expect(item['planType']).to eq(options[:planType]) + expect(item['content']).to eq(options[:content]) + expect(item['customAttributes']).to eq('[{"name":"DomainName","value":""}]') + end + end + + describe '#retrieve_differences' do + it 'raises exception when uri is empty' do + item = klass.new($client_i3s_600) + expect { item.retrieve_differences }.to raise_error(OneviewSDK::IncompleteResource, /Please set uri attribute/) + end + + it 'retrieves the modified contents' do + item = klass.find_by($client_i3s_600, name: PLAN_SCRIPT1_NAME).first + expect(item['uri']).to be + expect { item.retrieve_differences }.not_to raise_error + end + end +end diff --git a/spec/integration/image-streamer/api600/plan_script/delete_spec.rb b/spec/integration/image-streamer/api600/plan_script/delete_spec.rb new file mode 100644 index 000000000..386b3d53f --- /dev/null +++ b/spec/integration/image-streamer/api600/plan_script/delete_spec.rb @@ -0,0 +1,30 @@ +# (C) Copyright 2018 Hewlett Packard Enterprise Development LP +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# You may not use this file except in compliance with the License. +# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +require 'spec_helper' + +klass = OneviewSDK::ImageStreamer::API600::PlanScript +RSpec.describe klass, integration_i3s: true, type: DELETE do + include_context 'integration i3s api600 context' + + describe '#delete' do + it 'removes all plan scripts' do + item = klass.find_by($client_i3s_600, name: PLAN_SCRIPT1_NAME).first + expect(item).to be + item2 = klass.find_by($client_i3s_600, name: PLAN_SCRIPT2_NAME).first + expect(item2).to be + expect { item.delete }.not_to raise_error + expect(item.retrieve!).to eq(false) + expect { item2.delete }.not_to raise_error + expect(item2.retrieve!).to eq(false) + end + end +end diff --git a/spec/integration/image-streamer/api600/plan_script/update_spec.rb b/spec/integration/image-streamer/api600/plan_script/update_spec.rb new file mode 100644 index 000000000..d56b9215a --- /dev/null +++ b/spec/integration/image-streamer/api600/plan_script/update_spec.rb @@ -0,0 +1,32 @@ +# (C) Copyright 2018 Hewlett Packard Enterprise Development LP +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# You may not use this file except in compliance with the License. +# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +require 'spec_helper' + +klass = OneviewSDK::ImageStreamer::API600::PlanScript +RSpec.describe klass, integration_i3s: true, type: UPDATE do + include_context 'integration i3s api600 context' + + describe '#update' do + it 'updates the name of the plan script' do + item = klass.find_by($client_i3s_600, name: PLAN_SCRIPT1_NAME).first + expect(item['uri']).to be + item['name'] = PLAN_SCRIPT1_NAME_UPDATE + expect { item.update }.not_to raise_error + item.retrieve! + expect(item['name']).to eq(PLAN_SCRIPT1_NAME_UPDATE) + item['name'] = PLAN_SCRIPT1_NAME + expect { item.update }.not_to raise_error + item.retrieve! + expect(item['name']).to eq(PLAN_SCRIPT1_NAME) + end + end +end