diff --git a/Domain/Karten/Narrenkarte.java b/Domain/Karten/Narrenkarte.java index 293ebbd..8981106 100644 --- a/Domain/Karten/Narrenkarte.java +++ b/Domain/Karten/Narrenkarte.java @@ -13,7 +13,7 @@ public class Narrenkarte extends Karte { // Statische Konstanten // Statische Attribute - + private static int narrenkarteanzahl = 0; // Attribute des Objekts private Kartenfarbe farbe; private String bezeichnung; @@ -25,16 +25,18 @@ public class Narrenkarte extends Karte { public Narrenkarte(Kartenfarbe farbe, String bezeichnung) { super(); - setFarbe(farbe); - setBezeichnung(bezeichnung); + if (narrenkarteanzahl < 4) { + setNarrenkarteanzahl(narrenkarteanzahl); + setFarbe(farbe); + setBezeichnung(bezeichnung); + } else { + throw new RuntimeException("Es darf nur vier Narrenkarten geben."); + } } // Statische Methoden // Getter und Setter - public int getId() { - return Karte.getId_card(); - } - + public void setFarbe(Kartenfarbe farbe) { this.farbe = farbe; } @@ -48,6 +50,10 @@ public class Narrenkarte extends Karte { public String getBezeichnung() { return this.bezeichnung; } + + public void setNarrenkarteanzahl(int narrenkarteanzahl) { + narrenkarteanzahl++; + } // @Overrides // Public Methoden diff --git a/Test/Domain/Karten/NarrenkarteTest.java b/Test/Domain/Karten/NarrenkarteTest.java index dfc5fab..d72df93 100644 --- a/Test/Domain/Karten/NarrenkarteTest.java +++ b/Test/Domain/Karten/NarrenkarteTest.java @@ -6,6 +6,45 @@ written on: 10 / 10 / 2023 at: 21:18 */ package Test.Domain.Karten; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; + +import org.junit.Test; + +import Domain.Enums.Kartenfarbe; +import Domain.Karten.Narrenkarte; + public class NarrenkarteTest { + @Test + public void vierNarren() { + Narrenkarte n1 = new Narrenkarte(Kartenfarbe.MENSCH, "Narr"); + Narrenkarte n2 = new Narrenkarte(Kartenfarbe.ELF, "Narr"); + Narrenkarte n3 = new Narrenkarte(Kartenfarbe.RIESE, "Narr"); + Narrenkarte n4 = new Narrenkarte(Kartenfarbe.ZWERG, "Narr"); + + assertEquals(n1.getFarbe(), Kartenfarbe.MENSCH); + assertEquals(n2.getFarbe(), Kartenfarbe.ELF); + assertEquals(n3.getFarbe(), Kartenfarbe.RIESE); + assertEquals(n4.getFarbe(), Kartenfarbe.ZWERG); + + assertEquals(n1.getBezeichnung(), "Narr"); + assertEquals(n2.getBezeichnung(), "Narr"); + assertEquals(n3.getBezeichnung(), "Narr"); + assertEquals(n4.getBezeichnung(), "Narr"); + + assertEquals(Kartenfarbe.MENSCH.getFarbe(), "BLAU"); + assertEquals(Kartenfarbe.ELF.getFarbe(), "GRÜN"); + assertEquals(Kartenfarbe.RIESE.getFarbe(), "GELB"); + assertEquals(Kartenfarbe.ZWERG.getFarbe(), "ROT"); + } + + public void Narrenanzahl() { + Narrenkarte n1 = new Narrenkarte(Kartenfarbe.MENSCH, "Narr"); + Narrenkarte n2 = new Narrenkarte(Kartenfarbe.ELF, "Narr"); + Narrenkarte n3 = new Narrenkarte(Kartenfarbe.RIESE, "Narr"); + Narrenkarte n4 = new Narrenkarte(Kartenfarbe.ZWERG, "Narr"); + + assertThrows(RuntimeException.class, () -> {Narrenkarte n5 = new Narrenkarte(Kartenfarbe.MENSCH, "Narr");}); + } }