public async Task AddCustomerAsync_AddingCustomerSucceeds_ReturnsAResisterResponseThatContainsTheExpectedToken()
        {
            var request = new RegisterRequest
            {
                Email            = "*****@*****.**",
                Name             = "Michael",
                Password         = "******",
                PasswordRepeated = "Qwer111!",
                PhoneNumber      = "12345678"
            };

            var customer = new Customer
            {
                Email       = request.Email,
                Name        = request.Name,
                PhoneNumber = request.PhoneNumber
            };

            _unitOfWork.CustomerRepository.Add(null).ReturnsForAnyArgs(customer);
            _jwtService.GenerateJwtToken(null, null, null).ReturnsForAnyArgs("TheGeneratedToken");

            var response = await _customerService.AddCustomerAsync(request);

            Assert.That(response.Token, Is.EqualTo("TheGeneratedToken"));
        }
        public async Task add_customer_async_should_invoke_repository_method()
        {
            var mockedRepository = new Mock <ICustomerRepository>();
            var mockedMapper     = new Mock <ITraveloMapper>();
            var customerService  =
                new CustomerService(mockedRepository.Object, mockedMapper.Object);

            await customerService.AddCustomerAsync("Frank", "Sinatra");

            mockedRepository.Verify(x => x.AddCustomerAsync(It.IsAny <Customer>()), Times.Once());
        }
Example #3
0
        public async Task AddCustomer_should_return_error_when_email_exists()
        {
            var repository = new Mock <ICustomerRepository>();

            repository.Setup(r => r.CountAsync(It.IsAny <string>(), It.IsAny <object>())).Returns(Task.FromResult(1));
            var sut      = new CustomerService(repository.Object);
            var customer = new CustomerEntity();

            var result = await sut.AddCustomerAsync(customer);

            Assert.False(result.IsSuccessful);
            Assert.Equal("Email already in use.", result.ErrorMessage);
        }
Example #4
0
        public async Task AddCustomer_should_return_correct_id()
        {
            var repository = new Mock <ICustomerRepository>();

            repository.Setup(r => r.CountAsync(It.IsAny <string>(), It.IsAny <object>())).Returns(Task.FromResult(0));
            repository.Setup(r => r.InsertAsync(It.IsAny <CustomerEntity>())).Returns(Task.FromResult((int?)1));
            var sut      = new CustomerService(repository.Object);
            var customer = new CustomerEntity();

            var result = await sut.AddCustomerAsync(customer);

            Assert.True(result.IsSuccessful);
            Assert.Equal(1, result.Result.Id);
        }
Example #5
0
        public async Task AddCustomer_should_return_error_when_add_customer_failed()
        {
            var repository = new Mock <ICustomerRepository>();

            repository.Setup(r => r.CountAsync(It.IsAny <string>(), It.IsAny <object>())).Returns(Task.FromResult(0));
            repository.Setup(r => r.InsertAsync(It.IsAny <CustomerEntity>())).Returns(Task.FromResult((int?)null));
            var sut      = new CustomerService(repository.Object);
            var customer = new CustomerEntity();

            var result = await sut.AddCustomerAsync(customer);

            Assert.False(result.IsSuccessful);
            Assert.Equal("Add customer failed.", result.ErrorMessage);
        }
Example #6
0
        public async Task <ActionResult <CustomerViewModel> > AddCustomerAsync([FromBody] CustomerViewModel customerViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var customer = new Customer
            {
                FirstName      = customerViewModel.FirstName,
                LastName       = customerViewModel.LastName,
                PhoneNumber    = customerViewModel.PhoneNumber,
                CustomerStatus = customerViewModel.CustomerStatus,
                CreatedDate    = DateTime.Now
            };

            customer = await _customerService.AddCustomerAsync(customer);

            //return CreatedAtRoute("GetCustomer", new { id = customer.CustomerID });
            return(_mapper.Map <CustomerViewModel>(customer));
        }