return resultsChan, nil, nil
				} else {
					return tcpResultsChan, nil, nil
				}
			}
			database.ReadRoutesReturns([]db.Route{
				db.Route{},
				db.Route{},
				db.Route{},
				db.Route{},
				db.Route{},
			}, nil)

			database.ReadTcpRouteMappingsReturns([]db.TcpRouteMapping{
				db.TcpRouteMapping{},
				db.TcpRouteMapping{},
				db.TcpRouteMapping{},
			}, nil)
		})

		JustBeforeEach(func() {
			go reporter.Run(sigChan, readyChan)
		})

		AfterEach(func() {
			sigChan <- nil
		})

		verifyGaugeCall := func(statKey string, expectedCount int64, expectedRate float32, index int) {
			totalStat, count, rate := stats.GaugeArgsForCall(index)
			Expect(totalStat).To(Equal(statKey))
			_, permission := token.DecodeTokenArgsForCall(0)
			Expect(permission).To(ConsistOf(handlers.RoutingRoutesReadScope))
		})

		Context("when db returns tcp route mappings", func() {
			var (
				tcpRoutes []db.TcpRouteMapping
			)

			BeforeEach(func() {
				tcpRoutes = []db.TcpRouteMapping{
					db.NewTcpRouteMapping("router-group-guid-001", 52000, "1.2.3.4", 60000),
					db.NewTcpRouteMapping("router-group-guid-001", 52001, "1.2.3.5", 60001),
				}
				database.ReadTcpRouteMappingsReturns(tcpRoutes, nil)
			})

			It("returns tcp route mappings", func() {
				request = handlers.NewTestRequest("")
				tcpRouteMappingsHandler.List(responseRecorder, request)

				Expect(responseRecorder.Code).To(Equal(http.StatusOK))
				Expect(responseRecorder.Body.String()).To(MatchJSON(`[{"route":{"router_group_guid": "router-group-guid-001", "external_port": 52000}, "host_ip": "1.2.3.4", "host_port": 60000},
					{"route":{"router_group_guid": "router-group-guid-001", "external_port": 52001}, "host_ip": "1.2.3.5", "host_port": 60001}]`))
			})
		})

		Context("when db returns empty tcp route mappings", func() {
			BeforeEach(func() {
				database.ReadTcpRouteMappingsReturns([]db.TcpRouteMapping{}, nil)
Beispiel #3
0
					return resultsChan, nil, nil
				} else {
					return tcpResultsChan, nil, nil
				}
			}
			database.ReadRoutesReturns([]models.Route{
				models.Route{},
				models.Route{},
				models.Route{},
				models.Route{},
				models.Route{},
			}, nil)

			database.ReadTcpRouteMappingsReturns([]models.TcpRouteMapping{
				models.TcpRouteMapping{},
				models.TcpRouteMapping{},
				models.TcpRouteMapping{},
			}, nil)
		})

		JustBeforeEach(func() {
			go reporter.Run(sigChan, readyChan)
		})

		AfterEach(func() {
			sigChan <- nil
		})

		verifyGaugeCall := func(statKey string, expectedCount int64, expectedRate float32, index int) {
			totalStat, count, rate := stats.GaugeArgsForCall(index)
			Expect(totalStat).To(Equal(statKey))