diff --git a/Bibliotheksverwaltungssystem/Design/SystemUml.drawio b/Bibliotheksverwaltungssystem/Design/SystemUml.drawio index c5ee2ce..242ecd9 100644 --- a/Bibliotheksverwaltungssystem/Design/SystemUml.drawio +++ b/Bibliotheksverwaltungssystem/Design/SystemUml.drawio @@ -1,9 +1,12 @@ - + - + + + + @@ -18,9 +21,6 @@ - - - @@ -55,144 +55,109 @@ - + - - - - - - - - - + - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - - - + - - - + - - + + + + - - + + + + - - + + + + - - + + + + - - - - - - - - + + + + @@ -243,121 +208,243 @@ - + - - + + - - - - + - + - + - - + + - - + + + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Bibliotheksverwaltungssystem/Design/SystemUml.drawio.png b/Bibliotheksverwaltungssystem/Design/SystemUml.drawio.png new file mode 100644 index 0000000..4887c93 Binary files /dev/null and b/Bibliotheksverwaltungssystem/Design/SystemUml.drawio.png differ diff --git a/Bibliotheksverwaltungssystem/Design/Unfertiges System diagramm.png b/Bibliotheksverwaltungssystem/Design/Unfertiges System diagramm.png deleted file mode 100644 index 8fdcc0f..0000000 Binary files a/Bibliotheksverwaltungssystem/Design/Unfertiges System diagramm.png and /dev/null differ diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheJTest.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheJTest.java index e93d87e..75b4ab3 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheJTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheJTest.java @@ -19,7 +19,7 @@ class AusleiheJTest { @Test void test() throws Exception { bib.userRegistrieren("obai", "student", 15, "nein"); - bib.userAnmdelden("K1000"); + bib.userAnmelden("K1000"); bib.mediumAusleihen("K1000", "B001"); } diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java index 28872cc..24daa18 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java @@ -12,11 +12,12 @@ public class AusleiheSystem { private HashMap medien; private LocalDate ausleiheBeginn, ausleiheEnde; - + public AusleiheSystem(HashMap medien) { this.medien = medien; } - + + public Ausleihe mediumAusleihen(Benutzer benutzer, String eindeutigenummer) throws MediumNichtGefundenException { Mediumverwalter mediumAusleihen = findMedium(eindeutigenummer); @@ -43,7 +44,7 @@ public class AusleiheSystem { ArrayList ausgeliehenMedien = new ArrayList<>(); LocalDate heutigesDatum; Benutzer bibBenutzer = ausgelieheneMedium.getBenutzer(); - + if (ausgelieheneMedium != null) { heutigesDatum = LocalDate.now(); if (heutigesDatum.isAfter(ausgelieheneMedium.getAusleiheEnde())) { @@ -73,39 +74,35 @@ public class AusleiheSystem { return ausgeliehenMedien; } - public double SimulieremediumRückgabe(ArrayList ausleihe, String eindeutigeKennung, String datum) - throws MediumNichtGefundenException { + public double SimulieremediumRückgabe(ArrayList ausleihe, String eindeutigeKennung, String ausleiheBeginn, String ausleiheEnde,String datum) throws MediumNichtGefundenException { Ausleihe ausgelieheneMedium = ausleihe.stream() .filter(k -> k.getMediumverwalter().getMedium().getID().equalsIgnoreCase(eindeutigeKennung)).findFirst() .orElse(null); - - LocalDate heutigesDatum; - LocalDate testDatum = LocalDate.parse(datum); + + LocalDate beginn = LocalDate.parse(ausleiheBeginn); + LocalDate ende = LocalDate.parse(ausleiheEnde); + LocalDate heutigesDatum = LocalDate.parse(datum); Benutzer bibBenutzer = ausgelieheneMedium.getBenutzer(); - double gebühren = 0.0; - if (ausgelieheneMedium != null) { - heutigesDatum = LocalDate.now(); + + ausgelieheneMedium.setAusleiheBeginn(beginn); + ausgelieheneMedium.setAusleiheEnde(ende); + + if (heutigesDatum.isAfter(ausgelieheneMedium.getAusleiheEnde())) { + long überfälligeTage = ausgelieheneMedium.getAusleiheEnde().until(heutigesDatum, ChronoUnit.DAYS); + double gebühren = 0.0; + if (überfälligeTage <= 7) + gebühren = überfälligeTage * 1.0; - if (heutigesDatum.isAfter(testDatum)) { - long überfälligeTage = testDatum.until(heutigesDatum, ChronoUnit.DAYS); + else { + gebühren = (7 * 1.0); + gebühren += ((überfälligeTage - 7) * 2.0); - if (überfälligeTage <= 7) - gebühren = überfälligeTage * 1.0; - - else { - gebühren = (7 * 1.0); - gebühren += ((überfälligeTage - 7) * 2.0); - - } - - bibBenutzer.setGebühren(bibBenutzer.getGebühren() + gebühren); - return bibBenutzer.getGebühren(); } - } else - throw new MediumNichtGefundenException("Das Medium wurde nicht gefunden"); - - return gebühren; + bibBenutzer.setGebühren(bibBenutzer.getGebühren() + gebühren); + } + + return bibBenutzer.getGebühren(); } public boolean medienVerlängern(Benutzer benutzer, String eindeutigeKennung) throws MediumNichtGefundenException { diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MedienRückgabeTest.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MedienRückgabeTest.java index 5572ce9..e53f6cd 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MedienRückgabeTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MedienRückgabeTest.java @@ -1,5 +1,8 @@ package domain.AusleiheSystem; + +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.ArrayList; import org.junit.jupiter.api.BeforeEach; @@ -19,14 +22,15 @@ class MedienRückgabeTest { @Test void test() throws Exception { bib.userRegistrieren("obai", "student", 15, "nein"); - bib.userAnmdelden("K1001"); + bib.userAnmelden("K1001"); bib.mediumAusleihen("K1001", "B001"); - bib.mediumAusleihen("K1001", "BG001"); - ArrayList test = bib.medienRückgabe("B001"); - if (test.size() == 0) - System.out.println("kein Mehr"); - test.forEach(System.out::println); + double gebühren = bib.datumÄndern("B001", "2022-09-01", "2022-10-01", "2022-10-03"); + assertEquals(2.0,gebühren); + + } + + } diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumVerlängernTest.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumVerlängernTest.java index 20afe0f..e68e364 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumVerlängernTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumVerlängernTest.java @@ -19,7 +19,7 @@ class MediumVerlängernTest { @Test void test() throws Exception { bib.userRegistrieren("obai", "student", 15, "nein"); - bib.userAnmdelden("K1001"); + bib.userAnmelden("K1001"); bib.mediumAusleihen("K1001", "B001"); assertTrue(bib.medienVerlängern("B001", "K1001")); } diff --git a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java index ce3e154..15a0011 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java +++ b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java @@ -100,32 +100,32 @@ public abstract class Benutzer { this.anmeldebeginn = anmeldebeginn; } - public double jahresgebühren() { - LocalDate nacheinemJahr = anmeldebeginn.plusYears(1); - if (LocalDate.now().isAfter(nacheinemJahr)) { - this.gebühren += getJahresgebühr(); - anmeldebeginn = nacheinemJahr; - return this.gebühren; - } - return 0.0; - } - // Für Testate - public double simuliereJahresGebühren(String anmeldeBeginn) { - LocalDate aktuellesDatum = LocalDate.now(); - LocalDate test = LocalDate.parse(anmeldeBeginn); + public double jahresgebühren(String datum) { + // Falls ein Testdatum angegeben ist + if (!datum.isEmpty()) { + LocalDate aktuellesDatum = LocalDate.parse(datum); + while (this.anmeldebeginn.isBefore(aktuellesDatum)) { + this.gebühren += getJahresgebühren(); + this.anmeldebeginn = this.anmeldebeginn.plusYears(1); // Aktualisieren des Startdatums + } - while (test.isBefore(aktuellesDatum)) { - this.gebühren += getJahresgebühr(); - test = test.plusYears(1); + this.anmeldebeginn = aktuellesDatum; // Letztes Aktualisieren des Startdatums + } + else { + LocalDate nachEinemJahr = this.anmeldebeginn.plusYears(1); + while (LocalDate.now().isAfter(nachEinemJahr)) { + this.gebühren += getJahresgebühren(); + this.anmeldebeginn = nachEinemJahr; + nachEinemJahr = this.anmeldebeginn.plusYears(1); + } } - anmeldebeginn = test; return this.gebühren; } - - public abstract double getJahresgebühr(); + + public abstract double getJahresgebühren(); @Override public String toString() { diff --git a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Kunde.java b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Kunde.java index 68d8cea..3b422f0 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Kunde.java +++ b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Kunde.java @@ -9,7 +9,7 @@ public class Kunde extends Benutzer { } @Override - public double getJahresgebühr() { + public double getJahresgebühren() { return 25.0; } diff --git a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Mitarbeiter.java b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Mitarbeiter.java index 3e3530a..5ac3d20 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Mitarbeiter.java +++ b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Mitarbeiter.java @@ -7,7 +7,7 @@ public class Mitarbeiter extends Benutzer { } @Override - public double getJahresgebühr() { + public double getJahresgebühren() { return 50.0; } diff --git a/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/MedienSuchenTest.java b/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/MedienSuchenTest.java index 65477f0..3b729fe 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/MedienSuchenTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/MedienSuchenTest.java @@ -24,7 +24,7 @@ private BibSystem fassade; void erstelleObjekt() throws FalscheEingabeException, BenutzerNichtGefundenException { this.fassade = new BibSystem(); fassade.userRegistrieren("obai", "student", 15, "nein"); - fassade.userAnmdelden("K1000"); + fassade.userAnmelden("K1000"); } diff --git a/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/Mediensuchen.java b/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/Mediensuchen.java index 1a19247..6195038 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/Mediensuchen.java +++ b/Bibliotheksverwaltungssystem/src/domain/Bibliothekskatalog/Mediensuchen.java @@ -30,30 +30,35 @@ public class Mediensuchen { case "Bücher": return medien.entrySet().stream() .filter(t -> t.getValue().getMedium() instanceof Buch) + .map(t -> t.getValue().getMedium()) .map(t -> ((Buch)t)) .map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new)); case "Brettspiele": return medien.entrySet().stream() .filter(t -> t.getValue().getMedium() instanceof Brettspiel) + .map(t -> t.getValue().getMedium()) .map(t -> ((Brettspiel)t)) .map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new)); case "Dvds": return medien.entrySet().stream() .filter(t -> t.getValue().getMedium() instanceof Dvd) + .map(t -> t.getValue().getMedium()) .map(t -> ((Dvd)t)) .map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new)); case "Cds": return medien.entrySet().stream() .filter(t -> t.getValue().getMedium() instanceof Cd) + .map(t -> t.getValue().getMedium()) .map(t -> ((Cd)t)) .map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new)); case "Videospiele": return medien.entrySet().stream() .filter(t -> t.getValue().getMedium() instanceof Videospiel) + .map(t -> t.getValue().getMedium()) .map(t -> ((Videospiel)t)) .map(t -> "Eindutige Kennung= " + t.toString()).collect(Collectors.toCollection(ArrayList::new)); diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java index 362f27e..b44bfd9 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java @@ -2,6 +2,7 @@ package domain.Medium; public class Brettspiel extends Medium { + private String Verlag; public Brettspiel(String ID,String title, int erscheinungsjahr, String Verlag) { diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java index 06cec4a..cccf71b 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java @@ -5,6 +5,7 @@ import java.util.Date; public class Cd extends Medium { private String Künstler; + public Cd(String ID,String title, int erscheinungsjahr,String Künstler) { super(ID,title, erscheinungsjahr); diff --git a/Bibliotheksverwaltungssystem/src/domain/fassade/AusleihfristenGebührenTest.java b/Bibliotheksverwaltungssystem/src/domain/fassade/AusleihfristenGebührenTest.java index 8571b10..06a3470 100644 --- a/Bibliotheksverwaltungssystem/src/domain/fassade/AusleihfristenGebührenTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/fassade/AusleihfristenGebührenTest.java @@ -17,10 +17,9 @@ class AusleihfristenGebührenTest { @Test void test() throws Exception { bib.userRegistrieren("obai", "student", 15, "nein"); - bib.userAnmdelden("K1001"); + bib.userAnmelden("K1001"); bib.mediumAusleihen("K1001", "B001"); - assertEquals(2.0,bib.simuliereMedienRückgabe("B001", "2024-11-13")); } } diff --git a/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java b/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java index e818e3d..ca8f23a 100644 --- a/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java @@ -25,41 +25,23 @@ public class BibSystem { mediumsAufladen(); } - public boolean gebührenBezahlen(double betrag, String bibKartennummer) throws BenutzerNichtGefundenException { - Benutzer benutzer = findeBenutzer(bibKartennummer); - double userBetrag = benutzer.getGebühren(); - if (betrag == userBetrag ) { - ((Mitarbeiter)bibAdmin).gebührVerbuchen(benutzer); - return true; - } - return false; + // Registrierung + public void userRegistrieren(String name, String type, int alter, String istAdmin) throws FalscheEingabeException { + Benutzer bibBenutzer = Registieren.userRegistrieren(name, type, alter, istAdmin); + alleBibBenutzer.add(bibBenutzer); } - public double jahresGebührenBerechnen(String bibKartennummer) throws BenutzerNichtGefundenException { - Benutzer benutzer = findeBenutzer(bibKartennummer); - return benutzer.jahresgebühren(); + // Anmeldung + public double userAnmelden(String bibKartenNummer) throws BenutzerNichtGefundenException { + Benutzer bibBenutzer = findeBenutzer(bibKartenNummer); + bibBenutzer.anmelden(); + return bibBenutzer.getGebühren(); } - public double simuliereJahresGebührenBerechnen(String bibKartennummer, String datum) throws BenutzerNichtGefundenException { - Benutzer benutzer = findeBenutzer(bibKartennummer); - return benutzer.simuliereJahresGebühren(datum); - } - public ArrayList medienRückgabe(String eindeutigeKennung) { - return ausleiheSystem.mediumRückgabe(ausleihe, eindeutigeKennung); - } - - public double simuliereMedienRückgabe(String eindeutigeKennung, String datum) throws MediumNichtGefundenException { - return ausleiheSystem.SimulieremediumRückgabe(ausleihe, eindeutigeKennung, datum); - } - - public boolean medienVerlängern(String eindeutigeKennung, String bibKartennummer) throws BenutzerNichtGefundenException, MediumNichtGefundenException { - Benutzer benutzer = findeBenutzer(bibKartennummer); - return ausleiheSystem.medienVerlängern(benutzer,eindeutigeKennung); - } - - public ArrayList mediumDurchsuchen(String auswahl, String bibKartenNummer) - throws FalscheEingabeException, MediumNichtGefundenException, BenutzerNichtAngemeldetException { + + // Mediums Durchsuchen + public ArrayList mediumDurchsuchen(String auswahl, String bibKartenNummer) throws FalscheEingabeException, MediumNichtGefundenException, BenutzerNichtAngemeldetException { if (!checkIfUserImSystemAngemeldetIst(bibKartenNummer)) throw new BenutzerNichtAngemeldetException("Sie müssen sich erst im System anmelden"); @@ -85,19 +67,16 @@ public class BibSystem { return 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); - } - - public boolean userAnmdelden(String bibKartenNummer) throws BenutzerNichtGefundenException { - Benutzer bibBenutzer = findeBenutzer(bibKartenNummer); - bibBenutzer.anmelden(); - return bibBenutzer.isAngemeldet(); - } - - public String mediumAusleihen(String bibKartenNummer, String eindeutigeKennung) throws Exception { + + /* + * Aufgaben des Leihsystems: + * 1. Mediums ausleihen lassen + * 2. Mediums verlängern + * 3. Mediums Rückgabe + */ + + // Mediums Ausleihen + public double mediumAusleihen(String bibKartenNummer, String eindeutigeKennung) throws Exception { Benutzer bibBenutzer = findeBenutzer(bibKartenNummer); if (bibBenutzer instanceof Mitarbeiter) @@ -109,44 +88,84 @@ public class BibSystem { Ausleihe neueAusleihe = ausleiheSystem.mediumAusleihen(bibBenutzer, eindeutigeKennung); ausleihe.add(neueAusleihe); bibBenutzer.ausleihen(neueAusleihe); - return "Das Medium wurde erfolgreich ausgeliehen"; + return bibBenutzer.getGebühren(); } - public void mediumsAufladen(String type, String ID, String title, int erscheinungsjahr,String ersteller,String verlängbar,int anzahl,int leihdauer) throws FalscheEingabeException { - Mediumverwalter medium; - boolean verlängerung = (verlängbar.equalsIgnoreCase("ja")) ? true: false; - switch (type) { - case "Buch": - medium = new Mediumverwalter(new Buch(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer); - break; - - case "Cd": - medium = new Mediumverwalter(new Cd(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer); - break; - - case "Brettspiel": - medium = new Mediumverwalter(new Brettspiel(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer); - break; - - case "Dvd": - medium = new Mediumverwalter(new Dvd(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer); - break; - - case "Videospiel": - medium = new Mediumverwalter(new Videospiel(ID,title,erscheinungsjahr,ersteller),verlängerung,anzahl,leihdauer); - break; - - default: - throw new FalscheEingabeException("Falsch Eingabe"); + public boolean medienVerlängern(String eindeutigeKennung, String bibKartennummer) throws BenutzerNichtGefundenException, MediumNichtGefundenException { + Benutzer benutzer = findeBenutzer(bibKartennummer); + return ausleiheSystem.medienVerlängern(benutzer,eindeutigeKennung); + } + + // Mediums verlängern + public boolean gebührenBezahlen(double betrag, String bibKartennummer) throws BenutzerNichtGefundenException { + Benutzer benutzer = findeBenutzer(bibKartennummer); + double userBetrag = benutzer.getGebühren(); + if (betrag == userBetrag ) { + ((Mitarbeiter)bibAdmin).gebührVerbuchen(benutzer); + return true; } - - String getMediumID = medium.getMedium().getID(); - medien.put(getMediumID, medium); - + return false; + } + + // Mediums Rückgabe + public ArrayList medienRückgabe(String eindeutigeKennung) { + return ausleiheSystem.mediumRückgabe(ausleihe, eindeutigeKennung); + } + + public double datumÄndern(String eindeutigeKennung,String ausleiheBeginn, String ausleiheEnde,String datum) throws MediumNichtGefundenException { + return ausleiheSystem.SimulieremediumRückgabe(ausleihe, eindeutigeKennung, ausleiheBeginn, ausleiheEnde, datum); + } + + // jahresGebühren berechnen + public double jahresGebührenBerechnen(String bibKartennummer, String datum) throws BenutzerNichtGefundenException { + Benutzer benutzer = findeBenutzer(bibKartennummer); + return benutzer.jahresgebühren(datum); + } + + + // Mediums Aufladen + public void mediumsAufladen(String type, String ID, String title, int erscheinungsjahr, String ersteller, + String verlängbar, int anzahl, int leihdauer) throws FalscheEingabeException { + Mediumverwalter medium; + boolean verlängerung = (verlängbar.equalsIgnoreCase("ja")) ? true : false; + switch (type) { + case "Buch": + medium = new Mediumverwalter(new Buch(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl, + leihdauer); + break; + + case "Cd": + medium = new Mediumverwalter(new Cd(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl, + leihdauer); + break; + + case "Brettspiel": + medium = new Mediumverwalter(new Brettspiel(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl, + leihdauer); + break; + + case "Dvd": + medium = new Mediumverwalter(new Dvd(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl, + leihdauer); + break; + + case "Videospiel": + medium = new Mediumverwalter(new Videospiel(ID, title, erscheinungsjahr, ersteller), verlängerung, anzahl, + leihdauer); + break; + + default: + throw new FalscheEingabeException("Falsch Eingabe"); + } + + medien.put(ID, medium); } - // Test Methode + /* + * => Hilfsmethoden + */ + private void mediumsAufladen() { Mediumverwalter buch = new Mediumverwalter(new Buch("B001", "Effektives Java Programmieren", 2018, "Joshua Bloch"),true, 10, 28); medien.put(buch.getMedium().getID(), buch); diff --git a/Bibliotheksverwaltungssystem/src/domain/fassade/GebührenTest.java b/Bibliotheksverwaltungssystem/src/domain/fassade/GebührenTest.java new file mode 100644 index 0000000..ec9b03e --- /dev/null +++ b/Bibliotheksverwaltungssystem/src/domain/fassade/GebührenTest.java @@ -0,0 +1,31 @@ +package domain.fassade; + +import static org.junit.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import domain.ExceptionsKlassen.BenutzerNichtGefundenException; +import domain.ExceptionsKlassen.FalscheEingabeException; + +class GebührenTest { + + BibSystem fassade; + + @BeforeEach + void setUp() throws Exception { + fassade = new BibSystem(); + } + + @Test + void testGebühren() throws Exception { + fassade.userRegistrieren("obai", "schüler", 15, "nein"); + fassade.userAnmelden("K1001"); + double gebühren = fassade.jahresGebührenBerechnen("K1001", "2026-11-16"); + assertEquals(50.0, gebühren); + + + } + +} diff --git a/Bibliotheksverwaltungssystem/src/domain/fassade/JahresGebührenTest.java b/Bibliotheksverwaltungssystem/src/domain/fassade/JahresGebührenTest.java deleted file mode 100644 index 3c6c221..0000000 --- a/Bibliotheksverwaltungssystem/src/domain/fassade/JahresGebührenTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package domain.fassade; - -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; - -class JahresGebührenTest { - BibSystem fassade; - @BeforeEach - void setUp() throws Exception { - - fassade = new BibSystem(); - } - - @Test - void testFürKunde() throws Exception { - fassade.userRegistrieren("obai", "schüler", 15, "nein"); - fassade.userAnmdelden("K1001"); - double gebühren = fassade.simuliereJahresGebührenBerechnen("K1001", "2020-11-15"); - assertEquals(100.0, gebühren); - assertTrue(fassade.gebührenBezahlen(gebühren, "K1001")); - - } - - @Disabled - void testFürMitarbeiter() throws Exception { - fassade.userRegistrieren("obai", "mitarbeiter", 15, "ja"); - fassade.userAnmdelden("A1000"); - double gebühren = fassade.simuliereJahresGebührenBerechnen("A1000","2020-11-15"); - assertEquals(200.0,gebühren); - - } - -} diff --git a/Bibliotheksverwaltungssystem/src/domain/fassade/UserAnmeldenTest.java b/Bibliotheksverwaltungssystem/src/domain/fassade/UserAnmeldenTest.java index 67a8d21..13039cb 100644 --- a/Bibliotheksverwaltungssystem/src/domain/fassade/UserAnmeldenTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/fassade/UserAnmeldenTest.java @@ -22,14 +22,14 @@ class UserAnmeldenTest { // True => User ist Angemeldet fassade.userRegistrieren("obai", "Student", 15, "nein"); - assertTrue(fassade.userAnmdelden("K1001")); + fassade.userAnmelden("K1001"); } @Test void testBenutzerIstNichtImSystem() throws FalscheEingabeException, BenutzerNichtGefundenException { // True, da Benutzer nicht im System ist - assertThrows( BenutzerNichtGefundenException.class, () -> fassade.userAnmdelden("K1001") ); + assertThrows( BenutzerNichtGefundenException.class, () -> fassade.userAnmelden("K1001") ); } } diff --git a/Bibliotheksverwaltungssystem/src/tui/Tui.java b/Bibliotheksverwaltungssystem/src/tui/Tui.java index 53d8bb3..3035ee2 100644 --- a/Bibliotheksverwaltungssystem/src/tui/Tui.java +++ b/Bibliotheksverwaltungssystem/src/tui/Tui.java @@ -115,8 +115,9 @@ public class Tui { String kartennummer = eingabe.nextLine(); try { - if (fassade.userAnmdelden(kartennummer)) { - System.out.println("Erfolgreich angemeldet."); + { + double gebühren = fassade.userAnmelden(kartennummer); + System.out.println("Erfolgreich angemeldet.\n" + "Gebühren= " + gebühren); } } catch (BenutzerNichtGefundenException e) { System.out.println("Fehler: " + e.getMessage());