Medium verlängernProzess fertig implementiert und getestet

Gebührenberechnen
3009594 2024-11-15 18:19:05 +01:00
parent 1b02808644
commit da0ce0845f
5 changed files with 68 additions and 13 deletions

View File

@ -21,41 +21,38 @@ public class Ausleihe {
this.benutzer = benutzer;
}
public Mediumverwalter getMediumverwalter() {
return medium;
}
public Benutzer getBenutzer() {
return benutzer;
}
public LocalDate getAusleiheBeginn() {
return ausleiheBeginn;
}
public void setAusleiheBeginn(LocalDate ausleiheBeginn) {
this.ausleiheBeginn = ausleiheBeginn;
}
public LocalDate getAusleiheEnde() {
return ausleiheEnde;
}
public void setAusleiheEnde(LocalDate ausleiheEnde) {
this.ausleiheEnde = ausleiheEnde;
}
public int getVerlängerungen() {
return verlängerungen;
}
public void setVerlängerungen(int verlängerungen) {
this.verlängerungen = verlängerungen;
}
@Override
public String toString() {

View File

@ -112,6 +112,30 @@ public class AusleiheSystem {
return gebühren;
}
public boolean medienVerlängern(Benutzer benutzer, String eindeutigeKennung) throws MediumNichtGefundenException {
Ausleihe medium = benutzer.getAusgeliehenenMedien()
.stream()
.filter(m -> m.getMediumverwalter().getMedium().getID().equalsIgnoreCase(eindeutigeKennung))
.findFirst()
.orElse(null);
if (medium == null)
return false;
LocalDate heutigesDatum = LocalDate.now();
if (heutigesDatum.isAfter(medium.getAusleiheEnde()))
return false;
if (!medium.getMediumverwalter().isVerlängerbar())
return false;
if (medium.getVerlängerungen() == 3)
return false;
medium.setVerlängerungen(medium.getVerlängerungen() + 1);
return true;
}
private Mediumverwalter findMedium(String eindeutigeKennung) throws MediumNichtGefundenException {
if (medien.containsKey(eindeutigeKennung))

View File

@ -1,10 +1,12 @@
package domain.fassade;
package domain.AusleiheSystem;
import java.util.ArrayList;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import domain.fassade.BibSystem;
class MedienRückgabeTest {
private BibSystem bib;

View File

@ -0,0 +1,27 @@
package domain.AusleiheSystem;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import domain.fassade.BibSystem;
class MediumVerlä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.userAnmdelden("K1001");
bib.mediumAusleihen("K1001", "B001");
assertTrue(bib.medienVerlängern("B001", "K1001"));
}
}

View File

@ -54,6 +54,11 @@ public class BibSystem {
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<String> mediumDurchsuchen(String auswahl, String bibKartenNummer)
throws FalscheEingabeException, MediumNichtGefundenException, BenutzerNichtAngemeldetException {