예제 #1
0
        public async Task BadRequest_When_Called_Post_Without_Address()
        {
            var model = new CustomerInsertViewModel
            {
                Name         = "Customer01",
                Email        = "*****@*****.**",
                PhoneContact = new List <CustomerPhoneContactInsertViewModel>
                {
                    new CustomerPhoneContactInsertViewModel
                    {
                        Number    = "999999999",
                        PhoneType = EnumPhoneType.Landline
                    }
                }
            };

            _customerController.ModelState.AddModelError("Address", "required");
            var result = await _customerController.Post(model);

            Assert.True(result is BadRequestObjectResult);
            var badRequestResult = (BadRequestObjectResult)result;

            Assert.True(badRequestResult.Value is ErrorResponseDto);

            var resultModel = (ErrorResponseDto)badRequestResult.Value;

            Assert.Single(resultModel.Errors);
            Assert.Contains(resultModel.Errors, a => a.Field == "Address");
            Assert.Contains(resultModel.Errors, a => a.Messages.All(all => all.ToLower().Contains("required")));
        }
예제 #2
0
        public async Task BadRequest_When_Called_Post_Without_PhoneNumber()
        {
            var model = new CustomerInsertViewModel
            {
                Name    = "Customer01",
                Email   = "*****@*****.**",
                Address = new List <CustomerAddressInsertViewModel>
                {
                    new CustomerAddressInsertViewModel
                    {
                        City    = "AnyCity",
                        State   = "AnyState",
                        Country = "AnyCountry",
                        Street  = "AnyStreet",
                        ZipCode = "00000-000",
                        Number  = 000
                    }
                }
            };

            _customerController.ModelState.AddModelError("PhoneNumber", "required");
            var result = await _customerController.Post(model);

            Assert.True(result is BadRequestObjectResult);
            var badRequestResult = (BadRequestObjectResult)result;

            Assert.True(badRequestResult.Value is ErrorResponseDto);

            var resultModel = (ErrorResponseDto)badRequestResult.Value;

            Assert.Single(resultModel.Errors);
            Assert.Contains(resultModel.Errors, a => a.Field == "PhoneNumber");
            Assert.Contains(resultModel.Errors, a => a.Messages.All(all => all.ToLower().Contains("required")));
        }
예제 #3
0
        public async Task BadRequest_When_Called_Post_With_Email_Already_Registered()
        {
            await When_Called_Post_Should_Be_Created();

            var model = new CustomerInsertViewModel
            {
                Name    = "Customer 1",
                Email   = "*****@*****.**",
                Address = new List <CustomerAddressInsertViewModel>
                {
                    new CustomerAddressInsertViewModel
                    {
                        City    = "AnyCity",
                        State   = "AnyState",
                        Country = "AnyCountry",
                        Street  = "AnyStreet",
                        ZipCode = "00000-000",
                        Number  = 000
                    }
                },
                PhoneContact = new List <CustomerPhoneContactInsertViewModel>
                {
                    new CustomerPhoneContactInsertViewModel
                    {
                        Number    = "999999999",
                        PhoneType = EnumPhoneType.Landline
                    }
                }
            };
            await Assert.ThrowsAsync <EntityValidationException>(async() => await _customerController.Post(model));
        }
예제 #4
0
        public async Task BadRequest_When_Called_Post_With_Invalid_Email()
        {
            var model = new CustomerInsertViewModel
            {
                Name    = "Customer 1",
                Email   = "invalidemailtest",
                Address = new List <CustomerAddressInsertViewModel>
                {
                    new CustomerAddressInsertViewModel
                    {
                        City    = "AnyCity",
                        State   = "AnyState",
                        Country = "AnyCountry",
                        Street  = "AnyStreet",
                        ZipCode = "00000-000",
                        Number  = 000
                    }
                },
                PhoneContact = new List <CustomerPhoneContactInsertViewModel>
                {
                    new CustomerPhoneContactInsertViewModel
                    {
                        Number    = "999999999",
                        PhoneType = EnumPhoneType.Landline
                    }
                }
            };

            _customerController.ModelState.AddModelError("Email", "Invalid Email");
            var result = await _customerController.Post(model);

            Assert.True(result is BadRequestObjectResult);
            var badRequestResult = (BadRequestObjectResult)result;

            Assert.True(badRequestResult.Value is ErrorResponseDto);

            var resultModel = (ErrorResponseDto)badRequestResult.Value;

            Assert.Single(resultModel.Errors);
            Assert.Contains(resultModel.Errors, a => a.Field == "Email");
        }
예제 #5
0
        public async Task <Guid> When_Called_Post_Should_Be_Created()
        {
            await Should_Delete_All_Registers();

            var model = new CustomerInsertViewModel
            {
                Name    = "Customer 1",
                Email   = "*****@*****.**",
                Address = new List <CustomerAddressInsertViewModel>
                {
                    new CustomerAddressInsertViewModel
                    {
                        City    = "AnyCity",
                        State   = "AnyState",
                        Country = "AnyCountry",
                        Street  = "AnyStreet",
                        ZipCode = "00000-000",
                        Number  = 000
                    }
                },
                PhoneContact = new List <CustomerPhoneContactInsertViewModel>
                {
                    new CustomerPhoneContactInsertViewModel
                    {
                        Number    = "999999999",
                        PhoneType = EnumPhoneType.Landline
                    }
                }
            };

            var result = await _customerController.Post(model);

            var response = (ObjectResult)result;

            Assert.True(response.Value is Guid);
            Assert.True(response.StatusCode.Equals(201));
            return((Guid)response.Value);
        }
 public ActionResult InsertWithClientValidation(CustomerInsertViewModel model)
 {
     return(View(model));
 }
 public ActionResult Insert(CustomerInsertViewModel model)
 {
     return(View(model));
 }