diff --git a/Domain/Enums/Kartenfarbe.java b/Domain/Enums/Kartenfarbe.java index 5a9f882..d3a0994 100644 --- a/Domain/Enums/Kartenfarbe.java +++ b/Domain/Enums/Kartenfarbe.java @@ -19,5 +19,10 @@ public enum Kartenfarbe { public String getFarbe() { return farbe; } + + @Override + public String toString() { + return getFarbe(); + } } diff --git a/Domain/Karten/Magierkarte.java b/Domain/Karten/Magierkarte.java index 434e7d2..d38f1c0 100644 --- a/Domain/Karten/Magierkarte.java +++ b/Domain/Karten/Magierkarte.java @@ -6,13 +6,12 @@ written on: 05 / 10 / 2023 at: 23:41 */ package Domain.Karten; - public class Magierkarte extends Karte { // Statische Konstanten private static String TRUMPF_NAME = "Zauberer"; // Statische Attribute - + // Attribute des Objekts private String bezeichnung; // Konstruktoren @@ -35,7 +34,10 @@ public class Magierkarte extends Karte { } // @Overrides - + @Override + public String toString() { + return this.getBezeichnung(); + } // Public Methoden // Private Methoden diff --git a/Domain/Karten/Narrenkarte.java b/Domain/Karten/Narrenkarte.java index 20c7d79..c55f29b 100644 --- a/Domain/Karten/Narrenkarte.java +++ b/Domain/Karten/Narrenkarte.java @@ -6,7 +6,6 @@ written on: 05 / 10 / 2023 at: 23:41 */ package Domain.Karten; - public class Narrenkarte extends Karte { // Statische Konstanten @@ -35,7 +34,10 @@ public class Narrenkarte extends Karte { } // @Overrides - + @Override + public String toString() { + return this.getBezeichnung(); + } // Public Methoden // Private Methoden diff --git a/Domain/Karten/Zahlenkarte.java b/Domain/Karten/Zahlenkarte.java index bed702c..621bb27 100644 --- a/Domain/Karten/Zahlenkarte.java +++ b/Domain/Karten/Zahlenkarte.java @@ -21,7 +21,7 @@ public class Zahlenkarte extends Karte { /*------------------------------------------*/ // Attribute jedes Objektes /*------------------------------------------*/ - private Kartenfarbe farbe; + private Kartenfarbe kartenfarbe; private int kartenNummer; /*------------------------------------------*/ @@ -31,9 +31,9 @@ public class Zahlenkarte extends Karte { super(); } - public Zahlenkarte(Kartenfarbe farbe, int kartenNummer) { + public Zahlenkarte(Kartenfarbe kartenfarbe, int kartenNummer) { super(); - setFarbe(farbe); + setKartenfarbe(kartenfarbe); setKartenNummer(kartenNummer); } @@ -44,12 +44,12 @@ public class Zahlenkarte extends Karte { /*------------------------------------------*/ // Getter und Setter /*------------------------------------------*/ - public void setFarbe(Kartenfarbe farbe) { - this.farbe = farbe; + public void setKartenfarbe(Kartenfarbe kartenfarbe) { + this.kartenfarbe = kartenfarbe; } - public Kartenfarbe getFarbe() { - return farbe; + public Kartenfarbe getKartenfarbe() { + return kartenfarbe; } public void setKartenNummer(int kartenNummer) { @@ -63,7 +63,10 @@ public class Zahlenkarte extends Karte { /*------------------------------------------*/ // @Overrides /*------------------------------------------*/ - + @Override + public String toString() { + return "Charakterkarte: " + this.getKartenfarbe().name() + " (" + this.getKartenfarbe() + ")."; + } /*------------------------------------------*/ // öffentliche Methodes /*------------------------------------------*/ diff --git a/Domain/Spieler.java b/Domain/Spieler.java index e01e2d7..918ec0c 100644 --- a/Domain/Spieler.java +++ b/Domain/Spieler.java @@ -23,7 +23,7 @@ public class Spieler implements Serializable { /*------------------------------------------*/ // Attribute jedes Objektes /*------------------------------------------*/ - private int id; + private int id = 0; private String name; private int vorhersage; private Geschlecht geschlecht; @@ -48,9 +48,22 @@ public class Spieler implements Serializable { */ public Spieler(int id, String name, Geschlecht geschlecht) { this(); - setId(id); - setName(name); - setGeschlecht(geschlecht); + if (id < 6) { + setId(id); + } + else { + throw new RuntimeException("Es darf nur max 6 Spieler geben."); + } + if (geschlecht == Geschlecht.KI) { + setName(name); // Bei KI wird kein Name gesetzt. name = leerer String + } + else if (name.length() > 2) { + setName(name); // Es wird geprüft, ob Name größer 2 Zeichen + } + else { + throw new RuntimeException("Der Name muss länger als 2 Buchstaben sein."); + } + setGeschlecht(geschlecht); } /** diff --git a/Test/Domain/Karten/MagierkarteTest.java b/Test/Domain/Karten/MagierkarteTest.java index ba13e7d..38aec36 100644 --- a/Test/Domain/Karten/MagierkarteTest.java +++ b/Test/Domain/Karten/MagierkarteTest.java @@ -11,6 +11,14 @@ import org.junit.Test; import Domain.Enums.Kartenfarbe; import Domain.Karten.Magierkarte; +/** + * + * @author sellm + * @version + * + * + */ + public class MagierkarteTest { @Test @@ -31,6 +39,8 @@ public class MagierkarteTest { assertEquals("Zauberer", m4.getBezeichnung()); + assertEquals("Zauberer: MENSCH (BLAU).", m1.toString()); + } } diff --git a/Test/Domain/Karten/NarrenkarteTest.java b/Test/Domain/Karten/NarrenkarteTest.java index 0696af2..1810580 100644 --- a/Test/Domain/Karten/NarrenkarteTest.java +++ b/Test/Domain/Karten/NarrenkarteTest.java @@ -9,7 +9,6 @@ package Test.Domain.Karten; import static org.junit.Assert.assertEquals; import org.junit.Test; -import Domain.Enums.Kartenfarbe; import Domain.Karten.Narrenkarte; public class NarrenkarteTest { @@ -20,13 +19,11 @@ public class NarrenkarteTest { Narrenkarte n2 = new Narrenkarte(); Narrenkarte n3 = new Narrenkarte(); Narrenkarte n4 = new Narrenkarte(); - - + assertEquals(n1.getBezeichnung(), "Narr"); assertEquals(n2.getBezeichnung(), "Narr"); assertEquals(n3.getBezeichnung(), "Narr"); assertEquals(n4.getBezeichnung(), "Narr"); - - + } } diff --git a/Test/Domain/Karten/ZahlenkarteTest.java b/Test/Domain/Karten/ZahlenkarteTest.java index 581af44..2671a5e 100644 --- a/Test/Domain/Karten/ZahlenkarteTest.java +++ b/Test/Domain/Karten/ZahlenkarteTest.java @@ -10,54 +10,56 @@ import static org.junit.Assert.assertEquals; import java.util.HashMap; -import org.junit.jupiter.api.Test; +import org.junit.Test; import Domain.Enums.Kartenfarbe; import Domain.Karten.Zahlenkarte; public class ZahlenkarteTest { - + /** - * Die Objekterzeugung der HashMap und der Zahlenkarten + * Die Objekterzeugung der HashMap und der Zahlenkarten * kann auch in ein @BeforeAll eingetragen werden. */ /** - * Der @Test erzeugt Zahlenkarten von 1 bis 13. prüft aber - * nur zwei Positionen in der HashMap, um die + * Der @Test erzeugt Zahlenkarten von 1 bis 13. prüft aber + * nur zwei Positionen in der HashMap, um die * Objektdaten zu validieren. */ @Test public void dreizehnZahlenkartenMENSCH() { - + HashMap zm = new HashMap(); Zahlenkarte zahlenkarte = null; for (int i = 1; i <= 13; i++) { zahlenkarte = new Zahlenkarte(Kartenfarbe.MENSCH, i); - zm.put (i, zahlenkarte); + zm.put(i, zahlenkarte); } - - assertEquals(zm.get(7).getFarbe(), Kartenfarbe.MENSCH); + + assertEquals(zm.get(7).getKartenfarbe(), Kartenfarbe.MENSCH); assertEquals(zm.get(7).getKartenNummer(), 7); - - assertEquals(zm.get(4).getFarbe(), Kartenfarbe.MENSCH); + + assertEquals(zm.get(4).getKartenfarbe(), Kartenfarbe.MENSCH); assertEquals(zm.get(4).getKartenNummer(), 4); } + @Test public void dreizehnZahlenkartenElf() { HashMap ze = new HashMap(); Zahlenkarte zahlenkarte = null; for (int i = 1; i <= 13; i++) { zahlenkarte = new Zahlenkarte(Kartenfarbe.ELF, i); - ze.put (i, zahlenkarte); + ze.put(i, zahlenkarte); } - - assertEquals(ze.get(7).getFarbe(), Kartenfarbe.ELF); + + assertEquals(ze.get(7).getKartenfarbe(), Kartenfarbe.ELF); assertEquals(ze.get(7).getKartenNummer(), 7); - - assertEquals(ze.get(4).getFarbe(), Kartenfarbe.ELF); + + assertEquals(ze.get(4).getKartenfarbe(), Kartenfarbe.ELF); assertEquals(ze.get(4).getKartenNummer(), 4); } + @Test public void dreizehnZahlenkartenZWERG() { HashMap zz = new HashMap(); @@ -66,27 +68,28 @@ public class ZahlenkarteTest { zahlenkarte = new Zahlenkarte(Kartenfarbe.ZWERG, i); zz.put(i, zahlenkarte); } - - assertEquals(zz.get(7).getFarbe(), Kartenfarbe.ZWERG); + + assertEquals(zz.get(7).getKartenfarbe(), Kartenfarbe.ZWERG); assertEquals(zz.get(7).getKartenNummer(), 7); - - assertEquals(zz.get(4).getFarbe(), Kartenfarbe.ZWERG); + + assertEquals(zz.get(4).getKartenfarbe(), Kartenfarbe.ZWERG); assertEquals(zz.get(4).getKartenNummer(), 4); - + } + @Test public void dreizehnZahlenkartenRIESE() { HashMap zr = new HashMap(); Zahlenkarte zahlenkarte = null; for (int i = 1; i <= 13; i++) { zahlenkarte = new Zahlenkarte(Kartenfarbe.RIESE, i); - zr.put(i, zahlenkarte); + zr.put(i, zahlenkarte); } - - assertEquals(zr.get(9).getFarbe(), Kartenfarbe.RIESE); + + assertEquals(zr.get(9).getKartenfarbe(), Kartenfarbe.RIESE); assertEquals(zr.get(9).getKartenNummer(), 9); - - assertEquals(zr.get(2).getFarbe(), Kartenfarbe.RIESE); + + assertEquals(zr.get(2).getKartenfarbe(), Kartenfarbe.RIESE); assertEquals(zr.get(2).getKartenNummer(), 2); } } diff --git a/Test/Domain/SpielerTest.java b/Test/Domain/SpielerTest.java index d346317..ee93bde 100644 --- a/Test/Domain/SpielerTest.java +++ b/Test/Domain/SpielerTest.java @@ -12,18 +12,25 @@ import Domain.Spieler; import Domain.Enums.Geschlecht; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; public class SpielerTest { Spieler spieler = new Spieler(0, "Herbert", Geschlecht.M, 0); Spieler spieler2 = new Spieler(1, "Heinz", Geschlecht.M, 0); Spieler spieler3 = new Spieler(2, "Ulrike", Geschlecht.W, 0); + Spieler spieler4 = new Spieler(3, "HerrFrau", Geschlecht.D, 0); + Spieler spieler5 = new Spieler(4, "", Geschlecht.KI, 0); + Spieler spieler6 = new Spieler(5, "", Geschlecht.KI, 0); @Test public void idTest() { assertEquals(0, spieler.getId()); assertEquals(1, spieler2.getId()); assertEquals(2, spieler3.getId()); + assertEquals(3, spieler4.getId()); + assertEquals(4, spieler5.getId()); + assertEquals(5, spieler6.getId()); } @Test @@ -42,6 +49,11 @@ public class SpielerTest { assertEquals("Herbert", spieler.getName()); spieler.setName("Heinz"); assertEquals("Heinz", spieler.getName()); + assertEquals("", spieler5.getName()); //Kein Name notwendig, da KI. } + @Test + public void exceptionsTest() { + assertThrows(RuntimeException.class, () -> new Spieler(6, "", Geschlecht.KI, 0)); + } }