}) }) Context("when the ProcessGuid is blank", func() { BeforeEach(func() { actualLRPKey.ProcessGuid = "" }) It("returns a validation error", func() { Expect(actualLRPKey.Validate()).To(ConsistOf(models.ErrInvalidField{"process_guid"})) }) }) Context("when the Domain is blank", func() { BeforeEach(func() { actualLRPKey.Domain = "" }) It("returns a validation error", func() { Expect(actualLRPKey.Validate()).To(ConsistOf(models.ErrInvalidField{"domain"})) }) }) Context("when the Index is negative", func() { BeforeEach(func() { actualLRPKey.Index = -1 }) It("returns a validation error", func() { Expect(actualLRPKey.Validate()).To(ConsistOf(models.ErrInvalidField{"index"})) })
}) It("should clear placement error", func() { Expect(startErr).NotTo(HaveOccurred()) Expect(startedActualLRP.PlacementError).To(BeEmpty()) lrp, err := etcdDB.ActualLRPGroupByProcessGuidAndIndex(logger, processGuid, index) Expect(err).NotTo(HaveOccurred()) Expect(lrp.Instance.PlacementError).To(BeEmpty()) }) }) }) Context("when the domain differs", func() { BeforeEach(func() { lrpKey = actualLRP.ActualLRPKey lrpKey.Domain = "some-other-domain" instanceKey = models.NewActualLRPInstanceKey("some-guid", cellID) netInfo = models.NewActualLRPNetInfo("1.2.3.4", models.NewPortMapping(5678, 1234)) }) It("returns an error", func() { Expect(startErr).To(Equal(models.ErrActualLRPCannotBeStarted)) }) It("does not modify the persisted actual LRP", func() { lrpGroupInBBS, err := etcdDB.ActualLRPGroupByProcessGuidAndIndex(logger, processGuid, index) Expect(err).NotTo(HaveOccurred()) Expect(lrpGroupInBBS.Instance.State).To(Equal(models.ActualLRPStateUnclaimed)) }) })