Sha256: d36ddc268e70f84c0064558288999a423d4a55367b84f92d9a08d644ae5476a5

Contents?: true

Size: 1.72 KB

Versions: 18

Compression:

Stored size: 1.72 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'support/sharedcontext'
require 'support/libvirt_context'
require 'vagrant-libvirt/action/halt_domain'

describe VagrantPlugins::ProviderLibvirt::Action::HaltDomain do
  subject { described_class.new(app, env) }

  include_context 'unit'
  include_context 'libvirt'

  let(:driver) { double('driver') }
  let(:libvirt_domain) { double('libvirt_domain') }
  let(:servers) { double('servers') }

  before do
    allow(machine.provider).to receive('driver').and_return(driver)
    allow(driver).to receive(:created?).and_return(true)
    allow(driver).to receive(:connection).and_return(connection)
  end

  describe '#call' do
    before do
      allow(connection).to receive(:servers).and_return(servers)
      allow(servers).to receive(:get).and_return(domain)
      allow(ui).to receive(:info).with('Halting domain...')
    end

    context "when state is not running" do
      before { expect(driver).to receive(:state).at_least(1).
          and_return(:not_created) }

      it "should not poweroff when state is not running" do
        expect(domain).not_to receive(:poweroff)
        subject.call(env)
      end

      it "should not print halting message" do
        expect(ui).not_to receive(:info)
        subject.call(env)
      end
    end

    context "when state is running" do
      before do
        expect(driver).to receive(:state).and_return(:running)
      end

      it "should poweroff" do
        expect(domain).to receive(:poweroff)
        subject.call(env)
      end

      it "should print halting message" do
        allow(domain).to receive(:poweroff)
        expect(ui).to receive(:info).with('Halting domain...')
        subject.call(env)
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
vagrant-libvirt-0.10.8 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.10.7 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.10.6 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.10.5 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.10.4 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.10.3 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.10.2 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.10.1 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.10.0 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.9.0 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.8.2 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.8.1 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.8.0 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.7.0 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.6.3 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.6.2 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.6.1 spec/unit/action/halt_domain_spec.rb
vagrant-libvirt-0.6.0 spec/unit/action/halt_domain_spec.rb