/// <summary>
        ///     Gets the claim for the given user.
        /// </summary>
        /// <param name="model">The log in model.</param>
        /// <returns>If successful, the <see cref="ClaimsIdentity" /> for the user. If not, errors are returned.</returns>
        public async Task <OrchestratorResponseWrapper <ClaimsIdentity> > ValidateUser(LoginViewModel model)
        {
            var response = new OrchestratorResponseWrapper <ClaimsIdentity>();

            try
            {
                var request     = assembler.NewValidateUserRequest(model);
                var apiResponse = await dataAccess.ValidateUser(request);

                if (!apiResponse.Success || !apiResponse.LoginSuccess)
                {
                    response.AddErrors(apiResponse.Errors);

                    return(response);
                }

                response.AddWarnings(apiResponse.Warnings);

                response.Model = assembler.NewClaimsIdentity(apiResponse);
            }
            catch (Exception ex)
            {
                var err = ErrorHelper.Create(ex, model?.EmailAddress, GetType(), "ValidateUser");
                response.AddError(err);
            }

            return(response);
        }
Esempio n. 2
0
 public void NewClaimsIdentity_NullParams_ThrowsArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(delegate { assembler.NewClaimsIdentity(null); });
 }
        public void SetUp()
        {
            assembler  = Substitute.For <IUserAssembler>();
            dataAccess = Substitute.For <IUserDataAccess>();

            errorHelper = Substitute.For <IErrorHelper>();

            errorHelper.Create(Arg.Any <Exception>(), Arg.Any <string>(), Arg.Any <Type>(), Arg.Any <string>())
            .Returns(new ResponseErrorWrapper());
            errorHelper.Create(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <Type>(), Arg.Any <string>())
            .Returns(new ResponseErrorWrapper());

            validRegisterUserRequest = new RegisterUserRequest
            {
                DateOfBirth  = DateTime.Now,
                EmailAddress = "TEST",
                FirstName    = "TEST",
                LastName     = "TEST",
                Password     = "******",
                Username     = "******"
            };

            validValidateUserResponse = new ValidateUserResponse
            {
                LoginSuccess     = true,
                RequestReference = Guid.NewGuid(),
                User             =
                    new UserProxy
                {
                    EmailAddress = "TEST",
                    DateOfBirth  = DateTime.Now,
                    FirstName    = "TEST",
                    Id           = Guid.NewGuid(),
                    LastName     = "TEST"
                }
            };

            invalidValidateUserResponse = new ValidateUserResponse {
                Errors = { new ResponseErrorWrapper() }
            };

            validValidateUserRequest = new ValidateUserRequest
            {
                EmailAddress = "TEST",
                Password     = "******",
                Username     = "******"
            };

            invalidValidateUserRequest = new ValidateUserRequest
            {
                EmailAddress = string.Empty,
                Password     = string.Empty,
                Username     = string.Empty
            };

            validLoginViewModel = new LoginViewModel {
                EmailAddress = "TEST", Password = "******", ReturnUrl = "TEST"
            };

            invalidLoginViewModel = new LoginViewModel
            {
                EmailAddress = string.Empty,
                Password     = string.Empty,
                ReturnUrl    = string.Empty
            };

            invalidRegisterViewModel = new RegisterViewModel
            {
                AcceptTermsAndConditions = false,
                ConfirmPassword          = string.Empty,
                DateOfBirth  = DateTime.MinValue,
                EmailAddress = string.Empty,
                FirstName    = string.Empty,
                LastName     = string.Empty,
                Password     = string.Empty
            };

            validRegisterUserResponse = new RegisterUserResponse
            {
                RequestReference = Guid.NewGuid(),
                RegisterSuccess  = true
            };

            invalidRegisterUserResponse = new RegisterUserResponse
            {
                RequestReference = Guid.NewGuid(),
                Errors           =
                {
                    new ResponseErrorWrapper()
                },
                RegisterSuccess = false
            };

            validRegisterViewModel = new RegisterViewModel
            {
                AcceptTermsAndConditions = true,
                ConfirmPassword          = "******",
                DateOfBirth  = DateTime.Now,
                EmailAddress = "TEST",
                FirstName    = "TEST",
                LastName     = "TEST",
                Password     = "******"
            };

            invalidRegisterUserRequest = new RegisterUserRequest
            {
                DateOfBirth  = DateTime.MinValue,
                EmailAddress = string.Empty,
                FirstName    = string.Empty,
                LastName     = string.Empty,
                Password     = string.Empty,
                Username     = string.Empty
            };

            assembler.NewRegisterUserRequest(invalidRegisterViewModel).Returns(invalidRegisterUserRequest);
            assembler.NewRegisterUserRequest(validRegisterViewModel).Returns(validRegisterUserRequest);
            assembler.NewRegisterUserRequest(null).Throws(new Exception("TEST EXCEPTION"));

            assembler.NewValidateUserRequest(invalidLoginViewModel).Returns(invalidValidateUserRequest);
            assembler.NewValidateUserRequest(validLoginViewModel).Returns(validValidateUserRequest);
            assembler.NewValidateUserRequest(null).Throws(new Exception("TEST EXCEPTION"));

            assembler.NewClaimsIdentity(validValidateUserResponse).Returns(new ClaimsIdentity());

            dataAccess.RegisterUser(invalidRegisterUserRequest).Returns(invalidRegisterUserResponse);
            dataAccess.RegisterUser(validRegisterUserRequest).Returns(validRegisterUserResponse);

            dataAccess.ValidateUser(invalidValidateUserRequest).Returns(invalidValidateUserResponse);
            dataAccess.ValidateUser(validValidateUserRequest).Returns(validValidateUserResponse);

            orchestrator = new UserOrchestrator(assembler, dataAccess, errorHelper);
        }