Code-Verbesserung
parent
194a7df9e0
commit
7858e0c1ce
|
@ -38,7 +38,8 @@ public class AusleiheSystem {
|
|||
|
||||
public ArrayList<String> mediumRückgabe(ArrayList<Ausleihe> ausleihe, String eindeutigeKennung) {
|
||||
Ausleihe ausgelieheneMedium = ausleihe.stream()
|
||||
.filter(k -> k.getMediumverwalter().getMedium().getID().equalsIgnoreCase(eindeutigeKennung)).findFirst()
|
||||
.filter(k -> k.getMediumverwalter().getMedium().getID().equalsIgnoreCase(eindeutigeKennung))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
ArrayList<String> ausgeliehenMedien = new ArrayList<>();
|
||||
|
|
|
@ -2,12 +2,14 @@ package domain.AusleiheSystem;
|
|||
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.Benutzer.Benutzer;
|
||||
import domain.fassade.BibSystem;
|
||||
|
||||
class MedienRückgabeTest {
|
||||
|
@ -25,9 +27,13 @@ class MedienRückgabeTest {
|
|||
bib.userAnmelden("K1001");
|
||||
bib.mediumAusleihen("K1001", "B001");
|
||||
|
||||
double gebühren = bib.datumÄndern("B001", "2022-09-01", "2022-10-01", "2022-10-03");
|
||||
assertEquals(2.0,gebühren);
|
||||
|
||||
Benutzer bibUser = bib.findeBenutzer("K1001");
|
||||
double gebühren = bib.datumÄndern("B001", "2022-09-01", "2022-10-01", "2022-10-09");
|
||||
assertEquals(9.0,gebühren);
|
||||
assertTrue(bib.adminAnmelden("A1000"));
|
||||
assertTrue(bib.getgbührenBenutzer("K1001") == 9.0);
|
||||
bib.gebührenVerbuchen("K1001");
|
||||
assertTrue (bibUser.getGebühren() == 0.0);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package domain.Benutzer;
|
||||
|
||||
public class Erwachsener extends Benutzer {
|
||||
|
||||
public Erwachsener(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
super(bibAusweis, name, alter, istStudent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getJahresgebühren() {
|
||||
return 50.0;
|
||||
}
|
||||
|
||||
}
|
|
@ -9,7 +9,7 @@ public class Mitarbeiter extends Benutzer {
|
|||
@Override
|
||||
public double getJahresgebühren() {
|
||||
|
||||
return 50.0;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
public void gebührVerbuchen(Benutzer benutzer) {
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
package domain.Benutzer;
|
||||
|
||||
import java.time.LocalDate;
|
||||
public class Studenten extends Benutzer {
|
||||
|
||||
public class Kunde extends Benutzer {
|
||||
|
||||
public Kunde(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
public Studenten(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
super(bibAusweis, name, alter, istStudent);
|
||||
}
|
||||
|
|
@ -6,21 +6,31 @@ import domain.ExceptionsKlassen.FalscheEingabeException;
|
|||
public class Registieren {
|
||||
|
||||
public static Benutzer userRegistrieren(String name, String type, int alter,String istAdmin) throws FalscheEingabeException {
|
||||
|
||||
Benutzer benutzer;
|
||||
Ausweis ausweis;
|
||||
|
||||
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);
|
||||
if (!name.isEmpty()) {
|
||||
boolean admin = (istAdmin.equalsIgnoreCase("Ja"))? true : false;
|
||||
if ((type.equalsIgnoreCase("schüler") || type.equalsIgnoreCase("student"))) {
|
||||
ausweis = new Ausweis("K");
|
||||
benutzer = new Studenten(ausweis,name,alter,admin);
|
||||
}
|
||||
else if (type.equalsIgnoreCase("erwachsener")) {
|
||||
ausweis = new Ausweis("K");
|
||||
benutzer = new Erwachsener(ausweis,name,alter,admin);
|
||||
}
|
||||
else if (type.equalsIgnoreCase("Mitarbeiter")) {
|
||||
ausweis = new Ausweis("A");
|
||||
benutzer = new Erwachsener(ausweis,name,alter,admin);
|
||||
}
|
||||
else
|
||||
throw new FalscheEingabeException("Falsche Eingabe");
|
||||
|
||||
}
|
||||
else
|
||||
throw new FalscheEingabeException("Falsche Eingabe");
|
||||
|
||||
return benutzer;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,15 +3,14 @@ package domain.UserRegistieren;
|
|||
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.Benutzer.Ausweis;
|
||||
import domain.Benutzer.Benutzer;
|
||||
import domain.Benutzer.Kunde;
|
||||
import domain.Benutzer.Erwachsener;
|
||||
import domain.Benutzer.Mitarbeiter;
|
||||
import domain.Benutzer.Studenten;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
import domain.Medium.Buch;
|
||||
import domain.Medium.Mediumverwalter;
|
||||
import domain.fassade.BibSystem;
|
||||
|
||||
class RegistrierenTest {
|
||||
|
@ -26,13 +25,18 @@ class RegistrierenTest {
|
|||
void testKunde() throws FalscheEingabeException {
|
||||
|
||||
Benutzer benutzer = Registieren.userRegistrieren("obai", "student", 15, "nein");
|
||||
// True, da Kunde ist
|
||||
assertTrue(benutzer instanceof Kunde);
|
||||
// True ist
|
||||
assertTrue(benutzer instanceof Studenten);
|
||||
String bibKartenNummer = "K1000";
|
||||
assertTrue(benutzer.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer));
|
||||
|
||||
|
||||
Benutzer erwachsener = Registieren.userRegistrieren("obai", "erwachsener", 15, "nein");
|
||||
// True
|
||||
assertTrue(erwachsener instanceof Erwachsener);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled
|
||||
void testMitarbeiter() throws FalscheEingabeException {
|
||||
|
||||
Benutzer benutzer = Registieren.userRegistrieren("obai", "mitarbeiter", 15, "ja");
|
||||
|
|
|
@ -21,7 +21,7 @@ public class BibSystem {
|
|||
this.medien = new HashMap<>();
|
||||
this.ausleiheSystem = new AusleiheSystem(medien);
|
||||
this.ausleihe = new ArrayList<>();
|
||||
bibAdmin = new Mitarbeiter(new Ausweis("A"),"XY Müller",20,false);
|
||||
this.bibAdmin = new Mitarbeiter(new Ausweis("A"),"Xy Müller",20,false);
|
||||
mediumsAufladen();
|
||||
}
|
||||
|
||||
|
@ -68,15 +68,6 @@ public class BibSystem {
|
|||
return treffer;
|
||||
}
|
||||
|
||||
public ArrayList<String> ausgeliehenGegenstände(String bibKartennummer) throws BenutzerNichtGefundenException{
|
||||
Benutzer bibUser = findeBenutzer(bibKartennummer);
|
||||
ArrayList<String> treffer = new ArrayList<>();
|
||||
for (Ausleihe ausleihe:bibUser.getAusgeliehenenMedien())
|
||||
treffer.add(ausleihe.toString());
|
||||
|
||||
return treffer;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Aufgaben des Leihsystems:
|
||||
|
@ -107,15 +98,34 @@ public class BibSystem {
|
|||
return ausleiheSystem.medienVerlängern(benutzer,eindeutigeKennung);
|
||||
}
|
||||
|
||||
// gebühren Bezahlen
|
||||
public boolean gebührenBezahlen(double betrag, String bibKartennummer) throws BenutzerNichtGefundenException {
|
||||
// Admin meldet sich an
|
||||
public boolean adminAnmelden(String bibKartennummerAdmin){
|
||||
this.bibAdmin.anmelden();
|
||||
return this.bibAdmin.isAngemeldet();
|
||||
}
|
||||
|
||||
|
||||
// aktuelle Gebühren der Benutzer
|
||||
public double getgbührenBenutzer(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;
|
||||
return benutzer.getGebühren();
|
||||
}
|
||||
|
||||
// akteulle ausgelihene Mediums der Benutzer
|
||||
public ArrayList<String> ausgeliehenGegenstände(String bibKartennummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer bibUser = findeBenutzer(bibKartennummer);
|
||||
ArrayList<String> treffer = new ArrayList<>();
|
||||
for (Ausleihe ausleihe : bibUser.getAusgeliehenenMedien())
|
||||
treffer.add(ausleihe.toString());
|
||||
|
||||
return treffer;
|
||||
|
||||
}
|
||||
|
||||
public double gebührenVerbuchen(String bibKartennummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer bibUser = findeBenutzer(bibKartennummer);
|
||||
((Mitarbeiter)this.bibAdmin).gebührVerbuchen(bibUser);
|
||||
return bibUser.getGebühren();
|
||||
}
|
||||
|
||||
// Mediums Rückgabe
|
||||
|
@ -123,6 +133,7 @@ public class BibSystem {
|
|||
return ausleiheSystem.mediumRückgabe(ausleihe, eindeutigeKennung);
|
||||
}
|
||||
|
||||
// Simuliere Datum
|
||||
public double datumÄndern(String eindeutigeKennung,String ausleiheBeginn, String ausleiheEnde,String datum) throws MediumNichtGefundenException {
|
||||
return ausleiheSystem.SimulieremediumRückgabe(ausleihe, eindeutigeKennung, ausleiheBeginn, ausleiheEnde, datum);
|
||||
}
|
||||
|
@ -193,10 +204,12 @@ public class BibSystem {
|
|||
}
|
||||
|
||||
private boolean checkIfUserImSystemAngemeldetIst(String bibKartenNummer) {
|
||||
return alleBibBenutzer.stream().anyMatch(user -> user.isAngemeldet());
|
||||
return alleBibBenutzer.stream()
|
||||
.filter(b -> b.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer))
|
||||
.anyMatch(user -> user.isAngemeldet());
|
||||
}
|
||||
|
||||
private Benutzer findeBenutzer(String bibKartenNummer) throws BenutzerNichtGefundenException {
|
||||
public Benutzer findeBenutzer(String bibKartenNummer) throws BenutzerNichtGefundenException {
|
||||
return alleBibBenutzer.stream()
|
||||
.filter(k -> k.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer)).findFirst()
|
||||
.orElseThrow(() -> new BenutzerNichtGefundenException(
|
||||
|
|
|
@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.*;
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.Benutzer.Benutzer;
|
||||
import domain.ExceptionsKlassen.BenutzerNichtGefundenException;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
|
||||
|
@ -22,10 +23,15 @@ class GebührenTest {
|
|||
void testGebühren() throws Exception {
|
||||
fassade.userRegistrieren("obai", "schüler", 15, "nein");
|
||||
fassade.userAnmelden("K1001");
|
||||
Benutzer user = fassade.findeBenutzer("K1001");
|
||||
double gebühren = fassade.jahresGebührenBerechnen("K1001", "2026-11-16");
|
||||
assertEquals(50.0, gebühren);
|
||||
assertTrue (user.getGebühren() == gebühren);
|
||||
|
||||
|
||||
assertTrue(fassade.adminAnmelden("A1000"));
|
||||
assertTrue(fassade.getgbührenBenutzer("K1001") == 50.0);
|
||||
fassade.gebührenVerbuchen("K1001");
|
||||
assertTrue (user.getGebühren() == 0.0);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -59,6 +59,9 @@ public class Tui {
|
|||
case "8":
|
||||
verbucheGebührenProzess();
|
||||
break;
|
||||
case "9":
|
||||
datumÄndern();
|
||||
break;
|
||||
case "0":
|
||||
programmIstAktiv = false;
|
||||
System.out.println("Programm beendet.");
|
||||
|
@ -82,6 +85,7 @@ public class Tui {
|
|||
System.out.println("6. Ausgeliehene Gegenstände anzeigen");
|
||||
System.out.println("7. Leihfrist verlängern");
|
||||
System.out.println("8. Gebühren verbuchen (Admin)");
|
||||
System.out.println("9. Datum ändern");
|
||||
System.out.println("0. Programm beenden");
|
||||
}
|
||||
|
||||
|
@ -223,17 +227,80 @@ public class Tui {
|
|||
private void verbucheGebührenProzess() {
|
||||
System.out.println("<< Gebühren verbuchen >>");
|
||||
|
||||
System.out.print("BibKartennummer des Nutzers: ");
|
||||
System.out.print("BibKartennummer des Admins: ");
|
||||
String bibKartennummer = eingabe.nextLine();
|
||||
System.out.println("Geben Sie bitte den Betrag: ");
|
||||
double betrag = eingabe.nextInt();
|
||||
|
||||
try {
|
||||
if (fassade.gebührenBezahlen(betrag,bibKartennummer))
|
||||
System.out.println("Gebühren erfolgreich verbucht.");
|
||||
if (fassade.adminAnmelden(bibKartennummer)) {
|
||||
System.out.println("Erfolgreich Angemeldt");
|
||||
System.out.println("Welche Aktion: ");
|
||||
System.out.println("1.Betrag verbuchen");
|
||||
System.out.println("2.ausgeliehene Mediums anzeigen");
|
||||
System.out.println("3.aktuelles Betrag anzeigen");
|
||||
System.out.print(">");
|
||||
String auswahl = eingabe.nextLine();
|
||||
String userID = eingabe.nextLine();
|
||||
|
||||
switch (auswahl) {
|
||||
case "1":
|
||||
System.out.println(fassade.gebührenVerbuchen(userID));
|
||||
break;
|
||||
|
||||
case "2":
|
||||
ArrayList<String> treffer = fassade.ausgeliehenGegenstände(userID);
|
||||
treffer.forEach(System.out::println);
|
||||
break;
|
||||
|
||||
case "3":
|
||||
System.out.println(fassade.getgbührenBenutzer(userID));
|
||||
break;
|
||||
default:
|
||||
System.out.println("Falsche Eingabe");
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("Fehler: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Aktion 9
|
||||
private void datumÄndern() {
|
||||
System.out.println("1.Jahresgebühren");
|
||||
System.out.println("2.Ausleihefristen");
|
||||
String auswahl = eingabe.nextLine();
|
||||
|
||||
switch (auswahl) {
|
||||
case "1":
|
||||
try {
|
||||
System.out.println("Bibkartennummer:");
|
||||
String bibkartennummer = eingabe.nextLine();
|
||||
System.out.println("Datum: ");
|
||||
String datum = eingabe.nextLine();
|
||||
fassade.jahresGebührenBerechnen(bibkartennummer, datum);
|
||||
} catch (BenutzerNichtGefundenException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
break;
|
||||
case "2":
|
||||
|
||||
try {
|
||||
System.out.println("Bibkartennummer:");
|
||||
String bibkartennummer = eingabe.nextLine();
|
||||
System.out.println("AusleihBeginn: ");
|
||||
String ausleihbeginn = eingabe.nextLine();
|
||||
System.out.println("AusleihEnde: ");
|
||||
String ausleihEnde = eingabe.nextLine();
|
||||
System.out.println("Datum vom heute: ");
|
||||
String heutigesDatum = eingabe.nextLine();
|
||||
System.out.println("Medium ID: ");
|
||||
String mediumID = eingabe.nextLine();
|
||||
fassade.datumÄndern(mediumID, ausleihEnde, ausleihEnde, heutigesDatum);
|
||||
} catch (MediumNichtGefundenException e) {
|
||||
System.out.println("Fehler: " + e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue