Medium verlängernProzess fertig implementiert und getestet
parent
1b02808644
commit
da0ce0845f
|
@ -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() {
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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;
|
|
@ -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"));
|
||||
}
|
||||
|
||||
}
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue