public void InputWithSecuredAnnotation_ShouldResolveToTrue()
        {
            var sut = new DefaultIsServicePortSecureResolver(new KubernetesDiscoveryOptions());

            Assert.True(sut.Resolve(new Input("dummy", 8080, null, new Dictionary <string, string> {
                { "secured", "true" }, { "other", "value" }
            })));

            Assert.True(sut.Resolve(new Input("dummy", 8080, new Dictionary <string, string> {
                { "secured", "1" }, { "other", "value" }
            })));
        }
        public void PortNumbers_ShouldBeSecuredIfDefaultOrAdded()
        {
            var properties = new KubernetesDiscoveryOptions();

            properties.KnownSecurePorts.Add(12345);
            var sut = new DefaultIsServicePortSecureResolver(properties);

            Assert.False(sut.Resolve(new Input("dummy")));
            Assert.False(sut.Resolve(new Input("dummy", 8080)));
            Assert.False(sut.Resolve(new Input("dummy", 1234)));

            Assert.True(sut.Resolve(new Input("dummy", 443)));
            Assert.True(sut.Resolve(new Input("dummy", 8443)));
            Assert.True(sut.Resolve(new Input("dummy", 12345)));
        }
        public static IDiscoveryClient CreateClient(IOptionsMonitor <KubernetesDiscoveryOptions> options, IKubernetes kubernetes)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (kubernetes == null)
            {
                throw new ArgumentNullException(nameof(kubernetes));
            }

            var isServicePortSecureResolver = new DefaultIsServicePortSecureResolver(options.CurrentValue);

            return(new KubernetesDiscoveryClient(isServicePortSecureResolver, kubernetes, options));
        }