package action_test

import (
	"errors"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"

	. "github.com/maximilien/bosh-softlayer-cpi/action"

	fakevm "github.com/maximilien/bosh-softlayer-cpi/softlayer/vm/fakes"
)

var _ = Describe("DeleteVM", func() {
	var (
		vmFinder *fakevm.FakeFinder
		action   DeleteVM
	)

	BeforeEach(func() {
		vmFinder = &fakevm.FakeFinder{}
		action = NewDeleteVM(vmFinder)
	})

	Describe("Run", func() {
		Context("when vm is found with given vm cid", func() {
			var (
				vm *fakevm.FakeVM
			)

			BeforeEach(func() {
				vm = fakevm.NewFakeVM(1234)
import (
	"errors"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"

	. "github.com/maximilien/bosh-softlayer-cpi/action"

	fakedisk "github.com/maximilien/bosh-softlayer-cpi/softlayer/disk/fakes"
	fakevm "github.com/maximilien/bosh-softlayer-cpi/softlayer/vm/fakes"
)

var _ = Describe("AttachDisk", func() {
	var (
		vmFinder   *fakevm.FakeFinder
		diskFinder *fakedisk.FakeFinder
		action     AttachDisk
	)

	BeforeEach(func() {
		vmFinder = &fakevm.FakeFinder{}
		diskFinder = &fakedisk.FakeFinder{}
		action = NewAttachDisk(vmFinder, diskFinder)
	})

	Describe("Run", func() {
		It("tries to find VM with given VM cid", func() {
			vmFinder.FindFound = true
			vmFinder.FindVM = fakevm.NewFakeVM(1234)

			diskFinder.FindFound = true
package action_test

import (
	"errors"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"

	. "github.com/maximilien/bosh-softlayer-cpi/action"

	fakevm "github.com/maximilien/bosh-softlayer-cpi/softlayer/vm/fakes"
)

var _ = Describe("HasVM", func() {
	var (
		vmFinder *fakevm.FakeFinder
		action   HasVM
	)

	BeforeEach(func() {
		vmFinder = &fakevm.FakeFinder{}
		action = NewHasVM(vmFinder)
	})

	Describe("Run", func() {
		It("tries to find VM with given VM CID", func() {
			_, err := action.Run(1234)
			Expect(err).ToNot(HaveOccurred())

			Expect(vmFinder.FindID).To(Equal(1234))
		})
import (
	"encoding/json"

	. "github.com/maximilien/bosh-softlayer-cpi/action"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"

	action "github.com/maximilien/bosh-softlayer-cpi/action"
	bslcvm "github.com/maximilien/bosh-softlayer-cpi/softlayer/vm"
	fakevm "github.com/maximilien/bosh-softlayer-cpi/softlayer/vm/fakes"
)

var _ = Describe("SetVMMetadata", func() {
	var (
		vmID     action.VMCID
		vmFinder *fakevm.FakeFinder
		action   SetVMMetadata
		metadata bslcvm.VMMetadata
	)

	BeforeEach(func() {
		vmID = 1234
		vmFinder = &fakevm.FakeFinder{}
		action = NewSetVMMetadata(vmFinder)

		metadataBytes := []byte(`{
		  "tag1": "dea",
		  "tag2": "test-env",
		  "tag3": "blue"
		}`)

		metadata = bslcvm.VMMetadata{}