AnmeldungProzess implementieren und dann testen
parent
9b1dd72e8b
commit
9c65ba768f
|
@ -0,0 +1,29 @@
|
|||
private Benutzer findBenutzer(int kartennummer) {
|
||||
alleBibBenutzer.stream()
|
||||
.filter(k -> k.getBibAusweis().getKartenNummer() == kartennummer)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wie kann ich hier Benutzer mit Stream zurückgeben?
|
||||
|
||||
Antwort:
|
||||
Um in der Methode findBenutzer den Benutzer mit der angegebenen Kartennummer zurückzugeben,
|
||||
kannst du den stream()-Ansatz verwenden und das Ergebnis filtern.
|
||||
Schließlich kannst du mit findFirst() das erste (und in diesem Fall das einzige) Element des Streams
|
||||
abrufen, das die Bedingung erfüllt. Wenn kein Benutzer mit dieser Kartennummer vorhanden ist, könnte findFirst() ein Optional-Objekt ohne Wert zurückgeben.
|
||||
|
||||
Hier ist die angepasste Methode:
|
||||
private Benutzer findBenutzer(int kartennummer) {
|
||||
return alleBibBenutzer.stream()
|
||||
.filter(k -> k.getBibAusweis().getKartenNummer() == kartennummer)
|
||||
.findFirst()
|
||||
.orElse(null); // Gibt null zurück, falls kein Benutzer mit der Kartennummer gefunden wurde
|
||||
}
|
||||
|
||||
Erklärung der Anpassung
|
||||
stream(): Wandelt die ArrayList in einen Stream um.
|
||||
filter(...): Filtert den Stream nach Benutzern, deren Kartennummer mit der gesuchten übereinstimmt.
|
||||
findFirst(): Nimmt das erste Element des Streams, das die Filterbedingung erfüllt.
|
||||
orElse(null): Gibt null zurück, falls kein Benutzer gefunden wurde.
|
|
@ -1,4 +1,4 @@
|
|||
package domain;
|
||||
package domain.Benutzer;
|
||||
|
||||
public class Ausweis {
|
||||
private int kartenNummer;
|
|
@ -1,7 +1,7 @@
|
|||
package domain.Benutzer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import domain.Ausweis;
|
||||
|
||||
import domain.Medium.Medium;
|
||||
|
||||
public abstract class Benutzer {
|
||||
|
@ -11,6 +11,8 @@ public abstract class Benutzer {
|
|||
private int alter;
|
||||
private boolean istStudent;
|
||||
private ArrayList<Medium> ausgeliehenenMedien;
|
||||
private boolean angemeldet;
|
||||
|
||||
|
||||
public Benutzer(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
super();
|
||||
|
@ -19,6 +21,7 @@ public abstract class Benutzer {
|
|||
this.alter = alter;
|
||||
this.istStudent = istStudent;
|
||||
this.ausgeliehenenMedien = new ArrayList<>();
|
||||
this.angemeldet = false;
|
||||
}
|
||||
|
||||
public Ausweis getBibAusweis() {
|
||||
|
@ -64,11 +67,19 @@ public abstract class Benutzer {
|
|||
public void removeMedium(Medium medium) {
|
||||
this.ausgeliehenenMedien.remove(medium);
|
||||
}
|
||||
|
||||
public boolean isAngemeldet() {
|
||||
return angemeldet;
|
||||
}
|
||||
|
||||
public void setAngemeldet(boolean angemeldet) {
|
||||
this.angemeldet = angemeldet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Benutzer [bibAusweisNummer= " + bibAusweis.getKartenNummer() + ", name=" + name + ", alter=" + alter + ", istStudent="
|
||||
+ istStudent + ", ausgeliehenenMedien=" + ausgeliehenenMedien + "]";
|
||||
+ istStudent + ", ist im System Online = " + angemeldet + ", ausgeliehenenMedien=" + ausgeliehenenMedien + "]";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package domain.Benutzer;
|
||||
|
||||
import domain.Ausweis;
|
||||
|
||||
public class Kunde extends Benutzer {
|
||||
|
||||
public Kunde(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package domain.Benutzer;
|
||||
|
||||
import domain.Ausweis;
|
||||
|
||||
public class Mitarbeiter extends Benutzer {
|
||||
|
||||
public Mitarbeiter(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
package domain;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import domain.Benutzer.*;
|
||||
import domain.ExceptionsKlassen.*;
|
||||
|
||||
public class BibSystem {
|
||||
private ArrayList<Benutzer> benutzer;
|
||||
private ArrayList<Benutzer> alleBibBenutzer;
|
||||
|
||||
public BibSystem() {
|
||||
this.benutzer = new ArrayList<>();
|
||||
this.alleBibBenutzer = new ArrayList<>();
|
||||
}
|
||||
|
||||
public String addUser(String name, String type, int alter,String istAdmin) throws FalscheEingabeException {
|
||||
if (name.isEmpty() && type.isEmpty() && alter == 0 && istAdmin.isEmpty() )
|
||||
throw new FalscheEingabeException("Geben Sie alle Fielder ein");
|
||||
public String userRegistrieren(String name, String type, int alter,String istAdmin) throws FalscheEingabeException {
|
||||
if (name.isEmpty() || type.isEmpty() || alter <= 0 || istAdmin.isEmpty())
|
||||
throw new FalscheEingabeException("Geben Sie alle Felder korrekt ein");
|
||||
|
||||
Benutzer benutzer;
|
||||
Ausweis ausweis = new Ausweis();
|
||||
|
@ -24,7 +26,25 @@ public class BibSystem {
|
|||
else
|
||||
benutzer = new Kunde(ausweis,name,alter,istStudentOderSchüler);
|
||||
|
||||
alleBibBenutzer.add(benutzer);
|
||||
return benutzer.toString();
|
||||
|
||||
}
|
||||
|
||||
public boolean userAnmdelden(int kartennummer) throws BenutzerNichtGefundenException {
|
||||
Benutzer tempUser = findBenutzer(kartennummer);
|
||||
if (tempUser == null)
|
||||
throw new BenutzerNichtGefundenException("Benutzer mit Kartennummer " + kartennummer + " nicht gefunden");
|
||||
|
||||
tempUser.setAngemeldet(true);
|
||||
return tempUser.isAngemeldet();
|
||||
}
|
||||
|
||||
private Benutzer findBenutzer(int kartennummer) {
|
||||
return alleBibBenutzer.stream()
|
||||
.filter(k -> k.getBibAusweis().getKartenNummer() == kartennummer)
|
||||
.findFirst() // nimmt das erste Element des Streams, das die Filterbedingung erfüllt.
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package domain.ExceptionsKlassen;
|
||||
|
||||
public class BenutzerNichtGefundenException extends Exception {
|
||||
|
||||
public BenutzerNichtGefundenException(String error) {
|
||||
super(error);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package domain.JTests;
|
||||
|
||||
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.BibSystem;
|
||||
import domain.ExceptionsKlassen.BenutzerNichtGefundenException;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
|
||||
class AnmeldenJTest {
|
||||
|
||||
private BibSystem bib;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
this.bib = new BibSystem();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testUSerIstNichtAngemeldet() {
|
||||
// Status => True
|
||||
assertThrows(BenutzerNichtGefundenException.class, () -> bib.userAnmdelden(1110));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void testUSerIstAngemeldet() throws FalscheEingabeException, BenutzerNichtGefundenException {
|
||||
|
||||
// Status => True
|
||||
bib.userRegistrieren("obai", "student", 16, "nein");
|
||||
int kartennummer = 1000;
|
||||
assertTrue(bib.userAnmdelden(kartennummer));
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -5,8 +5,8 @@ import static org.junit.jupiter.api.Assertions.*;
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import domain.Ausweis;
|
||||
import domain.BibSystem;
|
||||
import domain.Benutzer.Ausweis;
|
||||
import domain.Benutzer.Benutzer;
|
||||
import domain.Benutzer.Kunde;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
|
@ -24,7 +24,7 @@ class RegistrierenTest {
|
|||
String name = "obai";
|
||||
String type = "schüler";
|
||||
String istAdmin = "nein";
|
||||
String test = bib.addUser(name, type, 15,istAdmin);
|
||||
String test = bib.userRegistrieren(name, type, 15,istAdmin);
|
||||
|
||||
assertTrue(test.contains(name));
|
||||
System.out.println(test);
|
||||
|
|
|
@ -3,6 +3,7 @@ package tui;
|
|||
import java.util.Scanner;
|
||||
|
||||
import domain.BibSystem;
|
||||
import domain.ExceptionsKlassen.BenutzerNichtGefundenException;
|
||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||
|
||||
public class Tui {
|
||||
|
@ -36,11 +37,33 @@ public class Tui {
|
|||
case "1":
|
||||
registrierenProzess();
|
||||
break;
|
||||
|
||||
case "2":
|
||||
anmeldenProzess();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void anmeldenProzess() {
|
||||
int kartennummer;
|
||||
System.out.println("Geben Sie bitte die Kartennummer Ihres Bibliotheksausweises an: ");
|
||||
System.out.print(">");
|
||||
kartennummer = eingabe.nextInt();
|
||||
|
||||
try {
|
||||
if (fassade.userAnmdelden(kartennummer))
|
||||
System.out.println("Sie sind nun im System Angemeldet");
|
||||
} catch (BenutzerNichtGefundenException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
startBibProgramm();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void registrierenProzess() {
|
||||
boolean registrierenProzess = true;
|
||||
String name;
|
||||
|
@ -62,7 +85,7 @@ public class Tui {
|
|||
System.out.print(">");
|
||||
istAdmin = eingabe.nextLine();
|
||||
try {
|
||||
fassade.addUser(name, type, alter, istAdmin);
|
||||
fassade.userRegistrieren(name, type, alter, istAdmin);
|
||||
startBibProgramm();
|
||||
} catch (FalscheEingabeException e) {
|
||||
System.out.println(e.getMessage());
|
||||
|
@ -70,5 +93,6 @@ public class Tui {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue