It("sends a 'routes unregistered' metric", func() { Eventually(func() uint64 { return fakeMetricSender.GetCounter("RoutesUnRegistered") }).Should(BeEquivalentTo(0)) }) It("should emit whatever the table tells it to emit", func() { Eventually(emitter.EmitCallCount).Should(Equal(2)) messagesToEmit := emitter.EmitArgsForCall(1) Expect(messagesToEmit).To(Equal(dummyMessagesToEmit)) }) Context("when there are multiple CF routes", func() { BeforeEach(func() { routes := cfroutes.CFRoutes{expectedCFRoute, expectedAdditionalCFRoute}.RoutingInfo() desiredLRP.Routes = &routes }) It("registers all of the routes on the table", func() { Eventually(table.SetRoutesCallCount).Should(Equal(2)) key, routes := table.SetRoutesArgsForCall(0) Expect(key).To(Equal(expectedRoutingKey)) Expect(routes).To(Equal(routing_table.Routes{Hostnames: expectedRoutes, LogGuid: logGuid, RouteServiceUrl: expectedRouteServiceUrl})) key, routes = table.SetRoutesArgsForCall(1) Expect(key).To(Equal(expectedAdditionalRoutingKey)) Expect(routes).To(Equal(routing_table.Routes{Hostnames: expectedAdditionalRoutes, LogGuid: logGuid})) }) It("emits whatever the table tells it to emit", func() {
}) Context("when the container port cannot be found", func() { BeforeEach(func() { actualLRPGroup.Instance.Ports = []*models.PortMapping{} bbsClient.ActualLRPGroupByProcessGuidAndIndexReturns(actualLRPGroup, nil) }) It("returns an empty permission reference", func() { Expect(permissions).To(Equal(&ssh.Permissions{})) }) }) Context("when the desired LRP does not include routes", func() { BeforeEach(func() { desiredLRP.Routes = nil bbsClient.DesiredLRPByProcessGuidReturns(desiredLRP, nil) }) It("fails the authentication", func() { Expect(buildErr).To(Equal(authenticators.RouteNotFoundErr)) }) }) Context("when the desired LRP does not include an SSH route", func() { BeforeEach(func() { r := *desiredLRP.Routes delete(r, routes.DIEGO_SSH) bbsClient.DesiredLRPByProcessGuidReturns(desiredLRP, nil) })
protoSerialization, err := proto.Marshal(&desiredLRP) Expect(err).NotTo(HaveOccurred()) var protoDeserialization models.DesiredLRP err = proto.Unmarshal(protoSerialization, &protoDeserialization) Expect(err).NotTo(HaveOccurred()) desiredRoutes := *desiredLRP.Routes deserializedRoutes := *protoDeserialization.Routes Expect(deserializedRoutes).To(HaveLen(len(desiredRoutes))) for k := range desiredRoutes { Expect(string(*deserializedRoutes[k])).To(MatchJSON(string(*desiredRoutes[k]))) } desiredLRP.Routes = nil protoDeserialization.Routes = nil Expect(protoDeserialization).To(Equal(desiredLRP)) }) }) Describe("ApplyUpdate", func() { It("updates instances", func() { instances := int32(100) update := &models.DesiredLRPUpdate{Instances: &instances} schedulingInfo := desiredLRP.DesiredLRPSchedulingInfo() expectedSchedulingInfo := schedulingInfo expectedSchedulingInfo.Instances = instances expectedSchedulingInfo.ModificationTag.Increment()