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);
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 4
0
        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);
        }