Пример #1
0
        public void SetUp()
        {
            // Boilerplate
            _fixture = new Fixture();

            //Prevent fixture from generating from entity circular references
            _fixture.Behaviors.Add(new OmitOnRecursionBehavior(1));

            // Mock setup
            _context = new DatabaseContext(new DbContextOptionsBuilder <DatabaseContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);

            // Sut instantiation
            _addCustomerRequestValidator = new AddCustomerRequestValidator(_context);
        }
Пример #2
0
        public async Task <ActionResult> Post([FromBody] AddCustomerRequest request)
        {
            /*
             * Assumption: Errors that I return from here are not really in a proper structure, in order to handle more complex case, I will need to define a proper json for Error return
             * For example:
             * {
             * "errors": [
             *  {
             *    "code": "001",
             *    "message": "some error here"
             *  },
             *  {
             *    "code": "002",
             *    "message": "some error here"
             *  }
             * ]
             * }
             */
            var validator        = new AddCustomerRequestValidator();
            var validationResult = validator.Validate(request);

            if (!validationResult.IsValid)
            {
                return(BadRequest(new { ErrorMessage = validationResult.ErrorMessage }));
            }

            var customerEntity = _mapper.Map <CustomerEntity>(request);

            var result = await _customerService.AddCustomerAsync(customerEntity);

            if (!result.IsSuccessful)
            {
                return(BadRequest(new { ErrorMessage = result.ErrorMessage }));
            }

            var customer = _mapper.Map <Customer>(result.Result);

            return(Created($"{Request.Path}/{result.Result.Id}", customer));
        }
 public AddCustomerRequestValidatorTests()
 {
     sut = new AddCustomerRequestValidator();
 }