private static AccountManagementService CreateAccountManagementService(Domain.FsDbContext dbContext, IVerificationService verificationService = null) { var entityRepostitory = MockServices.EntityRepositoryMock(dbContext); var hashServiceMock = MockServices.HashServiceMock().Object; var mailService = MockServices.MailServiceMock().Object; var authenticationService = MockServices.AuthenticationServiceMock().Object; var verificationServiceMock = verificationService ?? MockServices.VerificationServiceMock().Object; var target = new AccountManagementService( entityRepostitory, hashServiceMock, mailService, dbContext, authenticationService, verificationServiceMock); return(target); }
public async Task RegistrationFlowShouldWork() { var registrationModel = new UserRegistrationModel { ConfirmationUrl = "https://test.nl", Email = "*****@*****.**", FirstName = "servicetest", LastName = "servicetest", Password = "******", Username = "******" }; var dbContext = MockServices.DbContextMock(); var verificationServiceMock = MockServices.VerificationServiceMock(); verificationServiceMock.Setup(x => x.ValidateVerificationKey(It.IsAny <string>(), It.IsAny <UserVerificationType>())).ReturnsAsync(() => { return(dbContext.Users.SingleAsync(x => x.Email == registrationModel.Email).Result); }); var target = CreateAccountManagementService(dbContext, verificationServiceMock.Object); var result = await target.Register(registrationModel); var userPart1 = dbContext.Users.Single(x => x.Username == registrationModel.Username); Assert.IsFalse(userPart1.IsEmailConfirmed); dbContext.Entry(userPart1).State = Microsoft.EntityFrameworkCore.EntityState.Detached; var fakeKey = "dsfsfd"; await target.ConfirmEmail(fakeKey); var user = dbContext.Users.Single(x => x.Username == registrationModel.Username); Assert.IsNotNull(user); Assert.AreEqual(registrationModel.Password, user.Password); Assert.IsTrue(user.IsEmailConfirmed); Assert.IsNotNull(user.Owner); }