/// <summary> /// Obtains a claim for the given user. /// </summary> /// <param name="request">The request.</param> /// <returns> /// The response object. /// </returns> public async Task <ValidateUserResponse> ValidateUser(ValidateUserRequest request) { return(await Orchestrate(async delegate { var userDataModel = await repository.GetUser(request.EmailAddress, request.Password); return assembler.NewValidateUserResponse(userDataModel, request.RequestReference); }, request)); }
public void NewValidateUserResponse_ValidParams_ReturnsResponse() { var guid = Guid.NewGuid(); var test = assembler.NewValidateUserResponse(validDataModel, guid); Assert.IsNotNull(test); Assert.IsNotNull(test.User); Assert.IsInstanceOf <ValidateUserResponse>(test); Assert.IsTrue(test.LoginSuccess); Assert.AreSame(validDataModel.EmailAddress, test.User.EmailAddress); Assert.AreSame(validDataModel.FirstName, test.User.FirstName); Assert.AreSame(validDataModel.LastName, test.User.LastName); Assert.AreEqual(validDataModel.DateOfBirth, test.User.DateOfBirth); Assert.AreEqual(test.RequestReference, guid); }
public void SetUp() { validRegisterUserRequest = new RegisterUserRequest { DateOfBirth = DateTime.Today, EmailAddress = "TEST", FirstName = "TEST", LastName = "TEST", Password = "******", Username = "******" }; validDataModel = new UserDataModel { Id = Guid.NewGuid(), CreationTime = DateTime.Now, DateOfBirth = DateTime.Today, EmailAddress = "TEST", FirstName = "TEST", Hash = new byte[] { }, Iterations = 1, LastName = "TEST", Salt = new byte[] { } }; validRegisterUserResponse = new RegisterUserResponse { RegisterSuccess = true, RequestReference = validRegisterUserRequest.RequestReference }; invalidDataModel = new UserDataModel(); invalidRegisterUserRequest = new RegisterUserRequest(); invalidRegisterUserResponse = new RegisterUserResponse { Errors = { new ResponseErrorWrapper() } }; exceptionRegisterUserRequest = new RegisterUserRequest { DateOfBirth = DateTime.MinValue }; validValidateUserRequest = new ValidateUserRequest { EmailAddress = "TEST", Password = "******", Username = "******" }; invalidValidateUserRequest = new ValidateUserRequest(); exceptionValidateUserRequest = new ValidateUserRequest { EmailAddress = "EXC", Password = "******", Username = "******" }; invalidValidateUserResponse = new ValidateUserResponse { Errors = { new ResponseErrorWrapper() } }; validValidateUserResponse = new ValidateUserResponse { LoginSuccess = true }; assembler = Substitute.For <IUserAssembler>(); repository = Substitute.For <IUserRepository>(); assembler.NewUserDataModel(validRegisterUserRequest).Returns(validDataModel); assembler.NewUserDataModel(invalidRegisterUserRequest).Returns(invalidDataModel); assembler.NewRegisterUserResponse(validDataModel, validRegisterUserRequest.RequestReference) .Returns(validRegisterUserResponse); assembler.NewUserDataModel(exceptionRegisterUserRequest).Throws(new Exception("TEST")); assembler.NewRegisterUserResponse(invalidDataModel, invalidRegisterUserRequest.RequestReference) .Returns(invalidRegisterUserResponse); assembler.NewValidateUserResponse(validDataModel, validValidateUserRequest.RequestReference) .Returns(validValidateUserResponse); assembler.NewValidateUserResponse(invalidDataModel, invalidValidateUserRequest.RequestReference) .Returns(invalidValidateUserResponse); repository.RegisterUser(validDataModel).Returns(validDataModel); repository.RegisterUser(invalidDataModel).Returns(invalidDataModel); repository.GetUser(validValidateUserRequest.EmailAddress, validValidateUserRequest.Password) .Returns(validDataModel); repository.GetUser(invalidValidateUserRequest.EmailAddress, invalidRegisterUserRequest.Password) .Returns(invalidDataModel); repository.GetUser(exceptionValidateUserRequest.EmailAddress, exceptionValidateUserRequest.Password) .Throws(new Exception("TEST")); 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()); orchestrator = new UserOrchestrator(assembler, repository, errorHelper); }