// since we're just passing this from State.ToApplySpec() to VM.Apply(), it doesn't need to be filled out applySpec = bias.ApplySpec{ Deployment: "fake-deployment-name", } mockStateBuilderFactory.EXPECT().NewBuilder(mockBlobstore, mockAgentClient).Return(mockStateBuilder).AnyTimes() mockStateBuilder.EXPECT().Build(jobName, jobIndex, deploymentManifest, fakeStage).Return(mockState, nil).AnyTimes() mockState.EXPECT().ToApplySpec().Return(applySpec).AnyTimes() }) Context("when a previous instance exists", func() { var fakeExistingVM *fakebivm.FakeVM BeforeEach(func() { fakeExistingVM = fakebivm.NewFakeVM("existing-vm-cid") fakeVMManager.SetFindCurrentBehavior(fakeExistingVM, true, nil) fakeExistingVM.AgentClientReturn = mockAgentClient }) It("deletes existing vm", func() { _, err := deployer.Deploy(cloud, deploymentManifest, cloudStemcell, registryConfig, fakeVMManager, mockBlobstore, fakeStage) Expect(err).NotTo(HaveOccurred()) Expect(fakeExistingVM.DeleteCalled).To(Equal(1)) Expect(fakeStage.PerformCalls[:3]).To(Equal([]*fakebiui.PerformCall{ {Name: "Waiting for the agent on VM 'existing-vm-cid'"}, {Name: "Stopping jobs on instance 'unknown/0'"}, {Name: "Deleting VM 'existing-vm-cid'"}, })) })