public async Task IF_current_location_is_null_SHOULD_warn()
            {
                //Arrange
                MockProxy.Where_GetCurrentLocationAsync_returns(null);

                //Act
                Sut.Connect(_requirements).Subscribe(next => { }, ex => { ExceptionTaskCompletionSource.SetResult(ex); });

                //Assert
                MockAnalyticsService.VerifyTrace("Current location is null", LogSeverity.Warning);
            }
            public async Task IF_last_known_location_is_null_SHOULD_trace()
            {
                //Arrange
                MockProxy.Where_GetLastKnownLocationAsync_returns(null);

                //Act
                Sut.Connect(_requirements).Subscribe(next => { }, ex => { ExceptionTaskCompletionSource.SetResult(ex); });

                //Assert
                MockAnalyticsService.VerifyTrace("Last known location is null");
            }
            public async Task IF_current_location_is_invalid_SHOULD_error()
            {
                //Arrange
                MockProxy.Where_GetLastKnownLocationAsync_returns(new Location(-212, 22, DateTimeOffset.Now));

                //Act
                Sut.Connect(_requirements).Subscribe(next => { }, ex => { ExceptionTaskCompletionSource.SetResult(ex); });
                var exception = await ExceptionTaskCompletionSource.Task;

                //Assert
                Assert.That(exception.ToError(), Is.EqualTo(GeolocationErrors.InvalidLatitude));
                MockAnalyticsService.VerifyTrace(GeolocationErrors.InvalidLatitude.ToString(), LogSeverity.Error);
            }
            public async Task IF_current_location_throws_SHOULD_error()
            {
                //Arrange
                MockProxy.Where_GetCurrentLocationAsync_throws(new Exception("oops"));

                //Act
                Sut.Connect(_requirements).Subscribe(next => { }, ex => { ExceptionTaskCompletionSource.SetResult(ex); });
                var exception = await ExceptionTaskCompletionSource.Task;

                //Assert
                Assert.That(exception.ToError(), Is.EqualTo(GeolocationErrors.Unexpected));
                Assert.That(exception.InnerException.Message, Is.EqualTo("oops"));
                MockAnalyticsService.VerifyLogException <Exception>("oops");
            }