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 diskFinder.FindDisk = fakedisk.NewFakeDisk(1234) _, err := action.Run(1234, 1234) Expect(err).ToNot(HaveOccurred()) Expect(vmFinder.FindID).To(Equal(1234)) }) Context("when VM is found with given VM cid", func() { var ( vm *fakevm.FakeVM )
) 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) vmFinder.FindVM = vm vmFinder.FindFound = true }) It("deletes vm", func() { _, err := action.Run(1234) Expect(err).ToNot(HaveOccurred()) Expect(vm.DeleteCalled).To(BeTrue()) }) It("returns error if deleting vm fails", func() { vm.DeleteErr = errors.New("fake-delete-err") _, err := action.Run(1234) Expect(err).To(HaveOccurred())
Describe("#Run", func() { Context("when VM could NOT be found", func() { BeforeEach(func() { vmFinder.FindFound = false }) It("errors with message that VM could not be found", func() { _, err := action.Run(vmID, metadata) Expect(err).To(HaveOccurred()) }) }) Context("when VM could be found", func() { BeforeEach(func() { vmFinder.FindFound = true vmFinder.FindVM = fakevm.NewFakeVM(int(vmID)) }) Context("when metadata is not valid", func() { Context("when metadata is empty", func() { It("does not do anything and returns no error", func() { _, err := action.Run(vmID, bslcvm.VMMetadata{}) Expect(err).ToNot(HaveOccurred()) }) }) Context("when metadata is not a hash of string/string", func() { BeforeEach(func() { metadataBytes := []byte(`{ "tag1": 0, "tag2": null,