public async Task Test11_AddCustomer_ValidObjectPassed_ReturnsCreatedResponseAndCorrectCustomer() { // Arrange var newCustomer = new CustomerForCreationDTO() { Id = Guid.Parse("9095778F-055B-4115-8D83-661864F620D9"), Name = "Bill", Age = 41, Address = "Test Address", Email = "*****@*****.**", Phone = "519-334-9876" }; var json = JsonConvert.SerializeObject(newCustomer); var payload = new StringContent(json, Encoding.UTF8, "application/json"); // Act var response = await _client.PostAsync(_url, payload); // Assert response.StatusCode.Should().Be(HttpStatusCode.Created); var stream = await response.Content.ReadAsStreamAsync(); var createdCustomer = stream.ReadAndDeserializeFromJson <CustomerForCreationDTO>(); Assert.Equal(newCustomer.Id, createdCustomer.Id); Assert.Equal(newCustomer.Name, createdCustomer.Name); Assert.Equal(newCustomer.Age, createdCustomer.Age); Assert.Equal(newCustomer.Address, createdCustomer.Address); Assert.Equal(newCustomer.Email, createdCustomer.Email); Assert.Equal(newCustomer.Phone, createdCustomer.Phone); }
public async Task AddCustomerTest() { //Given // Generate a database names AddCustomerTest in mem var dbContext = DbContextMock.getDataContext(nameof(AddCustomerTest)); // get a repo var _repo = new CustomerRepository(dbContext); var controller = new CustomerController(_repo, _mapper); // customer to Add var createdCustomer = new CustomerForCreationDTO() { CustomerType = 1, FirstName = "Johannes", LastName = "Bach", EmailAddress = "*****@*****.**" }; //When var result = await controller.AddCustomer(createdCustomer) as ObjectResult; var customerFromRepo = await _repo.getCustomer(4); // Dispose context dbContext.Dispose(); //Then Assert.Equal(201, result.StatusCode); Assert.Equal(createdCustomer.FirstName, customerFromRepo.FirstName); }
public async Task <ActionResult <CustomerForDisplayDTO> > CreateCustomer(CustomerForCreationDTO customerForCreationDTO) { if (ModelState.IsValid) { try { var customer = _mapper.Map <Customer>(customerForCreationDTO); if (customer.Id == null || customer.Id == Guid.Empty) { customer.Id = Guid.NewGuid(); } //var customer = var customerId = await _customerService.AddCustomer(customer); if (customerId != Guid.Empty) { return(CreatedAtRoute("CreateCustomer", new { Id = customerId }, _mapper.Map <CustomerForDisplayDTO>(customer))); } else { return(NotFound()); } } catch (Exception ex) { return(BadRequest()); } } return(BadRequest()); }
public async Task <IActionResult> AddCustomer(CustomerForCreationDTO custDto) { var customer = _mapper.Map <Customer>(custDto); _repo.add(customer); if (await _repo.SaveAll()) { return(CreatedAtRoute("GetCustomer", new { id = customer.CustomerId }, customer)); } throw new Exception("Creating the message failed to save"); }
public async Task Test10_AddCustomer_InvalidObjectPassed_PhonePropertyNotValidPhone_ReturnsBadRequest() { // Arrange var newCustomer = new CustomerForCreationDTO() { Id = Guid.NewGuid(), Name = "Frank", Age = 41, Address = "Test Address", Email = "*****@*****.**", Phone = "abcd1234" }; var json = JsonConvert.SerializeObject(newCustomer); var payload = new StringContent(json, Encoding.UTF8, "application/json"); // Act var response = await _client.PostAsync(_url, payload); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
public async Task Test07_AddCustomer_InvalidObjectPassed_NameExceedsMaximumLength_ReturnsBadRequest() { // Arrange var newCustomer = new CustomerForCreationDTO() { Id = Guid.NewGuid(), Name = "Name property exceeds the maximum number of characters", Age = 44, Address = "Test Address", Email = "*****@*****.**", Phone = "519-345-1234" }; var json = JsonConvert.SerializeObject(newCustomer); var payload = new StringContent(json, Encoding.UTF8, "application/json"); // Act var response = await _client.PostAsync(_url, payload); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }