Skip to content

Commit

Permalink
Adding integration tests for API500/600 for plan-scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
soodpr committed Apr 2, 2018
1 parent e24f3df commit 925a8ee
Show file tree
Hide file tree
Showing 6 changed files with 270 additions and 0 deletions.
73 changes: 73 additions & 0 deletions 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
30 changes: 30 additions & 0 deletions 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
32 changes: 32 additions & 0 deletions 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
73 changes: 73 additions & 0 deletions 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
30 changes: 30 additions & 0 deletions 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
32 changes: 32 additions & 0 deletions 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

0 comments on commit 925a8ee

Please sign in to comment.