bbsClient = new(fake_bbs.FakeClient) noaaClient = &fakes.FakeNoaaClient{} httpHandler, err = handler.New(bbsClient, noaaClient, 2, 15, logger) Expect(err).NotTo(HaveOccurred()) server = httptest.NewServer(httpHandler) fakeActualLRPResponses = make(chan []*models.ActualLRPGroup, 2) bbsClient.DesiredLRPByProcessGuidStub = func(string) (*models.DesiredLRP, error) { return &models.DesiredLRP{}, nil } bbsClient.ActualLRPGroupsByProcessGuidStub = func(string) ([]*models.ActualLRPGroup, error) { return <-fakeActualLRPResponses, nil } noaaClient.ContainerMetricsReturns([]*events.ContainerMetric{ { ApplicationId: proto.String("appId"), InstanceIndex: proto.Int32(0), CpuPercentage: proto.Float64(4), MemoryBytes: proto.Uint64(1024), DiskBytes: proto.Uint64(2048), }, }, nil) statsRequest, err = http.NewRequest("GET", server.URL+"/v1/actual_lrps/some-guid/stats", nil) Expect(err).NotTo(HaveOccurred()) statsRequest.Header.Set("Authorization", "something")
fakeClock := fakeclock.NewFakeClock(time.Now()) handler := lrpstatus.NewHandler(fakeClient, fakeClock, lagertest.NewTestLogger("test")) server = httptest.NewServer(handler) }) AfterEach(func() { server.Close() }) Describe("Instance state", func() { BeforeEach(func() { fakeClient.ActualLRPGroupsByProcessGuidStub = func(string) ([]*models.ActualLRPGroup, error) { return []*models.ActualLRPGroup{ makeActualLRPGroup(1, models.ActualLRPStateUnclaimed, ""), makeActualLRPGroup(2, models.ActualLRPStateClaimed, ""), makeActualLRPGroup(3, models.ActualLRPStateRunning, ""), makeActualLRPGroup(4, models.ActualLRPStateCrashed, diego_errors.CELL_MISMATCH_MESSAGE), }, nil } }) It("returns instance state", func() { res, err := http.Get(server.URL) Expect(err).NotTo(HaveOccurred()) response := []cc_messages.LRPInstance{} err = json.NewDecoder(res.Body).Decode(&response) res.Body.Close() Expect(err).NotTo(HaveOccurred()) Expect(response).To(HaveLen(4))