}

				Consistently(appRoutesFromRoutingInfo).Should(Panic(), "invalid json.RawMessage ought to panic")
			})
		})
	})

	Describe("HostnamesByPort", func() {
		It("returns map of ports to slice of hostnames", func() {
			expectedHostnamesByPort := map[uint16][]string{
				11111: []string{"foo1.example.com", "bar1.examaple.com"},
				22222: []string{"foo2.example.com", "bar2.examaple.com"},
				33333: []string{"foo3.example.com", "bar3.examaple.com"},
			}

			Expect(appRoutes.HostnamesByPort()).To(Equal(expectedHostnamesByPort))
		})
	})

	Describe("Routes", func() {

		var (
			routes               route_helpers.Routes
			tcpRoute1, tcpRoute2 route_helpers.TcpRoute
			diegoSSHRoute        *route_helpers.DiegoSSHRoute
		)

		BeforeEach(func() {
			tcpRoute1 = route_helpers.TcpRoute{
				ExternalPort: 50000,
				Port:         5222,