public void Connectivity_Should_Connect_Disconnect_And_Connect()
        {
            // Given
            NetworkAccess             access        = NetworkAccess.None;
            var                       testScheduler = new TestScheduler();
            MockConnectivityEssential connectivity  =
                new MockConnectivityEssentialFixture()
                .WithScheduler(testScheduler)
                .WithAccesses(NetworkAccesses);

            connectivity
            .ConnectivityChanged
            .Subscribe(_ =>
            {
                access = _.NetworkAccess;
            });

            // When
            testScheduler.AdvanceToMs(TimeSpan.FromSeconds(2.5).TotalMilliseconds);

            // Then
            access.Should().Be(NetworkAccess.Internet);

            // When
            testScheduler.AdvanceToMs(TimeSpan.FromSeconds(4.5).TotalMilliseconds);

            // Then
            access.Should().Be(NetworkAccess.Unknown);

            // When
            testScheduler.AdvanceToMs(TimeSpan.FromSeconds(6.5).TotalMilliseconds);

            // Then
            access.Should().Be(NetworkAccess.Internet);
        }
        public void Connectivity_Should_Change()
        {
            // Given
            NetworkAccess access        = NetworkAccess.None;
            var           testScheduler = new TestScheduler();
            var           connectivity  = new MockConnectivityEssential(testScheduler);

            connectivity
            .ConnectivityChanged
            .Subscribe(_ =>
            {
                access = _.NetworkAccess;
            });

            // When
            testScheduler.AdvanceToMs(TimeSpan.FromSeconds(2.5).TotalMilliseconds);

            // Then
            access.Should().Be(NetworkAccess.Internet);
        }