public async Task ProviderResultsReturned_ForValidCredentials()
        {
            // Arrange:
            var resourceModel   = new AuthResourceModel {
            };
            var credentialModel = new AuthCredentialModel {
                Api = "service-api", Credentials = new Dictionary <string, string> {
                }
            };
            var command = new AuthenticateCaller(credentialModel, resourceModel);

            // Create mock token service to return know token value
            var tokenSrv = new MockTokenService {
                ExpectedTokenValue = Guid.NewGuid().ToString()
            };

            // Assume provider also indicates valid submitted authentication request.
            var port = CreatePort(p => {
                p.IsValidRequest = true;
                p.HavingResult   = c => AuthResult.Authenticated();
            }, tokenSrv);

            // Act:
            var result = await port.AuthenticateForService(command);

            // Assert:
            Assert.NotNull(result);
            Assert.False(result.IsInvalidCredentialContext);
            Assert.True(result.IsAuthenticated);
            Assert.Equal(tokenSrv.ExpectedTokenValue, result.JwtSignedToken);
        }
 public TestableAuthenticationService()
 {
     Data = MockData = new MockDataRepository();
     Tokens = MockTokens = new MockTokenService();
     Settings = MockSettings = new MockSettings();
     TokenExchanges = new Dictionary<string, HttpResponseMessage>();
 }