Testing finalizado

parent e7c4f4be
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
class BibliotecaTest { class BibliotecaTest {
Biblioteca biblioteca;
@BeforeEach
void setUp() {
biblioteca = Biblioteca.ObtenerInstancia();
}
@Test @Test
void comprobarUsuario() { void comprobarUsuario() {
Lector l1 = new Lector();
Lector l2 = new Lector();
l2.set_numPenalizaciones(1);
l2.set_fechaPenalizacion(LocalDate.of(2024, 2, 12));
biblioteca.addLector(l1, 123);
biblioteca.addLector(l2, 333);
assertAll( assertAll(
() -> assertEquals(12,12) () -> assertTrue(biblioteca.ComprobarUsuario(123), "El usuario existe y no está penalizado"),
() -> assertFalse(biblioteca.ComprobarUsuario(899), "El usuario no existe"),
() -> assertFalse(biblioteca.ComprobarUsuario(333), "El usuario existe y está penalizado")
); );
} }
@Test @Test
void comprobarSacarLibro() { void comprobarSacarLibro() {
Ejemplar e1 = new Ejemplar();
biblioteca.addEjemplar(e1, 123);
Ejemplar e2 = new Ejemplar();
e2.set_estado("deteriorado");
biblioteca.addEjemplar(e2, 234);
Ejemplar e3 = new Ejemplar();
e3.set_numReservas(1);
biblioteca.addEjemplar(e3, 557);
Ejemplar e4 = new Ejemplar();
e4.set_numReservas(1);
e4.set_estado("deteriorado");
biblioteca.addEjemplar(e4, 678);
assertAll( assertAll(
() -> assertEquals(12,12) () -> assertTrue(biblioteca.ComprobarSacarLibro(123), "ISBN existente, estado no deteriorado y disponible"),
() -> assertFalse(biblioteca.ComprobarSacarLibro(234), "ISBN existente, estado deteriorado y disponible"),
() -> assertFalse(biblioteca.ComprobarSacarLibro(321), "ISBN no existente"),
() -> assertFalse(biblioteca.ComprobarSacarLibro(557), "ISBN existente, estado no deteriorado y no disponible"),
() -> assertFalse(biblioteca.ComprobarSacarLibro(678), "ISBN existente, estado deteriorado y no disponible")
); );
} }
} }
\ No newline at end of file
...@@ -3,18 +3,44 @@ import java.time.format.DateTimeFormatter; ...@@ -3,18 +3,44 @@ import java.time.format.DateTimeFormatter;
import java.util.HashMap; import java.util.HashMap;
public class Biblioteca { public class Biblioteca {
public HashMap<Integer,Lector> usuarios; public HashMap<Integer,Lector> usuarios = new HashMap<>();
private Biblioteca _instancia; private static Biblioteca instancia;
public Catalogo _unnamed_Catalogo_18; public Catalogo catalogo = new Catalogo();
public Usuario _hay; public int _hay = 0;
public EstrategiaHistorial _unnamed_EstrategiaHistorial_; public EstrategiaHistorial EstrategiaHistorial = new EstrategiaHistorial() {
@Override
public void Anadir() {
}
@Override
public void Consultar() {
}
};
private Biblioteca() { private Biblioteca() {
throw new UnsupportedOperationException();
} }
public Biblioteca ObtenerInstancia() { public static Biblioteca ObtenerInstancia() {
throw new UnsupportedOperationException(); if (instancia == null) {
instancia = new Biblioteca();
}
return instancia;
}
public void addLector(Lector l, int id){
usuarios.put(id, l);
_hay++;
}
public void addEjemplar(Ejemplar e, int ISBN){
catalogo._controla.put(ISBN, e);
}
public Lector getLector(int id){
return usuarios.get(id);
} }
public Boolean ComprobarUsuario(Integer idUsuario) { public Boolean ComprobarUsuario(Integer idUsuario) {
...@@ -24,7 +50,7 @@ public class Biblioteca { ...@@ -24,7 +50,7 @@ public class Biblioteca {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
String fechaActual = fecha.format(formatter); String fechaActual = fecha.format(formatter);
LocalDate fechaPenalizacion = LocalDate.parse(usuarios.get(idUsuario).get_fechaPenalizacion(), formatter); LocalDate fechaPenalizacion = usuarios.get(idUsuario).get_fechaPenalizacion();
LocalDate fechaLocalActual = LocalDate.parse(fechaActual, formatter); LocalDate fechaLocalActual = LocalDate.parse(fechaActual, formatter);
return !fechaPenalizacion.isAfter(fechaLocalActual); return !fechaPenalizacion.isAfter(fechaLocalActual);
...@@ -57,8 +83,8 @@ public class Biblioteca { ...@@ -57,8 +83,8 @@ public class Biblioteca {
} }
public Boolean ComprobarSacarLibro(Integer ISBN) { public Boolean ComprobarSacarLibro(Integer ISBN) {
if(_unnamed_Catalogo_18._controla.containsKey(ISBN)){ if(catalogo._controla.containsKey(ISBN)){
Ejemplar ejemplar = _unnamed_Catalogo_18._controla.get(ISBN); Ejemplar ejemplar = catalogo._controla.get(ISBN);
return !ejemplar.get_estado().equals("deteriorado") && ejemplar.get_numReservas() == 0; return !ejemplar.get_estado().equals("deteriorado") && ejemplar.get_numReservas() == 0;
}else }else
return false; return false;
......
...@@ -4,5 +4,8 @@ public class Catalogo { ...@@ -4,5 +4,8 @@ public class Catalogo {
private Integer _numeroLibros; private Integer _numeroLibros;
private Boolean _librosMalEstado; private Boolean _librosMalEstado;
public Biblioteca _unnamed_Biblioteca_24; public Biblioteca _unnamed_Biblioteca_24;
public HashMap<Integer,Ejemplar> _controla; public HashMap<Integer,Ejemplar> _controla = new HashMap<>();
public Catalogo() {
}
} }
\ No newline at end of file
...@@ -2,7 +2,7 @@ public class Ejemplar extends Libro { ...@@ -2,7 +2,7 @@ public class Ejemplar extends Libro {
private String _iSBN; private String _iSBN;
private Integer _idInventario; private Integer _idInventario;
private String _fechaCompra; private String _fechaCompra;
private String _estado; private String _estado = "";
private Boolean _subjectstate; private Boolean _subjectstate;
private Integer _numReservas; private Integer _numReservas;
public Sancion _unnamed_Sancion_6; public Sancion _unnamed_Sancion_6;
......
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class Lector extends Usuario { public class Lector extends Usuario {
private String _tipo; private String _tipo = "";
private String _estado; private String _estado = "";
private String _fechaPenalizacion; private LocalDate _fechaPenalizacion;
private Integer _numPenalizaciones; private Integer _numPenalizaciones = 0;
private List<String> _historialPrestamos; private List<String> _historialPrestamos = new ArrayList<>();
public Sancion _sancion; public Sancion _sancion = new Sancion();
public EstrategiaHistorial _estrategiaHistorial; public EstrategiaHistorial _estrategiaHistorial = new EstrategiaHistorial() {
@Override
public void Anadir() {
}
@Override
public void Consultar() {
}
};
public void NotificarEstado() { public void NotificarEstado() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
...@@ -37,11 +49,11 @@ public class Lector extends Usuario { ...@@ -37,11 +49,11 @@ public class Lector extends Usuario {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
public String get_fechaPenalizacion() { public LocalDate get_fechaPenalizacion() {
return _fechaPenalizacion; return _fechaPenalizacion;
} }
public void set_fechaPenalizacion(String _fechaPenalizacion) { public void set_fechaPenalizacion(LocalDate _fechaPenalizacion) {
this._fechaPenalizacion = _fechaPenalizacion; this._fechaPenalizacion = _fechaPenalizacion;
} }
......
import java.util.Observer; import java.util.Observer;
public abstract class Libro { public class Libro {
private int _iD; private int _iD;
private String _titulo; private String _titulo;
private Integer _ano; private Integer _ano;
......
public abstract class Usuario { public abstract class Usuario {
private String _email; private String _email = "";
private Integer _idUsuario; private Integer _idUsuario = 0;
private String _nombre; private String _nombre = "";
private String _tipoUsuario; private String _tipoUsuario = "";
private String _contrasena; private String _contrasena = "";
private String _direccion; private String _direccion = "";
public Libro _libro; public Libro _libro = new Libro();
public Biblioteca _hay; public Biblioteca _hay = null;
public Usuario() { public Usuario() {
throw new UnsupportedOperationException();
} }
public abstract void NotificarEstado(); public abstract void NotificarEstado();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment