Shindo.tests('Fog::BlockStorage[:hp] | volume requests', ['hp', 'block_storage']) do

  @volume_format = {
    'status'             => String,
    'displayDescription' => String,
    'availabilityZone'   => String,
    'displayName'        => String,
    'attachments'        => [Fog::Nullable::Hash],
    'volumeType'         => Fog::Nullable::String,
    'snapshotId'         => String,
    'size'               => Integer,
    'id'                 => Integer,
    'createdAt'          => String,
    'metadata'           => Fog::Nullable::Hash
  }

  tests('success') do

    @volume_id = nil
    @volume_name = "fogvolumetests"
    @volume_desc = @volume_name + " desc"

    tests("#create_volume(#{@volume_name}, #{@volume_desc}, 1)").formats(@volume_format) do
      data = Fog::BlockStorage[:hp].create_volume(@volume_name, @volume_desc, 1).body['volume']
      @volume_id = data['id']
      data
    end

    #Fog::BlockStorage[:hp].volumes.get(@volume_id).wait_for { ready? }
    #
    tests("#get_volume_details(#{@volume_id})").formats(@volume_format) do
      Fog::BlockStorage[:hp].get_volume_details(@volume_id).body['volume']
    end

    tests('#list_volumes').formats({'volumes' => [@volume_format]}) do
      Fog::BlockStorage[:hp].list_volumes.body
    end

    #Fog::BlockStorage[:hp].volumes.get(@volume_id).wait_for { ready? }
    #
    tests("#delete_volume(#{@volume_id})").succeeds do
      Fog::BlockStorage[:hp].delete_volume(@volume_id)
    end

    # Add attach_volume and detach_volume tests

  end

  tests('failure') do

    tests('#delete_volume(0)').raises(Fog::BlockStorage::HP::NotFound) do
      Fog::BlockStorage[:hp].delete_volume(0)
    end

    tests('#get_volume_details(0)').raises(Fog::BlockStorage::HP::NotFound) do
      Fog::BlockStorage[:hp].get_volume_details(0)
    end

    # Add attach_volume and detach_volume tests
  end

end

Add shindo tests for requests methods for block storage.
Add shindo tests for requests methods for block storage.
