diff --git a/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/Mediensuchen.java b/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/Mediensuchen.java index af38a44..5c683ba 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/Mediensuchen.java +++ b/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/Mediensuchen.java @@ -74,7 +74,7 @@ public class Mediensuchen { } - public Collection baldVerfügbareMedien(ArrayList ausleihe) { + public ArrayList baldVerfügbareMedien(ArrayList ausleihe) { LocalDate heutigesDatum = LocalDate.now(); return ausleihe.stream() diff --git a/Bibliotheksverwaltungssystem/src/domain/Testate/AusleihenTest.java b/Bibliotheksverwaltungssystem/src/domain/Testate/AusleihenTest.java new file mode 100644 index 0000000..fac4d3d --- /dev/null +++ b/Bibliotheksverwaltungssystem/src/domain/Testate/AusleihenTest.java @@ -0,0 +1,66 @@ +package domain.Testate; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import domain.fassade.BibSystem; + +class AusleihenTest { + + private BibSystem bib; + + @BeforeEach + void setUp() throws Exception { + this.bib = new BibSystem(); + } + + @Disabled + void testAusleiheFris() throws Exception { + + bib.userRegistrieren("obai", "student", 15, "nein"); + bib.userAnmelden("K1001"); + double gerbühren = bib.mediumAusleihen("K1001", "B001"); + assertEquals(0.0,gerbühren); + + // das ist ein Test für das Testate: + String ausleihBeginn = "2024-11-01"; + String ausleihEnde = "2024-12-01"; + String heutigesDatum = "2024-12-05"; + double überfälligeGebühren = bib.datumÄndern("B001", ausleihBeginn, ausleihEnde, heutigesDatum); + assertEquals(4.0,überfälligeGebühren); + + // Gebühren bezahlen (Admin) + assertTrue(bib.adminAnmelden("A1000")); + assertEquals(4.0,bib.getgbührenBenutzer("K1001")); + assertTrue(bib.gebührenVerbuchen("K1001")); + } + + @Test + void testMitJahresGebühren() throws Exception { + + bib.userRegistrieren("obai", "student", 15, "nein"); + bib.userAnmelden("K1001"); + double gerbühren = bib.mediumAusleihen("K1001", "B001"); + assertEquals(0.0,gerbühren); + + // das ist eine Test für das Testate: + String ausleihBeginn = "2024-11-01"; + String ausleihEnde = "2024-12-01"; + String heutigesDatum = "2024-12-05"; + double überfälligeGebühren = bib.datumÄndern("B001", ausleihBeginn, ausleihEnde, heutigesDatum); + assertEquals(4.0,überfälligeGebühren); + + // setze noch jahresGebühren dazu + double jahreGebühren = bib.jahresGebührenBerechnen("K1001", "2025-11-19"); + assertEquals(29.0,jahreGebühren); + + // Gebühren bezahlen (Admin) + assertTrue(bib.adminAnmelden("A1000")); + assertEquals(29.0,bib.getgbührenBenutzer("K1001")); + assertTrue(bib.gebührenVerbuchen("K1001")); + } + +} diff --git a/Bibliotheksverwaltungssystem/src/domain/Testate/MediumsVerlängernTest.java b/Bibliotheksverwaltungssystem/src/domain/Testate/MediumsVerlängernTest.java new file mode 100644 index 0000000..edecb13 --- /dev/null +++ b/Bibliotheksverwaltungssystem/src/domain/Testate/MediumsVerlängernTest.java @@ -0,0 +1,27 @@ +package domain.Testate; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import domain.fassade.BibSystem; + +class MediumsVerlängernTest { + + private BibSystem bib; + + @BeforeEach + void setUp() throws Exception { + this.bib = new BibSystem(); + } + + @Test + void test() throws Exception { + bib.userRegistrieren("obai", "student", 15, "nein"); + bib.userAnmelden("K1001"); + bib.mediumAusleihen("K1001", "B001"); + assertTrue(bib.medienVerlängern("B001", "K1001")); + } + +} diff --git a/Bibliotheksverwaltungssystem/src/domain/Testate/RegistrierenTest.java b/Bibliotheksverwaltungssystem/src/domain/Testate/RegistrierenTest.java new file mode 100644 index 0000000..12daa43 --- /dev/null +++ b/Bibliotheksverwaltungssystem/src/domain/Testate/RegistrierenTest.java @@ -0,0 +1,29 @@ +package domain.Testate; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +import domain.Benutzer.*; +import domain.ExceptionsKlassen.FalscheEingabeException; +import domain.UserRegistieren.Registieren; + +class RegistrierenTest { + + @Test + void testKunde() throws FalscheEingabeException { + + Benutzer student = Registieren.userRegistrieren("Müller", "student", 15, "nein"); + // True + assertTrue(student instanceof Studenten); + + Benutzer erwachsener = Registieren.userRegistrieren("Schneider", "erwachsener", 15, "nein"); + // True + assertTrue(erwachsener instanceof Erwachsener); + + Benutzer mitarbeiter = Registieren.userRegistrieren("Schuchmacher", "mitarbeiter", 15, "ja"); + assertTrue(mitarbeiter instanceof Mitarbeiter); + + } + +} diff --git a/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/Registieren.java b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/Registieren.java index 7016581..69f2779 100644 --- a/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/Registieren.java +++ b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/Registieren.java @@ -20,9 +20,9 @@ public class Registieren { ausweis = new Ausweis("K"); benutzer = new Erwachsener(ausweis,name,alter,admin); } - else if (type.equalsIgnoreCase("Mitarbeiter")) { + else if (type.equalsIgnoreCase("mitarbeiter")) { ausweis = new Ausweis("A"); - benutzer = new Erwachsener(ausweis,name,alter,admin); + benutzer = new Mitarbeiter(ausweis,name,alter,admin); } else throw new FalscheEingabeException("Falsche Eingabe"); diff --git a/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistrierenTest.java b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistrierenTest.java index fc02498..0cfc01a 100644 --- a/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistrierenTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistrierenTest.java @@ -36,15 +36,6 @@ class RegistrierenTest { assertTrue(erwachsener instanceof Erwachsener); } - @Disabled - void testMitarbeiter() throws FalscheEingabeException { - - Benutzer benutzer = Registieren.userRegistrieren("obai", "mitarbeiter", 15, "ja"); - // True, da Mitarbeiter ist - assertTrue(benutzer instanceof Mitarbeiter); - String bibKartenNummer = "A1001"; - assertTrue(benutzer.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer)); - } diff --git a/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java b/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java index b760c2a..52976de 100644 --- a/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java @@ -62,7 +62,7 @@ public class BibSystem { treffer = medienSuchen.medienart(auswahl, medien); else if (auswahl.equalsIgnoreCase("ja")) { - treffer = baldVerfügbareMedien(ausleihe); + treffer = medienSuchen.baldVerfügbareMedien(ausleihe); } else @@ -103,8 +103,21 @@ public class BibSystem { Benutzer benutzer = findeBenutzer(bibKartennummer); return ausleiheSystem.medienVerlängern(benutzer,eindeutigeKennung); } + + // Mediums Rückgabe + public ArrayList medienRückgabe(String eindeutigeKennung) { + return ausleiheSystem.mediumRückgabe(ausleihe, eindeutigeKennung); + } + + /* Admin Methoden: + * 1. Anmeldung + * 2. Gebühren des BibBenutzers anzeigen + * 3. Gebühren verbuchen + * 4. akteulle ausgelihene Mediums der Benutzer anzeigen + * + */ - // Admin meldet sich an + // Anmeldung public boolean adminAnmelden(String bibKartennummerAdmin){ this.bibAdmin.anmelden(); return this.bibAdmin.isAngemeldet(); @@ -128,16 +141,13 @@ public class BibSystem { } - public double gebührenVerbuchen(String bibKartennummer) throws BenutzerNichtGefundenException { + public boolean gebührenVerbuchen(String bibKartennummer) throws BenutzerNichtGefundenException { Benutzer bibUser = findeBenutzer(bibKartennummer); ((Mitarbeiter)this.bibAdmin).gebührVerbuchen(bibUser); - return bibUser.getGebühren(); + return bibUser.getGebühren() == 0.0; } - // Mediums Rückgabe - public ArrayList medienRückgabe(String eindeutigeKennung) { - return ausleiheSystem.mediumRückgabe(ausleihe, eindeutigeKennung); - } + // Simuliere Datum public double datumÄndern(String eindeutigeKennung,String ausleiheBeginn, String ausleiheEnde,String datum) throws MediumNichtGefundenException {