/* RED
* Dado: un usuario en la pantalla de registo ingresa ("Ana", tipo de vegetariano
"vegano", sin alergias, y escribe nivel de cocina prinicipiante )
* Entonces: cuando se registra en el sistema
* Entonces: el usuario debe ser registrado correctamente
*/
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.List;
/**
* The test class UsuarioTest.
*
* @author (your name)
* @version (a version number or a date)
*/
public class UsuarioTest {
@Test
public void testRegistroExitoso(){
Usuario usuario = new Usuario("Ana", "vegano", List.of(), "principiante");
RegistrarUsuario registro = new RegistrarUsuario();
registro.registrarUsuario(usuario);
assertEquals(1,registro.getUsuariosRegistrados().size());
}
}
GREEN
import java.util.List;
public class Usuario
{
private String nombre;
private String tipoDeVegetariano;
private List<String> alergias;
private String nivel;
public Usuario (String nombre, String tipoDeVegetariano,
List<String> alergias, String nivelHabilidadCulinaria){
this.nombre=nombre;
this.tipoDeVegetariano=tipoDeVegetariano;
this.alergias=alergias;
this.nivel=nivelHabilidadCulinaria;
}
}
import java.util.ArrayList;
public class RegistrarUsuario
{
private ArrayList<Usuario> ListaUsuarios = new ArrayList<>();
public void registrarUsuario(Usuario usuario){
ListaUsuarios.add(usuario);
}
public ArrayList<Usuario> getUsuariosRegistrados(){
return ListaUsuarios;
}
}
TEST 2
* TEst 2
* Dado: Un usuario en la pantalla de registro
* Cuando: ingresa nombre ""
* Entonces: se lanza una excepcion el nombre no puede estar vacio
*/
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.List;
public class UsuarioTest {
@Test
public void testRegistroExitoso(){
Usuario usuario = new Usuario("Ana", "vegano", List.of(), "principiante");
RegistrarUsuario registro = new RegistrarUsuario();
registro.registrarUsuario(usuario);
assertEquals(1,registro.getUsuariosRegistrados().size());
}
@Test
public void testRegistroNombreVacio(){
RegistrarUsuario registro = new RegistrarUsuario();
Usuario usuario = new Usuario("", "vegano", List.of(), "principiante");
try {
registro.registrarUsuario(usuario);
fail("Se esperaba una IllegalArgumentException pero no se lanzo");
} catch (IllegalArgumentException e){
assertEquals("el nombre no puede estar vacio", e.getMessage());
}
}
GREEN
import java.util.List;
/**
* Write a description of class Usuario here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Usuario {
private String nombre;
private String tipoDeVegetariano;
private List<String> alergias;
private String nivel;
public Usuario (String nombre, String tipoDeVegetariano,
List<String> alergias, String nivelHabilidadCulinaria){
validarNombre(nombre);
this.nombre=nombre;
this.tipoDeVegetariano=tipoDeVegetariano;
this.alergias=alergias;
this.nivel=nivelHabilidadCulinaria;
}
public void validarNombre(String nombre){
if(nombre == null || nombre.trim().isEmpty()){
throw new IllegalArgumentException("el nombre no puede estar vacio");
}
}
public String getNombre(){
return nombre;
}
REFACTOR
eliminar el codigo duplicado
* TEst 2
* Dado: Un usuario en la pantalla de registro
* Cuando: ingresa nombre ""
* Entonces: se lanza una excepcion el nombre no puede estar vacio
*
* Test 3:
* Dado: Un usuario se registra como vegano
* cuando: se intenta registrarIngrediente("leche");
* entonces: el sistema lanzara una excepcion ("ingrediente no vegano")
*/
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.List;
/**
* The test class UsuarioTest.
*
* @author (your name)
* @version (a version number or a date)
*/
public class UsuarioTest {
private RegistrarUsuario registro;
@BeforeEach
public void setUp(){
registro = new RegistrarUsuario();
}
@Test
public void testRegistroExitoso(){
Usuario usuario = new Usuario("Ana", "vegano", List.of(), "principiante");
registro.registrarUsuario(usuario);
assertEquals(1,registro.getUsuariosRegistrados().size());
}
@Test
public void testRegistroNombreVacio(){
try {
Usuario usuario = new Usuario("", "vegano", List.of(), "principiante");
registro.registrarUsuario(usuario);
fail("Se esperaba una IllegalArgumentException pero no se lanzo");
} catch (IllegalArgumentException e){
assertEquals("el nombre no puede estar vacio", e.getMessage());
}
}
RED
/* RED
* Dado: un usuario en la pantalla de registo ingresa ("Ana", tipo de vegetariano
"vegano", sin alergias, y escribe nivel de cocina prinicipiante )
* Entonces: cuando se registra en el sistema
* Entonces: el usuario debe ser registrado correctamente
*
* TEst 2
* Dado: Un usuario en la pantalla de registro
* Cuando: ingresa nombre ""
* Entonces: se lanza una excepcion el nombre no puede estar vacio
*
* Test 3:
* Dado: Un usuario se registra como vegano
* cuando: se intenta registrarIngrediente("leche");
* entonces: el sistema lanzara una excepcion ("ingrediente no vegano")
*/
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.List;
/**
* The test class UsuarioTest.
*
* @author (your name)
* @version (a version number or a date)
*/
public class UsuarioTest {
private RegistrarUsuario registro;
@BeforeEach
public void setUp(){
registro = new RegistrarUsuario();
}
@Test
public void testRegistroExitoso(){
Usuario usuario = new Usuario("Ana", "vegano", List.of(), "principiante");
registro.registrarUsuario(usuario);
assertEquals(1,registro.getUsuariosRegistrados().size());
}
@Test
public void testRegistroNombreVacio(){
try {
Usuario usuario = new Usuario("", "vegano", List.of(), "principiante");
registro.registrarUsuario(usuario);
fail("Se esperaba una IllegalArgumentException pero no se lanzo");
} catch (IllegalArgumentException e){
assertEquals("el nombre no puede estar vacio", e.getMessage());
}
}
@Test
public void testNoRegistrarIngredienteNoVegano(){
Usuario usuario = new Usuario("Ana", "vegano", List.of(), "principiante");
try {
usuario.registrarIngrediente("leche");
fail("se esperaba una IllegalArgumentException pero no se lanzo");
} catch (IllegalArgumentException e){
assertEquals("ingrediente no vegano", e.getMessage());
}
}
GREEN
import java.util.List;
/**
* Write a description of class Usuario here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Usuario {
private String nombre;
private String tipoDeVegetariano;
private List<String> alergias;
private String nivel;
public Usuario (String nombre, String tipoDeVegetariano,
List<String> alergias, String nivelHabilidadCulinaria){
validarNombre(nombre);
this.nombre=nombre;
this.tipoDeVegetariano=tipoDeVegetariano;
this.alergias=alergias;
this.nivel=nivelHabilidadCulinaria;
}
public void validarNombre(String nombre){
if(nombre == null || nombre.trim().isEmpty()){
throw new IllegalArgumentException("el nombre no puede estar vacio");
}
}
public String getNombre(){
return nombre;
}
public void registrarIngrediente(String ingrediente){
if(tipoDeVegetariano.equalsIgnoreCase("vegano")){
List<String> noVegano = List.of("leche","queso","yogur","huevo");
if (noVegano.contains(ingrediente.toLowerCase())){
throw new IllegalArgumentException("ingrediente no vegano");
}
}
}
}
REFCATOR
por el momento no hay nada que refactorizar