Exemple #1
0
        public async Task TestPostCustomerAsync()
        {
            // Arrange
            var dbContext  = DbContextMocker.GetCustomerContext(nameof(TestGetCustomersAsync));
            var controller = new CustomerController(dbContext);
            var customer   = new Customer
            {
                Id          = 5,
                FirstName   = "Nelson",
                LastName    = "Mandela",
                DateOfBirth = Convert.ToDateTime("1918-07-18T00: 00:00")
            };

            // Act

            var response = await controller.AddCustomerAsync(customer);

            CreatedAtActionResult result = response.Result as CreatedAtActionResult;
            var statusCode  = result.StatusCode;
            var customerVal = result.Value as Customer;

            //dispose dbcntext
            dbContext.Dispose();

            // Assert
            Assert.NotNull(result);
            Assert.NotNull(statusCode);
            Assert.Equal(201, statusCode);
            Assert.Same(customerVal.FirstName, "Nelson");
            Assert.Same(customerVal.LastName, "Mandela");
            Assert.Equal(customerVal.DateOfBirth, Convert.ToDateTime("7/18/1918 12:00:00 AM"));
        }
        public async Task AddCustomerAsync_WhenModelStateInvalid_ReturnsIndexViewAsync()
        {
            // Arrange
            _controller = new CustomerController(
                _repositoryMock.Object,
                _mapperMock.Object,
                _toastrMock.Object,
                _loggerMock.Object
                );
            var customerVm = new CustomerViewModel();

            _controller.ModelState.AddModelError("key", "error message");

            // Act
            var result = await _controller.AddCustomerAsync(customerVm) as ViewResult;

            // Assert
            Assert.Equal("Index", result.ViewName);
        }
        public async Task AddCustomerAsync_Success_RedirectsToCustomersListViewAsync()
        {
            // Arrange
            _repositoryMock
            .Setup(r => r.AddCustomerAsync(It.IsAny <Customer>()))
            .Returns(Task.FromResult(1));
            _controller = new CustomerController(
                _repositoryMock.Object,
                _mapperMock.Object,
                _toastrMock.Object,
                _loggerMock.Object
                );
            var customerVm = new CustomerViewModel();

            // Act
            var result = await _controller.AddCustomerAsync(customerVm) as RedirectToActionResult;

            // Assert
            _toastrMock.Verify(t => t.AddSuccessToastMessage("Customer Added", null), Times.Once);
            Assert.Equal("CustomersListAsync", result.ActionName);
        }
        public async Task AddCustomerAsync_WhenExceptionOccurs_ShowErrorAndRedirectToIndexAsync()
        {
            // Arrange
            _repositoryMock
            .Setup(r => r.AddCustomerAsync(It.IsAny <Customer>()))
            .ThrowsAsync(new Exception());
            _controller = new CustomerController(
                _repositoryMock.Object,
                _mapperMock.Object,
                _toastrMock.Object,
                _loggerMock.Object
                );
            var customerVm = new CustomerViewModel();

            // Act
            var result = await _controller.AddCustomerAsync(customerVm) as RedirectToActionResult;

            // Assert
            _toastrMock.Verify(t => t.AddErrorToastMessage("Oops! something went wrong", null), Times.Once);
            Assert.Equal("Index", result.ActionName);
        }
Exemple #5
0
        public void AddCustomerAsync_AddsCustomer()
        {
            using (_customerDbContext = new CustomerDbContext(_options))
            {
                _customerController = new CustomerController(_customerDbContext);

                var newCustomer = new CustomerRequest
                {
                    FirstName   = "foo",
                    LastName    = "bar",
                    DateOfBirth = DateTime.Now.Date
                };

                var result = _customerController.AddCustomerAsync(newCustomer);
                var value  = result.Result.Value;

                Assert.Equal(1, value.Id);
                Assert.Equal(newCustomer.FirstName, value.FirstName);
                Assert.Equal(newCustomer.LastName, value.LastName);
                Assert.Equal(newCustomer.DateOfBirth, value.DateOfBirth);
                Assert.IsAssignableFrom <Customer>(value);
            }
        }