Permalink
Browse files

[xenserver|tests] add unplug_pbd request tests

  • Loading branch information...
1 parent 31f7883 commit 6d80fe5c707353f2bf7f1311300c3f3e38eea4de @rubiojr committed Jan 4, 2013
Showing with 48 additions and 0 deletions.
  1. +48 −0 tests/xenserver/requests/compute/unplug_pbd_tests.rb
@@ -0,0 +1,48 @@
+#
+# @rubiojr
+#
+# Testing this requires a very specific setup:
+#
+# I use VirtualBox to virtualize XenServer/XCP and create the XenServer VM using
+# two virtual disks under the same SATA controller. One of the virtual disks
+# will be /dev/sdb, used to perform the tests.
+#
+
+Shindo.tests('Fog::Compute[:xenserver] | unplug_pbd request', ['xenserver']) do
+
+ compute = Fog::Compute[:xenserver]
+ # Creating a new SR automatically plugs the PBD
+ # We need the SR available for this to work, so create it first
+ ref = compute.create_sr compute.hosts.first.reference,
+ 'FOG TEST SR',
+ 'ext',
+ '',
+ { :device => '/dev/sdb' },
+ '0',
+ 'user',
+ false,
+ {}
+
+ tests('#unplug_pbd') do
+ test('unplugged') do
+ sr = compute.storage_repositories.find { |sr| sr.name == 'FOG TEST SR' }
+ pbd = sr.pbds.first
+ compute.unplug_pbd pbd.reference
+ pbd.reload
+ pbd.currently_attached == false
+ end
+ end
+
+ tests('The expected options') do
+ raises(ArgumentError, 'raises ArgumentError when arguments missing') \
+ { compute.unplug_pbd }
+ end
+
+ # Clean-up
+ compute.storage_repositories.each do |sr|
+ next unless sr.name == 'FOG TEST SR'
+ sr.pbds.each { |pbd| pbd.unplug }
+ sr.destroy
+ end
+
+end

0 comments on commit 6d80fe5

Please sign in to comment.