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); }
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); } }