}) }) }) Describe("Tcp Mappings", func() { var ( tcpMapping db.TcpRouteMapping ) BeforeEach(func() { tcpMapping = db.NewTcpRouteMapping("router-group-guid-001", 52000, "1.2.3.4", 60000) }) Describe("SaveTcpRouteMapping", func() { It("Creates a mapping if none exist", func() { err := etcd.SaveTcpRouteMapping(tcpMapping) Expect(err).NotTo(HaveOccurred()) 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() {
}) Context("when a route is upserted", func() { It("should return an update watch event", func() { results, _, _ := etcd.WatchRouteChanges(db.HTTP_ROUTE_BASE_KEY) err := etcd.SaveRoute(route) Expect(err).NotTo(HaveOccurred()) var event db.Event Eventually(results).Should((Receive(&event))) Expect(event).NotTo(BeNil()) Expect(event.Type).To(Equal(db.CreateEvent)) By("when tcp route is upserted") err = etcd.SaveTcpRouteMapping(tcpRouteMapping1) Expect(err).NotTo(HaveOccurred()) Consistently(results).ShouldNot(Receive()) }) }) Context("when a route is deleted", func() { It("should return an delete watch event", func() { err := etcd.SaveRoute(route) Expect(err).NotTo(HaveOccurred()) results, _, _ := etcd.WatchRouteChanges(db.HTTP_ROUTE_BASE_KEY) err = etcd.DeleteRoute(route) Expect(err).NotTo(HaveOccurred())