1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/tests/xenserver/models/compute/storage_repository_tests.rb

115 lines
4 KiB
Ruby
Raw Normal View History

Shindo.tests('Fog::Compute[:xenserver] | StorageRepository model', ['xenserver']) do
storage_repositories = Fog::Compute[:xenserver].storage_repositories
storage_repository = storage_repositories.first
conn = Fog::Compute[:xenserver]
tests('The StorageRepository model should') do
tests('have the action') do
test('reload') { storage_repository.respond_to? 'reload' }
test('destroy') { storage_repository.respond_to? 'destroy' }
test('scan') { storage_repository.respond_to? 'scan' }
test('save') { storage_repository.respond_to? 'save' }
end
tests('have attributes') do
model_attribute_hash = storage_repository.attributes
attributes = [
:reference,
:name,
:uuid,
:description,
:uuid,
:allowed_operations,
:current_operations,
:content_type,
:other_config,
:__pbds,
:shared,
:type,
:tags,
:__vdis,
:physical_size,
:physical_utilisation,
:virtual_allocation,
:sm_config
]
tests("The StorageRepository model should respond to") do
attributes.each do |attribute|
test("#{attribute}") { storage_repository.respond_to? attribute }
end
end
tests("The attributes hash should have key") do
attributes.each do |attribute|
test("#{attribute}") { model_attribute_hash.has_key? attribute }
end
end
end
test('be a kind of Fog::Compute::XenServer::StorageRepository') { storage_repository.kind_of? Fog::Compute::XenServer::StorageRepository }
end
tests("A real StorageRepository should") do
tests("return a valid list of VDIs") do
storage_repository.vdis.each do |vdi|
test("where #{vdi.uuid} is a Fog::Compute::XenServer::VDI") {
vdi.is_a? Fog::Compute::XenServer::VDI
}
end
end
tests("return a valid list of PBDs") do
storage_repository.pbds.each do |pbd|
test("where #{pbd.uuid} is a Fog::Compute::XenServer::PBD") {
pbd.is_a? Fog::Compute::XenServer::PBD
}
end
end
end
tests('#save should') do
sr = nil
test('save with required attributes') do
sr = conn.storage_repositories.create :name => 'FOG TEST SR',
:host => conn.hosts.first,
:type => 'ext',
:device_config => { :device => '/dev/sdb' }
!(conn.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' }).nil?
end
# Cleanup
sr.pbds.each { |pbd| pbd.unplug }
sr.destroy
test('save with additional attributes') do
sr = conn.storage_repositories.create :name => 'FOG TEST SR',
:host => conn.hosts.first,
:type => 'ext',
:content_type => 'user',
:device_config => { :device => '/dev/sdb' },
:shared => false
!(conn.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' }).nil?
end
# Cleanup
sr.pbds.each { |pbd| pbd.unplug }
sr.destroy
test('return sane defaults') do
sr = conn.storage_repositories.create :name => 'FOG TEST SR',
:host => conn.hosts.first,
:type => 'ext',
:device_config => { :device => '/dev/sdb' }
sr.reload
(sr.content_type == 'user') and \
(sr.shared == false) and (sr.sm_config.is_a? Hash) and \
(sr.description == '')
end
end
tests('#destroy should') do
test('destroy existing FOG TEST SR') do
sr = (conn.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' })
sr.pbds.each { |pbd| pbd.unplug }
sr.destroy
(conn.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' }).nil?
end
end
end