public async Task Validar_PostOfertas()
        {
            Oferta nuevo = new Oferta
            {
                Id          = 3,
                AncianoId   = 3,
                Estado      = "activo",
                Direccion   = "Direccion test",
                Descripcion = "Descripcion test"
            };
            OfertaCreateDTO nuevoCreate = new OfertaCreateDTO
            {
                Direccion   = "DireccionTest",
                Descripcion = "DescripcionTest",
                AncianoId   = 3
            };
            var mockMapper = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new MappingProfile());
            });
            var mapper     = mockMapper.CreateMapper();
            var repository = new Mock <IOfertaRepository>();

            repository.Setup(x => x.Save(It.IsAny <Oferta>())).ReturnsAsync(nuevo).Verifiable();
            var controller = new OfertasController(repository.Object, mapper);

            //act
            var actionResult = await controller.Post(nuevoCreate);

            var result = actionResult.Result as CreatedAtRouteResult;
            var dto    = result.Value as OfertaDTO;

            Assert.Equal(3, dto.Id);
        }
        public async Task <ActionResult <OfertaDTO> > Post([FromBody] OfertaCreateDTO ofertaCreate)
        {
            var oferta    = mapper.Map <Oferta>(ofertaCreate);
            var ofertaDTO = mapper.Map <OfertaDTO>(await repository.Save(oferta));

            return(new CreatedAtRouteResult("ObtenerOfertav1", new { id = oferta.Id }, ofertaDTO));
        }
        public async Task <ActionResult <OfertaDTO> > Put(int id, [FromBody] OfertaCreateDTO ofertaCreate)
        {
            var oferta     = mapper.Map <Oferta>(ofertaCreate);
            var ofertaRepo = await repository.Update(id, oferta);

            if (ofertaRepo == null)
            {
                return(NotFound());
            }
            var ofertaDTO = mapper.Map <OfertaDTO>(ofertaRepo);

            return(new CreatedAtRouteResult("ObtenerOfertav1", new { id = oferta.Id }, ofertaDTO));
        }