diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java index eeb167c..20369d1 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java @@ -2,6 +2,8 @@ import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -12,34 +14,37 @@ import net.ostemplate.app.productos.mappers.CestaMapper; import net.ostemplate.app.productos.models.entity.Cesta; -import net.ostemplate.app.productos.models.service.CestaServiceImpl; +import net.ostemplate.app.productos.models.service.CestaServiceI; @RestController public class CestaController { + Logger logger = LoggerFactory.getLogger(CestaController.class); + @Autowired - private CestaServiceImpl cestaServiceImpl; + private CestaServiceI cestaServiceI; @GetMapping("/cesta/recupera-cesta/{idUsuario}") public Cesta recuperaCestaPorIdUsuario (@PathVariable Long idUsuario) { - return cestaServiceImpl.buscarCestaPorUsuarioId(idUsuario); + return cestaServiceI.buscarCestaPorUsuarioId(idUsuario); } @PostMapping("/cesta/actualiza-cesta") public Cesta actualizaCesta(@RequestBody Cesta cesta) { - System.out.println("numero productos en cesta"+cesta.getProductoCantidad().size()); - return cestaServiceImpl.actualizaCesta(CestaMapper.mapToCestaEntityFromCesta(cesta)); + logger.debug("numero productos en cesta"+cesta.getProductoCantidad().size()); + return CestaMapper.mapToCestaFromCestaEntity( + cestaServiceI.actualizaCesta(CestaMapper.mapToCestaEntityFromCesta(cesta))); } @GetMapping("/cesta/listacestas") public List listaCestas(){ - return CestaMapper.mapToListCestaFromListCestaEntity(cestaServiceImpl.listaCestas()) ; + return CestaMapper.mapToListCestaFromListCestaEntity(cestaServiceI.listaCestas()) ; } @DeleteMapping("/cesta/elimina-cesta") public void recuperaCestaPorIdUsuario (@RequestBody Cesta cesta) { - cestaServiceImpl.eliminaCesta(CestaMapper.mapToCestaEntityFromCesta(cesta)); + cestaServiceI.eliminaCesta(CestaMapper.mapToCestaEntityFromCesta(cesta)); } } diff --git a/ectemplate-servicio-productos/src/test/java/net/ostemplate/app/productos/controllers/CestaControllerTest.java b/ectemplate-servicio-productos/src/test/java/net/ostemplate/app/productos/controllers/CestaControllerTest.java index a0f9784..0d61dc1 100644 --- a/ectemplate-servicio-productos/src/test/java/net/ostemplate/app/productos/controllers/CestaControllerTest.java +++ b/ectemplate-servicio-productos/src/test/java/net/ostemplate/app/productos/controllers/CestaControllerTest.java @@ -1,17 +1,31 @@ package net.ostemplate.app.productos.controllers; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.RandomUtils; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import net.ostemplate.app.productos.mappers.CestaMapper; +import net.ostemplate.app.productos.models.entity.Cesta; +import net.ostemplate.app.productos.models.entity.CestaEntity; +import net.ostemplate.app.productos.models.entity.ProductoCantidad; +import net.ostemplate.app.productos.models.service.CestaServiceI; @ExtendWith(MockitoExtension.class) public class CestaControllerTest { + @Mock + private CestaServiceI CestaServiceI; + @InjectMocks private CestaController cestaController; @@ -21,4 +35,79 @@ private void recuperaCestaPorIdUsuarioTest() { CestaMapper.mapToCesta()); } + @Test + public void testRecuperaCestaPorIdUsuario() { + Long idUsuario = 1L; + Cesta cesta = new Cesta(); // crea una cesta ficticia para el test + when(CestaServiceI.buscarCestaPorUsuarioId(idUsuario)).thenReturn(cesta); + Cesta resultado = cestaController.recuperaCestaPorIdUsuario(idUsuario); + assertEquals(cesta, resultado); + + } + + @Test + public void testActualizaCesta() { + Cesta cesta = newCestabyRandom(); // crea una cesta ficticia para el test + CestaEntity cestaEntity= CestaMapper.mapToCestaEntityFromCesta(cesta); + when(CestaServiceI.actualizaCesta(Mockito.any(CestaEntity.class))) + .thenReturn(cestaEntity); + Cesta response = cestaController.actualizaCesta(cesta); + assertEquals(cestaEntity, response); + + } + + @Test + public void testListaCestas() { + List listCestasEntity= new ArrayList<>(); + listCestasEntity = createListCestaEntitiesByRandom(); + when(CestaServiceI.listaCestas()).thenReturn(listCestasEntity); + List resultado = cestaController.listaCestas(); + assertEquals(listCestasEntity, resultado); + + } + + private Cesta newCestabyRandom (){ + Cesta cesta = new Cesta(); + cesta.setId(1L); + cesta.setIdUsuario(2L); + List listaProductoCantidad = new ArrayList <>(); + listaProductoCantidad.add(newProductoCantidadByRandom()); + listaProductoCantidad.add(newProductoCantidadByRandom()); + listaProductoCantidad.add(newProductoCantidadByRandom()); + listaProductoCantidad.add(newProductoCantidadByRandom()); + cesta.setProductoCesta(listaProductoCantidad); + return cesta; + + } + + private ProductoCantidad newProductoCantidadByRandom(){ + ProductoCantidad productoCantidad = new ProductoCantidad(); + productoCantidad.setCantidad(RandomUtils.nextLong(0,100)); + productoCantidad.setId(RandomUtils.nextLong(0, 100)); + productoCantidad.setIdProducto(RandomUtils.nextLong()); + return productoCantidad; + + } + + private List createListCestaEntitiesByRandom(){ + List listCestaEntity = new ArrayList<>(); + listCestaEntity.add(CestaMapper.mapToCestaEntityFromCesta(newCestabyRandom())); + listCestaEntity.add(CestaMapper.mapToCestaEntityFromCesta(newCestabyRandom())); + listCestaEntity.add(CestaMapper.mapToCestaEntityFromCesta(newCestabyRandom())); + listCestaEntity.add(CestaMapper.mapToCestaEntityFromCesta(newCestabyRandom())); + return listCestaEntity; + + } + + private List createListCesta(){ + List cesta = new ArrayList<>(); + cesta.add(newCestabyRandom()); + cesta.add(newCestabyRandom()); + cesta.add(newCestabyRandom()); + cesta.add(newCestabyRandom()); + return cesta; + + } + + } diff --git a/ectemplate-servicio-productos/src/test/java/net/ostemplate/app/productos/controllers/ProductoControllerTest.java b/ectemplate-servicio-productos/src/test/java/net/ostemplate/app/productos/controllers/ProductoControllerTest.java index 79299d8..3b2a10b 100644 --- a/ectemplate-servicio-productos/src/test/java/net/ostemplate/app/productos/controllers/ProductoControllerTest.java +++ b/ectemplate-servicio-productos/src/test/java/net/ostemplate/app/productos/controllers/ProductoControllerTest.java @@ -1,5 +1,7 @@ package net.ostemplate.app.productos.controllers; +import static org.junit.Assert.*; + import java.io.IOException; import java.io.InputStream; import java.nio.file.Path; @@ -56,6 +58,15 @@ public void subidaImagen() { } + @Test + public void detalleTest(){ + Producto producto = mapToProductoDummy(); + Mockito.when(productoServiceI.findById(Mockito.anyLong())) + .thenReturn(producto); + assertEquals(productoController.detalle(1L),producto); + + } + private Producto mapToProductoDummy() { EasyRandom generator = new EasyRandom(); Producto producto = generator.nextObject(Producto.class);