public async Task Can_resolve_smb_hosts_as_observable()
        {
            var testHostIps = Dns.GetHostEntry(TestHelpers.TestHost).AddressList;
            var hostUrls    = new SmbFileSystemDiscovery().DiscoverSmbHostsContinuous(TimeSpan.FromMilliseconds(2000));

            bool found        = false;
            var  subscription = hostUrls.Subscribe(host =>
            {
                var uri = new Uri(host.SmbUrl);

                if (testHostIps.Any(ip => ip.ToString() == uri.Host) ||
                    TestHelpers.TestHost.Equals(uri.Host, StringComparison.OrdinalIgnoreCase))
                {
                    var drives = new SmbFileSystem().Directory.GetLogicalDrives(host.SmbUrl);

                    found |= drives.Any(d => d == TestHelpers.AnonymousShare);
                }
            });

            await Task.Delay(2000);

            subscription.Dispose();

            found.Should().BeTrue("test host should be discoverable by mDNS");
        }
        public async Task Can_resolve_smb_hosts()
        {
            var testHostIps = Dns.GetHostEntry(TestHelpers.TestHost).AddressList;
            var hostUrls    = await new SmbFileSystemDiscovery().DiscoverSmbHostsAsync(TimeSpan.FromMilliseconds(2000));

            hostUrls.FirstOrDefault(host =>
            {
                var uri = new Uri(host.SmbUrl);

                if (testHostIps.Any(ip => ip.ToString() == uri.Host) ||
                    TestHelpers.TestHost.Equals(uri.Host, StringComparison.OrdinalIgnoreCase))
                {
                    var drives = new SmbFileSystem().Directory.GetLogicalDrives(host.SmbUrl);

                    return(drives.Any(d => d == TestHelpers.AnonymousShare));
                }
                return(false);
            }).Should().NotBeNull("test host should be discoverable by mDNS");
        }