vmCloudProp = bslcvm.VMCloudProperties{ StartCpus: 2, MaxMemory: 2048, Datacenter: sldatatypes.Datacenter{Name: "fake-datacenter"}, SshKeys: []sldatatypes.SshKey{ sldatatypes.SshKey{Id: 1234}, }, } networks = Networks{"fake-net-name": Network{IP: "fake-ip"}} diskLocality = []DiskCID{1234} env = Environment{"fake-env-key": "fake-env-value"} }) It("tries to find stemcell with given stemcell cid", func() { stemcellFinder.FindFound = true vmCreator.CreateVM = fakevm.NewFakeVM(1234) _, err := action.Run("fake-agent-id", stemcellCID, vmCloudProp, networks, diskLocality, env) Expect(err).ToNot(HaveOccurred()) }) Context("when stemcell is found with given stemcell cid", func() { var ( stemcell *fakestem.FakeStemcell ) BeforeEach(func() { stemcell = fakestem.NewFakeStemcell(1234, "fake-stemcell-id", fakestem.FakeStemcellKind) stemcellFinder.FindStemcell = stemcell stemcellFinder.FindFound = true })
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 )
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) 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)
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,