Shindo.tests('Fog::Rackspace::BlockStorage | volume', ['rackspace']) do

  service = Fog::Rackspace::BlockStorage.new
  options = { :display_name => "fog_#{Time.now.to_i.to_s}", :size => 100 }

  model_tests(service.volumes, options, true) do
    @instance.wait_for(timeout=1200) { ready? }

    tests('double save').raises(Fog::Rackspace::BlockStorage::IdentifierTaken) do
      @instance.save
    end

    tests('#attached?').succeeds do
      @instance.state = 'in-use'
      returns(true) { @instance.attached? }
    end

    tests('#snapshots').succeeds do
      begin
        snapshot = @instance.create_snapshot
        snapshot.wait_for(timeout=1200) { ready? }

        returns(true) { @instance.snapshots.first.id == snapshot.id }
      ensure
        snapshot.destroy if snapshot
      end
    end

    @instance.wait_for { snapshots.empty? }
  end
end
