}) It("it creates the correct container key", func() { expectedInstanceKey := models.ActualLRPInstanceKey{ InstanceGuid: "some-instance-guid", CellId: cellID, } Expect(*lrpInstanceKey).To(Equal(expectedInstanceKey)) }) }) Context("when the container is invalid", func() { Context("when the container has no tags", func() { BeforeEach(func() { container.Tags = nil }) It("reports an error that the tags are missing", func() { Expect(instanceKeyConversionErr).To(MatchError(rep.ErrContainerMissingTags)) }) }) Context("when the container is missing the instance guid tag ", func() { BeforeEach(func() { delete(container.Tags, rep.InstanceGuidTag) }) It("returns an invalid instance-guid error", func() { Expect(instanceKeyConversionErr.Error()).To(ContainSubstring("instance_guid")) })
guid = allocNewContainer(container) }) Context("without tags", func() { It("includes the allocated container", func() { containers, err := executorClient.ListContainers(nil) Expect(err).NotTo(HaveOccurred()) Expect(containers).To(HaveLen(1)) Expect(containers[0].Guid).To(Equal(guid)) }) }) Context("with tags", func() { BeforeEach(func() { container.Tags = executor.Tags{ "some-tag": "some-value", } }) Describe("listing by matching tags", func() { It("includes the allocated container", func() { containers, err := executorClient.ListContainers(executor.Tags{ "some-tag": "some-value", }) Expect(err).NotTo(HaveOccurred()) Expect(containers).To(HaveLen(1)) Expect(containers[0].Guid).To(Equal(guid)) }) It("filters by and-ing the requested tags", func() { Expect(executorClient.ListContainers(executor.Tags{