public async void Handle_GivenUnknownCredentials_ShouldFail()
        {
            // arrange
            Mock <UserManager <AppUser> > userManager = new Mock <UserManager <AppUser> >();

            userManager.Setup(i => i.FindByNameAsync(It.IsAny <string>())).ReturnsAsync((AppUser)null);

            List <Claim> claims             = new List <Claim>();
            var          mockUserRepository = new Mock <IUserRepository>();

            mockUserRepository.Setup(repo => repo.SignIn(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>())).ReturnsAsync(new Core.DTO.GatewayResponses.Repositories.SignInResponse(null, false));

            var useCase = new SignInUseCase(mockUserRepository.Object);

            var mockOutputPort = new Mock <IOutputPort <Core.DTO.UseCaseResponses.SignInResponse> >();

            mockOutputPort.Setup(outputPort => outputPort.Handle(It.IsAny <Core.DTO.UseCaseResponses.SignInResponse>()));

            // act
            var response = await useCase.Handle(new SignInRequest("", "password", true, true, false), mockOutputPort.Object);

            // assert
            Assert.False(response);
            mockUserRepository.Verify(factory => factory.FindByName(""), Times.Never);
            mockUserRepository.Verify(factory => factory.CheckPassword(It.IsAny <string>(), It.IsAny <string>()), Times.Never);
            mockOutputPort.VerifyAll();
        }
예제 #2
0
 public AccountController(
     SignInUseCase signInUseCase,
     SignUpUseCase signUpUseCase,
     DeleteAccountUseCase deleteAccountUseCase)
 {
     _signInUseCase        = signInUseCase;
     _signUpUseCase        = signUpUseCase;
     _deleteAccountUseCase = deleteAccountUseCase;
 }
예제 #3
0
        SignInUseCase GetUseCase(SignInUseCaseConfig config)
        {
            Mock <IValidator <UserLoginModel> > validatorMock = new Mock <IValidator <UserLoginModel> >();

            validatorMock.Setup(mock => mock.Validate(It.IsAny <UserLoginModel>())).Returns(config.ValidationResult);

            Mock <IIdentityProvider> identityProviderMock = new Mock <IIdentityProvider>();

            identityProviderMock.Setup(mock => mock.CheckSignInAsync(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(config.DesiredSignInResult));
            config.SignInExecutorMock ??= new Mock <ISignInExecutor>();
            Mock <INavigator> navigatorMock = new Mock <INavigator>();

            navigatorMock.Setup(mock => mock.NavigateTo(It.IsAny <NavigationLocation>())).Callback <NavigationLocation>((obj) => navigatedLocation = obj);
            config.ErrorCollectorMock ??= new Mock <IErrorCollector>();
            SignInUseCase useCase = new SignInUseCase(validatorMock.Object, identityProviderMock.Object, config.SignInExecutorMock.Object, navigatorMock.Object, config.ErrorCollectorMock.Object, new SignInErrorCreator(new FailedSignInMessageConverter()));

            return(useCase);
        }
예제 #4
0
 public AccountController(SignInUseCase useCase, ILogger <AccountController> logger, ModelStateUpdater modelStateUpdater)
 {
     this.useCase           = useCase;
     this.logger            = logger;
     this.modelStateUpdater = modelStateUpdater;
 }