BeforeEach(func() { fakeActualLRPDB.StartActualLRPReturns(nil) }) It("response 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 starting the actual lrp fails", func() { BeforeEach(func() { fakeActualLRPDB.StartActualLRPReturns(models.ErrUnknownError) }) It("responds with an error", func() { Expect(responseRecorder.Code).To(Equal(http.StatusOK)) response := &models.ActualLRPLifecycleResponse{} err := response.Unmarshal(responseRecorder.Body.Bytes())
}) Context("when starting the actual lrp in the DB succeeds", func() { var startedActualLRP models.ActualLRP BeforeEach(func() { fakeActualLRPDB.StartActualLRPReturns(&startedActualLRP, nil) }) It("responds with 200 Status OK", func() { Expect(responseRecorder.Code).To(Equal(http.StatusOK)) }) It("starts the actual lrp by process guid and index", func() { Expect(fakeActualLRPDB.StartActualLRPCallCount()).To(Equal(1)) _, actualRequest := fakeActualLRPDB.StartActualLRPArgsForCall(0) Expect(actualRequest).To(Equal(requestBody)) }) It("returns the started actual lrp", func() { response := &models.ActualLRP{} err := response.Unmarshal(responseRecorder.Body.Bytes()) Expect(err).NotTo(HaveOccurred()) Expect(*response).To(Equal(startedActualLRP)) }) }) Context("when the request is invalid", func() { BeforeEach(func() { requestBody = &models.StartActualLRPRequest{}