From 75579d5c4b01331aee9380bf4eb707e7f79c5601 Mon Sep 17 00:00:00 2001 From: obai Date: Wed, 13 Nov 2024 21:24:12 +0100 Subject: [PATCH] code-Verbesserung --- .../src/domain/BibSystem.java | 30 +++++++++++----- .../src/domain/MediumDurchsuchenTest.java | 34 ++++++++++++++++++ .../domain/UserRegistieren/Registieren.java | 21 +++++------ .../UserRegistieren}/RegistierenProzess.png | Bin .../UserRegistieren/RegistrierenTest.java | 21 +++++++++-- 5 files changed, 84 insertions(+), 22 deletions(-) create mode 100644 Bibliotheksverwaltungssystem/src/domain/MediumDurchsuchenTest.java rename Bibliotheksverwaltungssystem/{Design/Registrieren => src/domain/UserRegistieren}/RegistierenProzess.png (100%) diff --git a/Bibliotheksverwaltungssystem/src/domain/BibSystem.java b/Bibliotheksverwaltungssystem/src/domain/BibSystem.java index cd2cbb1..364bfce 100644 --- a/Bibliotheksverwaltungssystem/src/domain/BibSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/BibSystem.java @@ -2,7 +2,10 @@ package domain; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map.Entry; +import java.util.stream.Collector; +import java.util.stream.Collectors; import java.util.stream.Stream; import domain.AusleiheSystem.Ausleihe; @@ -29,15 +32,28 @@ public class BibSystem { mediumsAufladen(); } + public List mediumDurchsuchen(String title, String bibKartenNummer) throws MediumNichtGefundenException, BenutzerNichtAngemeldetException { + if (!checkIfUserImSystemAngemeldetIst(bibKartenNummer)) + throw new BenutzerNichtAngemeldetException("Sie müssen sich erst im System anmelden"); + + List treffer = medien.values().stream() + .filter(t -> t.getMedium().getTitle().equalsIgnoreCase(title)) + .map(t -> t.toString()) + .collect(Collectors.toCollection(ArrayList::new)); + + return (ArrayList) treffer; + + } + public void userRegistrieren(String name, String type, int alter,String istAdmin) throws FalscheEingabeException { - Benutzer bibbenutzer = Registieren.userRegistrieren(name, type, alter, istAdmin); - alleBibBenutzer.add(bibbenutzer); + Benutzer bibBenutzer = Registieren.userRegistrieren(name, type, alter, istAdmin); + alleBibBenutzer.add(bibBenutzer); } public boolean userAnmdelden(String kartennummer) throws BenutzerNichtGefundenException { - Benutzer tempUser = findBenutzer(kartennummer); - tempUser.setAngemeldet(true); - return tempUser.isAngemeldet(); + Benutzer bibBenutzer = findBenutzer(kartennummer); + bibBenutzer.setAngemeldet(true); + return bibBenutzer.isAngemeldet(); } public void mediumAusleihen(String kartennummer, String eindeutigeKennung) throws Exception { @@ -55,7 +71,7 @@ public class BibSystem { } private void mediumsAufladen() { - medien.put("B001",new Mediumverwalter (true,10,4, new Buch("Effektives Java Programmieren",2018,"Joshua Bloch"))); + medien.put("B001",new Mediumverwalter (true,10,4, new Buch("t",2018,"Joshua Bloch"))); medien.put("B00", new Mediumverwalter (true,10,4, new Buch("Effektives Java Programmieren",2018,"Joshua Bloch"))); medien.put("BG001", new Mediumverwalter (false,10,4, new Brettspiel("Die Siedler von Catan",2012,"XY Müller"))); @@ -63,10 +79,8 @@ public class BibSystem { private boolean checkIfUserImSystemAngemeldetIst(String kartennummer) { - return alleBibBenutzer.stream() .anyMatch(user -> user.isAngemeldet()); - } private Benutzer findBenutzer(String kartennummer) throws BenutzerNichtGefundenException { diff --git a/Bibliotheksverwaltungssystem/src/domain/MediumDurchsuchenTest.java b/Bibliotheksverwaltungssystem/src/domain/MediumDurchsuchenTest.java new file mode 100644 index 0000000..99e0914 --- /dev/null +++ b/Bibliotheksverwaltungssystem/src/domain/MediumDurchsuchenTest.java @@ -0,0 +1,34 @@ +package domain; + +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import domain.Benutzer.Benutzer; +import domain.ExceptionsKlassen.BenutzerNichtAngemeldetException; +import domain.ExceptionsKlassen.BenutzerNichtGefundenException; +import domain.ExceptionsKlassen.FalscheEingabeException; +import domain.ExceptionsKlassen.MediumNichtGefundenException; +import domain.UserRegistieren.Registieren; + +class MediumDurchsuchenTest { + + BibSystem fassade; + @BeforeEach + void setUp() throws Exception { + fassade = new BibSystem(); + } + + @Test + void testMediumsuchen() throws FalscheEingabeException, BenutzerNichtGefundenException, MediumNichtGefundenException, BenutzerNichtAngemeldetException { + fassade.userRegistrieren("obai", "student", 15, "nein"); + assertTrue(fassade.userAnmdelden("K1000")); + ArrayList treffer = (ArrayList) fassade.mediumDurchsuchen("Effektives Java Programmieren", "B001"); + System.out.println(treffer); + + } + +} diff --git a/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/Registieren.java b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/Registieren.java index aa25eaf..e95e86d 100644 --- a/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/Registieren.java +++ b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/Registieren.java @@ -6,22 +6,19 @@ import domain.ExceptionsKlassen.FalscheEingabeException; public class Registieren { public static Benutzer userRegistrieren(String name, String type, int alter,String istAdmin) throws FalscheEingabeException { - if (name.isEmpty() || type.isEmpty() || alter <= 0 || istAdmin.isEmpty()) - throw new FalscheEingabeException("Geben Sie alle Felder korrekt ein"); - Benutzer benutzer; Ausweis ausweis; - boolean istStudentOderSchüler = (type.equalsIgnoreCase("schüler") || type.equalsIgnoreCase("student"))? true : false; - - if (istAdmin.equalsIgnoreCase("nein")) { - ausweis = new Ausweis("K"); - benutzer = new Mitarbeiter(ausweis,name,alter,istStudentOderSchüler); - } - else { - ausweis = new Ausweis("A"); - benutzer = new Kunde(ausweis,name,alter,istStudentOderSchüler); + if (!name.isEmpty() && (type.equalsIgnoreCase("schüler") || type.equalsIgnoreCase("student")) && istAdmin.equalsIgnoreCase("nein")) { + ausweis = new Ausweis("K"); + benutzer = new Kunde(ausweis,name,alter,false); } + else if (!name.isEmpty() && type.equalsIgnoreCase("mitarbeiter") && istAdmin.equalsIgnoreCase("ja")) { + ausweis = new Ausweis("A"); + benutzer = new Mitarbeiter(ausweis,name,alter,true); + } + else + throw new FalscheEingabeException("Falsche Eingabe"); return benutzer; diff --git a/Bibliotheksverwaltungssystem/Design/Registrieren/RegistierenProzess.png b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistierenProzess.png similarity index 100% rename from Bibliotheksverwaltungssystem/Design/Registrieren/RegistierenProzess.png rename to Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistierenProzess.png diff --git a/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistrierenTest.java b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistrierenTest.java index 4bbee8c..981007f 100644 --- a/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistrierenTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/UserRegistieren/RegistrierenTest.java @@ -9,6 +9,7 @@ import domain.BibSystem; import domain.Benutzer.Ausweis; import domain.Benutzer.Benutzer; import domain.Benutzer.Kunde; +import domain.Benutzer.Mitarbeiter; import domain.ExceptionsKlassen.FalscheEingabeException; import domain.Medium.Buch; import domain.Medium.Mediumverwalter; @@ -22,9 +23,25 @@ class RegistrierenTest { } @Test - void test() throws FalscheEingabeException { - + void testKunde() throws FalscheEingabeException { + Benutzer benutzer = Registieren.userRegistrieren("obai", "student", 15, "nein"); + // True, da Kunde ist + assertTrue(benutzer instanceof Kunde); + String bibKartenNummer = "K1000"; + assertTrue(benutzer.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer)); } + + @Test + 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)); + } + + }