Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package xyz.oeste.libreria.services;
- import javax.validation.Validation;
- import javax.validation.Validator;
- import org.junit.Before;
- import org.junit.Test;
- import xyz.oeste.libreria.exceptions.CategoriaExistenteException;
- import xyz.oeste.libreria.exceptions.PropiedadNoValidaException;
- import xyz.oeste.libreria.model.Categoria;
- import xyz.oeste.libreria.repository.CategoriaRepository;
- import static org.hamcrest.CoreMatchers.equalTo;
- import static org.hamcrest.CoreMatchers.is;
- import static org.junit.Assert.assertThat;
- import static org.junit.Assert.fail;
- import static org.mockito.Mockito.*;
- public class CategoriaServiceTest {
- private CategoriaService categoriaService;
- private CategoriaRepository categoriaRespository;
- private Validator validator;
- @Before
- public void initTestCase() {
- validator = Validation.buildDefaultValidatorFactory().getValidator();
- //Objetos dummy o de prueba (MOCKITO) el cual sirve para simular los respositorios
- categoriaRespository = mock(CategoriaRepository.class);
- categoriaService = new CategoriaService(validator,categoriaRespository);
- }
- @Test
- public void agregarNombreNulo() {
- agregarConNombreInvalido(null);
- }
- @Test
- public void agregarNombreCorto() {
- agregarConNombreInvalido("a");
- }
- @Test
- public void agregarNombreLargo() {
- agregarConNombreInvalido("Esta categoria tiene un nombre muy largo");
- }
- @Test(expected=CategoriaExistenteException.class)
- public void agregarCategoriaConNombreExistente() {
- //Método de Mockito
- when(categoriaRespository.existe(new Categoria("Java"))).thenReturn(true);
- categoriaService.agregar(new Categoria("Java"));
- }
- private void agregarConNombreInvalido(String nombre) {
- try {
- categoriaService.agregar(new Categoria(nombre));
- fail("No validó correctamente las propiedades");
- }catch(PropiedadNoValidaException e) {
- System.out.println(e);
- assertThat(e.getNombrePropiedad(), is(equalTo("nombre")));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement