public void IsInitialAuthenticateRequest_ReturnsFalseWhenValidUrlAndHasAccessToken()
        {
            // Arrange
            const string url         = "http://localhost:5000/Auth/IdentityServer";
            const string accessToken = "A1234";

            var httpRequestFake = A.Fake <IRequest>();

            A.CallTo(() => httpRequestFake.AbsoluteUri).Returns(url);

            var authTokensFake = A.Fake <IAuthTokens>();

            A.CallTo(() => authTokensFake.AccessToken).Returns(accessToken);

            var provider = new UserAuthProvider(new TestIdentityServerAuthProviderSettings())
            {
                CallbackUrl = url
            };

            // Act
            var result = provider.IsInitialAuthenticateRequest(httpRequestFake, authTokensFake).Result;

            // Assert
            result.Should().Be(false);

            A.CallTo(() => httpRequestFake.AbsoluteUri).MustHaveHappened();
            A.CallTo(() => authTokensFake.AccessToken).MustHaveHappened();
        }
        public void IsInitialAuthenticateRequest_ReturnsFalseWhenAbsoluteUriIsNotValid(string absoluteUri)
        {
            // Arrange
            var httpRequestFake = A.Fake <IRequest>();

            A.CallTo(() => httpRequestFake.AbsoluteUri).Returns(absoluteUri);

            var authTokensFake = A.Fake <IAuthTokens>();

            var provider = new UserAuthProvider(new TestIdentityServerAuthProviderSettings())
            {
                CallbackUrl = "http://localhost:5000/Auth/IdentityServer"
            };

            // Act
            var result = provider.IsInitialAuthenticateRequest(httpRequestFake, authTokensFake).Result;

            // Assert
            result.Should().Be(false);

            A.CallTo(() => httpRequestFake.AbsoluteUri).MustHaveHappened();
        }