Skip to content

Commit

Permalink
Merge pull request #146 from rpuigm/feature/UnitTests
Browse files Browse the repository at this point in the history
Feature/unit tests
  • Loading branch information
rpuigm authored Feb 16, 2024
2 parents d7a3d23 + 34796dc commit cd95d69
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<Cesta> 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));
}

}
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -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<CestaEntity> listCestasEntity= new ArrayList<>();
listCestasEntity = createListCestaEntitiesByRandom();
when(CestaServiceI.listaCestas()).thenReturn(listCestasEntity);
List<Cesta> resultado = cestaController.listaCestas();
assertEquals(listCestasEntity, resultado);

}

private Cesta newCestabyRandom (){
Cesta cesta = new Cesta();
cesta.setId(1L);
cesta.setIdUsuario(2L);
List<ProductoCantidad> 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<CestaEntity> createListCestaEntitiesByRandom(){
List<CestaEntity> 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<Cesta> createListCesta(){
List<Cesta> cesta = new ArrayList<>();
cesta.add(newCestabyRandom());
cesta.add(newCestabyRandom());
cesta.add(newCestabyRandom());
cesta.add(newCestabyRandom());
return cesta;

}


}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit cd95d69

Please sign in to comment.