Context("when starting the actual lrp in the DB succeeds", func() { BeforeEach(func() { fakeActualLRPDB.StartActualLRPReturns(&models.ActualLRPGroup{Instance: &actualLRP}, &models.ActualLRPGroup{Instance: &afterActualLRP}, nil) }) It("responds with no error", func() { Expect(responseRecorder.Code).To(Equal(http.StatusOK)) response := &models.ActualLRPLifecycleResponse{} err := response.Unmarshal(responseRecorder.Body.Bytes()) Expect(err).NotTo(HaveOccurred()) Expect(response.Error).To(BeNil()) }) It("starts the actual lrp by process guid and index", func() { Expect(fakeActualLRPDB.StartActualLRPCallCount()).To(Equal(1)) _, actualKey, actualInstanceKey, actualNetInfo := fakeActualLRPDB.StartActualLRPArgsForCall(0) Expect(*actualKey).To(Equal(key)) Expect(*actualInstanceKey).To(Equal(instanceKey)) Expect(*actualNetInfo).To(Equal(netInfo)) }) Context("when the actual lrp was created", func() { BeforeEach(func() { fakeActualLRPDB.StartActualLRPReturns(nil, &models.ActualLRPGroup{Instance: &afterActualLRP}, nil) }) It("emits a created event to the hub", func() { Eventually(actualHub.EmitCallCount).Should(Equal(1)) event := actualHub.EmitArgsForCall(0) createdEvent, ok := event.(*models.ActualLRPCreatedEvent)