Beispiel #1
0
        public async Task ShouldNotFailWhenQueryServerReturnNoElement()
        {
            var selector = new DnsServiceTargetSelectorReal(new FakeDnsSrvQuerierEmpty(), new DnsSrvSortResult(), 10, CreateLoggers.CreateILoggerFromNLog());
            var ret      = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            Assert.IsNull(ret);
        }
Beispiel #2
0
        public async Task BlacklistForShouldThrowExceptionIfNullValue()
        {
            var selector = new DnsServiceTargetSelectorReal(new FakeDnsSrvQuerier(), new DnsSrvSortResult(), 10, CreateLoggers.CreateILoggerFromNLog());
            var ret1     = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            var ex = Assert.ThrowsAsync <ArgumentNullException>(async() => await selector.BlacklistHostForAsync(null, new TimeSpan(1, 1, 1)));

            Assert.IsNotNull(ex);
        }
Beispiel #3
0
        public void NullServiceThrowException()
        {
            var selector = new DnsServiceTargetSelectorReal(null, null, 0, null);
            var ex       = Assert.ThrowsAsync <ArgumentNullException>(async() => await selector.SelectHostAsync(null));

            selector = new DnsServiceTargetSelectorReal(null, null, 0, CreateLoggers.CreateILoggerFromNLog());
            ex       = Assert.ThrowsAsync <ArgumentNullException>(async() => await selector.SelectHostAsync(null));
            Assert.IsNotNull(ex);
        }
Beispiel #4
0
        public async Task ResetBlacklistForHostShouldNotFailNorThrowException()
        {
            var selector = new DnsServiceTargetSelectorReal(new FakeDnsSrvQuerier(), new DnsSrvSortResult(), 10, CreateLoggers.CreateILoggerFromNLog());
            var ret1     = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            await selector.ResetBlacklistForHostAsync(ret1);

            var ret2 = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            Assert.AreEqual(ret1, ret2);
        }
Beispiel #5
0
        public async Task BlacklistForShouldNotFail()
        {
            var selector = new DnsServiceTargetSelectorReal(new FakeDnsSrvQuerier(), new DnsSrvSortResult(), 10, CreateLoggers.CreateILoggerFromNLog());
            var ret1     = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            await selector.BlacklistHostForAsync(ret1, new TimeSpan(1, 1, 1));

            var ret2 = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            Assert.AreNotEqual(ret1, ret2);
        }
Beispiel #6
0
        public void CreateABuildCheckTypeValues()
        {
            uint                      retrieveTime     = 20;
            ProtocolType              protocol         = ProtocolType.Tcp;
            string                    uriString        = "https://api.qarnot.com";
            Uri                       uri              = new Uri(uriString);
            IDnsServiceExtractor      extract          = new DnsServiceExtractorFirstLabelConvention(protocol);
            IDnsSrvQuerier            querier          = new DnsSrvQuerier(); // extract sort elements !
            DnsSrvServiceDescription  service          = extract.FromUri(uri);
            IDnsServiceTargetSelector selector         = new DnsServiceTargetSelectorReal(querier, new DnsSrvSortResult(), retrieveTime);
            ITargetQuarantinePolicy   quarantinePolice = new TargetQuarantinePolicyServerUnavailable();

            using var delegateHandler = new DnsServiceBalancingMessageHandler(service, selector, quarantinePolice, null);
        }
Beispiel #7
0
        public async Task ResetShouldAllowToRecallTheDns()
        {
            var logger   = CreateLoggers.CreateILoggerFromNLog();
            var selector = new DnsServiceTargetSelectorReal(new FakeDnsSrvQuerier(), new DnsSrvSortResult(), 10, logger);
            var ret      = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            do
            {
                await selector.BlacklistHostForAsync(ret, new TimeSpan(1, 1, 1));

                ret = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));
            }while (ret != null);

            await selector.ResetAsync();

            ret = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            Assert.IsNotNull(ret);
        }
Beispiel #8
0
        public async Task ResetBlacklistForHostAfterAllHostPutInQuaranine()
        {
            var selector = new DnsServiceTargetSelectorReal(new FakeDnsSrvQuerier(), new DnsSrvSortResult(), 10, CreateLoggers.CreateILoggerFromNLog());
            var save     = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            var ret = save;

            do
            {
                await selector.BlacklistHostForAsync(ret, new TimeSpan(1, 1, 1));

                ret = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));
            }while (ret != null);

            ret = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            Assert.IsNull(ret);
            await selector.ResetBlacklistForHostAsync(save);

            ret = await selector.SelectHostAsync(new DnsSrvServiceDescription("service", ProtocolType.Tcp, "domain"));

            Assert.IsNotNull(ret);
        }