public async Task Register_DuplicateEmail() { var name = "namename"; var email = "*****@*****.**"; var password = "******"; var dnsLookup = MockDnsLookup(); var hashProvider = MockHashProvider(); var messagPublisher = AppMocks.MessagingPublisher(); using var db = AppMocks.CreateInMemoryDB(); Register register = new Register(db, dnsLookup, hashProvider, messagPublisher, new NullLogger <Register>()); // First register var response = await register.Handle(new RegisterRequest(name, email, password)); Assert.True(response.Success); Assert.Null(response.Error); Assert.NotNull(response.Value); Assert.NotNull(response.Value.Name); Assert.NotEqual(Guid.Empty, response.Value.Id); // Second register await Assert.ThrowsAsync <SqliteException>(async() => await register.Handle(new RegisterRequest(name, email, password))); }
private async Task <Result <RegisterResponse> > RegisterUser(IUnitOfWork db, IHashProvider hashProvider, string name, string email, string password) { var dnsLookup = MockDnsLookup(); var publisher = AppMocks.MessagingPublisher(); var registerHandler = new Register(db, dnsLookup, hashProvider, publisher, new NullLogger <Register>()); var regRequest = new RegisterRequest(name, email, password); var regResult = await registerHandler.Handle(regRequest); return(regResult); }
public async Task Register_DomainWithoutMX() { using var db = AppMocks.CreateInMemoryDB(); var dnsLookup = MockDnsLookup(); var hashProvider = MockHashProvider(); var messagPublisher = AppMocks.MessagingPublisher(); var register = new Register(db, dnsLookup, hashProvider, messagPublisher, new NullLogger <Register>()); var request = new RegisterRequest("name", "*****@*****.**", "password"); var response = await register.Handle(request); Assert.False(response.Success); Assert.NotNull(response.Error); Assert.Equal(Error.EMAIL_HOST_UNREACHABLE, response.Error); Assert.Null(response.Value); }
public async Task Register_Validation(string name, string email, string password, bool isValid) { using var db = AppMocks.CreateInMemoryDB(); var dnsLookup = MockDnsLookup(); var hashProvider = MockHashProvider(); var messagPublisher = AppMocks.MessagingPublisher(); var register = new Register(db, dnsLookup, hashProvider, messagPublisher, new NullLogger <Register>()); var request = new RegisterRequest(name, email, password); if (isValid) { var response = await register.Handle(request); Assert.True(response.Success); Assert.Null(response.Error); Assert.NotNull(response.Value); Assert.NotNull(response.Value.Name); Assert.NotEqual(Guid.Empty, response.Value.Id); } else { await Assert.ThrowsAsync <ValidationException>(async() => await register.Handle(request)); } }