BeforeEach(func() { fakeActualLRPDB.ClaimActualLRPReturns(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("claims the actual lrp by process guid and index", func() { Expect(fakeActualLRPDB.ClaimActualLRPCallCount()).To(Equal(1)) _, actualProcessGuid, actualIndex, actualInstanceKey := fakeActualLRPDB.ClaimActualLRPArgsForCall(0) Expect(actualProcessGuid).To(Equal(processGuid)) Expect(actualIndex).To(BeEquivalentTo(index)) Expect(*actualInstanceKey).To(Equal(instanceKey)) }) }) Context("when claiming the actual lrp fails", func() { BeforeEach(func() { fakeActualLRPDB.ClaimActualLRPReturns(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 claiming the actual lrp in the DB succeeds", func() { var claimedActualLRP models.ActualLRP BeforeEach(func() { claimedActualLRP = actualLRP claimedActualLRP.ActualLRPInstanceKey = instanceKey fakeActualLRPDB.ClaimActualLRPReturns(&claimedActualLRP, nil) }) It("responds with 200 Status OK", func() { Expect(responseRecorder.Code).To(Equal(http.StatusOK)) }) It("claims the actual lrp by process guid and index", func() { Expect(fakeActualLRPDB.ClaimActualLRPCallCount()).To(Equal(1)) _, request := fakeActualLRPDB.ClaimActualLRPArgsForCall(0) Expect(request.ProcessGuid).To(Equal(processGuid)) Expect(request.Index).To(BeEquivalentTo(index)) Expect(*request.ActualLrpInstanceKey).To(Equal(instanceKey)) }) It("returns the claimed actual lrp", func() { response := &models.ActualLRP{} err := response.Unmarshal(responseRecorder.Body.Bytes()) Expect(err).NotTo(HaveOccurred()) Expect(*response).To(Equal(claimedActualLRP)) }) }) Context("when the request is invalid", func() {