private async Task <ICache> GetKubernetesInfo(string name) { var cache = new IngressCache(); var typeMap = new Dictionary <string, Type>(); typeMap.Add("networking.k8s.io/v1/Ingress", typeof(V1Ingress)); typeMap.Add("v1/Service", typeof(V1Service)); typeMap.Add("v1/Endpoints", typeof(V1Endpoints)); var kubeObjects = await Yaml.LoadAllFromFileAsync(Path.Combine("testassets", name, "ingress.yaml"), typeMap).ConfigureAwait(false); foreach (var obj in kubeObjects) { if (obj is V1Ingress ingress) { cache.Update(WatchEventType.Added, ingress); } else if (obj is V1Service service) { cache.Update(WatchEventType.Added, service); } else if (obj is V1Endpoints endpoints) { cache.Update(WatchEventType.Added, endpoints); } } return(cache); }
public IngressCacheTests() { _mockLogger = new Mock <ILogger <IngressCache> >(); _mockOptions = new Mock <IOptions <YarpOptions> >(); _mockOptions.SetupGet(o => o.Value).Returns(new YarpOptions { ControllerClass = "microsoft.com/ingress-yarp" }); _cacheUnderTest = new IngressCache(_mockOptions.Object, _mockLogger.Object); }
public IngressCacheTests(ITestOutputHelper output) { var logger = new TestLogger <IngressCache>(output); _mockOptions = new Mock <IOptions <YarpOptions> >(); _mockOptions.SetupGet(o => o.Value).Returns(new YarpOptions { ControllerClass = "microsoft.com/ingress-yarp" }); _cacheUnderTest = new IngressCache(_mockOptions.Object, logger); }
private async Task <ICache> GetKubernetesInfo(string name, V1IngressClass ingressClass) { var mockLogger = new Mock <ILogger <IngressCache> >(); var mockOptions = new Mock <IOptions <YarpOptions> >(); mockOptions.SetupGet(o => o.Value).Returns(new YarpOptions { ControllerClass = "microsoft.com/ingress-yarp" }); var cache = new IngressCache(mockOptions.Object, mockLogger.Object); var typeMap = new Dictionary <string, Type>(); typeMap.Add("networking.k8s.io/v1/Ingress", typeof(V1Ingress)); typeMap.Add("v1/Service", typeof(V1Service)); typeMap.Add("v1/Endpoints", typeof(V1Endpoints)); if (ingressClass is not null) { cache.Update(WatchEventType.Added, ingressClass); } var kubeObjects = await Yaml.LoadAllFromFileAsync(Path.Combine("testassets", name, "ingress.yaml"), typeMap).ConfigureAwait(false); foreach (var obj in kubeObjects) { if (obj is V1Ingress ingress) { cache.Update(WatchEventType.Added, ingress); } else if (obj is V1Service service) { cache.Update(WatchEventType.Added, service); } else if (obj is V1Endpoints endpoints) { cache.Update(WatchEventType.Added, endpoints); } } return(cache); }