code-Verbesserung

main
3009594 2024-11-19 13:55:24 +01:00
parent e89fa80185
commit 6fabcb4d46
7 changed files with 143 additions and 20 deletions

View File

@ -74,7 +74,7 @@ public class Mediensuchen {
}
public Collection<String> baldVerfügbareMedien(ArrayList<Ausleihe> ausleihe) {
public ArrayList<String> baldVerfügbareMedien(ArrayList<Ausleihe> ausleihe) {
LocalDate heutigesDatum = LocalDate.now();
return ausleihe.stream()

View File

@ -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"));
}
}

View File

@ -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"));
}
}

View File

@ -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);
}
}

View File

@ -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");

View File

@ -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));
}

View File

@ -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<String> 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<String> 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 {