key := fmt.Sprintf("%s/%s/%d/%s:%d", db.TCP_MAPPING_BASE_KEY, "router-group-guid-001", 52000, "1.2.3.4", 60000) node, err := etcdClient.Get(key) Expect(err).NotTo(HaveOccurred()) Expect(node.Value).To(MatchJSON(`{ "route": {"router_group_guid":"router-group-guid-001", "external_port":52000}, "host_ip": "1.2.3.4", "host_port": 60000 }`)) }) }) Describe("ReadTcpRouteMappings", func() { It("Returns a empty list of routes", func() { tcpMappings, err := etcd.ReadTcpRouteMappings() Expect(err).NotTo(HaveOccurred()) Expect(tcpMappings).To(Equal([]db.TcpRouteMapping{})) }) Context("when only one entry is present", func() { BeforeEach(func() { err := etcd.SaveTcpRouteMapping(tcpMapping) Expect(err).NotTo(HaveOccurred()) }) It("Returns a list with one route", func() { tcpMappings, err := etcd.ReadTcpRouteMappings() Expect(err).NotTo(HaveOccurred()) Expect(tcpMappings).To(ContainElement(tcpMapping)) })
Expect(fakeKeysAPI.GetCallCount()).To(Equal(2)) Expect(fakeKeysAPI.SetCallCount()).To(Equal(1)) }) }) }) }) }) }) Describe("ReadTcpRouteMappings", func() { var tcpMappings []models.TcpRouteMapping var err error JustBeforeEach(func() { tcpMappings, err = fakeEtcd.ReadTcpRouteMappings() Expect(err).ToNot(HaveOccurred()) }) Context("when the tcp mapping key is missing", func() { BeforeEach(func() { fakeKeysAPI.GetReturns(nil, errors.New("key missing error")) }) It("gives empty list of tcp mapping", func() { Expect(tcpMappings).To(HaveLen(0)) }) }) Context("when there are no tcp mapping", func() { BeforeEach(func() { fakeKeysAPI.GetReturns(&client.Response{Node: &client.Node{}}, nil)