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)));
        }
Beispiel #2
0
        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));
            }
        }