for i := 0; i < 5; i++ { createdActualLRPGroups = append(createdActualLRPGroups, &models.ActualLRPGroup{Instance: model_helpers.NewValidActualLRP("some-guid", int32(i))}) } fakeDesiredLRPDB.DesireLRPReturns(nil) fakeActualLRPDB.CreateUnclaimedActualLRPStub = func(_ lager.Logger, key *models.ActualLRPKey) (*models.ActualLRPGroup, error) { if int(key.Index) > len(createdActualLRPGroups)-1 { return nil, errors.New("boom") } return createdActualLRPGroups[int(key.Index)], nil } fakeDesiredLRPDB.DesiredLRPByProcessGuidReturns(desiredLRP, nil) }) It("creates desired lrp", func() { Expect(fakeDesiredLRPDB.DesireLRPCallCount()).To(Equal(1)) _, actualDesiredLRP := fakeDesiredLRPDB.DesireLRPArgsForCall(0) Expect(actualDesiredLRP).To(Equal(desiredLRP)) Expect(responseRecorder.Code).To(Equal(http.StatusOK)) response := models.DesiredLRPLifecycleResponse{} err := response.Unmarshal(responseRecorder.Body.Bytes()) Expect(err).NotTo(HaveOccurred()) Expect(response.Error).To(BeNil()) }) It("emits a create event to the hub", func() { Eventually(desiredHub.EmitCallCount).Should(Equal(1)) event := desiredHub.EmitArgsForCall(0) createEvent, ok := event.(*models.DesiredLRPCreatedEvent) Expect(ok).To(BeTrue())