示例#1
0
        public async Task Start_Should_NotRegister_When_RegisterMDNSsIsFalse()
        {
            var serverName = _fixture.Create <string>();

            _option.RegistermDNS = false;
            _option.ServerName   = serverName;

            var host = new MDnsRegisterHostedService(_server, _option, _things, _logger);
            await host.StartAsync(CancellationToken.None);

            using var discovery          = new ServiceDiscovery();
            discovery.ServiceDiscovered += (sender, name) =>
            {
                name.Labels.Contains(serverName).Should().BeFalse();
            };

            discovery.ServiceInstanceDiscovered += (sender, args) =>
            {
                args.ServiceInstanceName.Labels.Contains(serverName).Should().BeFalse();
            };

            await Task.Delay(TimeSpan.FromSeconds(5));

            await host.StopAsync(CancellationToken.None);
        }
示例#2
0
        public async Task Start_Should_Register_When_RegisterMDNSsIsTrueAndHaveTls()
        {
            _option.RegistermDNS = true;
            _option.ServerName   = string.Empty;

            var addresses = new ServerAddressesFeature();

            addresses.Addresses.Add("local:8888");
            _server.Features.Get <IServerAddressesFeature>().Returns(addresses);

            var tls = Substitute.For <ITlsHandshakeFeature>();

            tls.Protocol.Returns(SslProtocols.Tls);
            _server.Features.Get <ITlsHandshakeFeature>().Returns(tls);

            _things.Add(new FakeThing());

            var find = false;

            using var discovery = new ServiceDiscovery();

            discovery.ServiceDiscovered += (sender, name) =>
            {
                if (name.Labels.Contains("Fake"))
                {
                    find = true;
                }
            };

            discovery.ServiceInstanceDiscovered += (sender, args) =>
            {
                if (args.ServiceInstanceName.Labels.Contains("Fake"))
                {
                    find = true;
                }
            };

            var host = new MDnsRegisterHostedService(_server, _option, _things, _logger);
            await host.StartAsync(CancellationToken.None);

            await Task.Delay(TimeSpan.FromSeconds(10));

            find.Should().BeTrue();

            await host.StopAsync(CancellationToken.None);
        }