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() {