private AuthenticationPort CreatePort(MockProvider provider)
        {
            // Supporting services that will not be unit tested.
            var mockLogger   = new Mock <ILogger <AuthenticationPort> >();
            var mockLifetime = new Mock <ILifetimeScope>();
            var mockTokenSrv = new Mock <ITokenService>();

            var mockValidationSrv = new MockValidationService();

            var mockModule = new MockProviderModule(provider);

            return(new AuthenticationPort(mockLogger.Object, mockLifetime.Object,
                                          mockModule,
                                          mockValidationSrv,
                                          mockTokenSrv.Object));
        }
        private AuthenticationPort CreatePort(Action <MockProvider> setupProvider,
                                              ITokenService tokenService = null)
        {
            // Supporting services that will not be unit tested.
            var mockLogger   = new Mock <ILogger <AuthenticationPort> >();
            var mockLifetime = new Mock <ILifetimeScope>();
            var mockTokenSrv = new Mock <ITokenService>();

            // Mock authentication provider:
            var mockProvider = new MockProvider();

            setupProvider(mockProvider);

            tokenService = tokenService ?? new MockTokenService();

            var mockValidationSrv = new MockValidationService();

            var mockModule = new MockProviderModule(mockProvider);

            return(new AuthenticationPort(mockLogger.Object, mockLifetime.Object,
                                          mockModule,
                                          mockValidationSrv,
                                          tokenService));
        }