}, } tcpMapping = models.NewTcpRouteMapping(DefaultRouterGroupGuid, 52000, "1.2.3.4", 60000, 60) }) Context("when valid tcp mapping is passed", func() { It("does not return error", func() { err := validator.ValidateCreateTcpRouteMapping([]models.TcpRouteMapping{tcpMapping}, routerGroups, 120) Expect(err).To(BeNil()) }) }) Context("when invalid tcp route mappings are passed", func() { It("blows up when a backend port is zero", func() { tcpMapping.HostPort = 0 err := validator.ValidateCreateTcpRouteMapping([]models.TcpRouteMapping{tcpMapping}, routerGroups, 120) Expect(err).ToNot(BeNil()) Expect(err.Type).To(Equal(routing_api.TcpRouteMappingInvalidError)) Expect(err.Error()).To(ContainSubstring("Each tcp mapping requires a positive backend port")) }) It("blows up when a external port is zero", func() { tcpMapping.TcpRoute.ExternalPort = 0 err := validator.ValidateCreateTcpRouteMapping([]models.TcpRouteMapping{tcpMapping}, routerGroups, 120) Expect(err).ToNot(BeNil()) Expect(err.Type).To(Equal(routing_api.TcpRouteMappingInvalidError)) Expect(err.Error()).To(ContainSubstring("Each tcp mapping requires a positive external port")) }) It("blows up when backend ip empty", func() {