diff --git a/Domain/Karten/Magierkarte.java b/Domain/Karten/Magierkarte.java index 69d454f..795282b 100644 --- a/Domain/Karten/Magierkarte.java +++ b/Domain/Karten/Magierkarte.java @@ -13,32 +13,38 @@ public class Magierkarte extends Karte { // Statische Konstanten // Statische Attribute - + private static int magierkartenanzahl = 0; // Attribute des Objekts - private Kartenfarbe farbe; + private Kartenfarbe kartenfarbe; private String bezeichnung; // Konstruktoren public Magierkarte() { super(); + setMagierkartenanzahl(magierkartenanzahl); } - public Magierkarte(Kartenfarbe farbe, String bezeichnung) { + public Magierkarte(Kartenfarbe kartenfarbe, String bezeichnung) { super(); - setFarbe(farbe); - setBezeichnung(bezeichnung); + if (magierkartenanzahl < 4) { + setMagierkartenanzahl(magierkartenanzahl); + setKartenfarbe(kartenfarbe); + setBezeichnung(bezeichnung); + } else { + throw new RuntimeException("Es darf nur vier Magier im Spiel geben."); + } } // Statische Methoden // Getter und Setter - public void setFarbe(Kartenfarbe farbe) { - this.farbe = farbe; + public void setKartenfarbe(Kartenfarbe kartenfarbe) { + this.kartenfarbe = kartenfarbe; } - public Kartenfarbe getFarbe() { - return this.farbe; + public Kartenfarbe getKartenfarbe() { + return this.kartenfarbe; } public int getId() { @@ -52,6 +58,14 @@ public class Magierkarte extends Karte { public String getBezeichnung() { return this.bezeichnung; } + + public void setMagierkartenanzahl(int magierkartenanzahl) { + magierkartenanzahl++; + } + + public int getMagierkartenanzahl() { + return magierkartenanzahl; + } // @Overrides @Override diff --git a/Domain/Karten/Narrenkarte.java b/Domain/Karten/Narrenkarte.java index 4cfb3b4..16f08c1 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,8 +25,13 @@ 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 @@ -50,6 +55,10 @@ public class Narrenkarte extends Karte { public String getBezeichnung() { return this.bezeichnung; } + + public void setNarrenkarteanzahl(int narrenkarteanzahl) { + narrenkarteanzahl++; + } // @Overrides @Override diff --git a/Test/Domain/Karten/MagierkarteTest.java b/Test/Domain/Karten/MagierkarteTest.java index 53003d6..2a81c52 100644 --- a/Test/Domain/Karten/MagierkarteTest.java +++ b/Test/Domain/Karten/MagierkarteTest.java @@ -6,6 +6,51 @@ written on: 10 / 10 / 2023 at: 21:18 */ package Test.Domain.Karten; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThrows; + +import java.util.ArrayList; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; +import Domain.Enums.Kartenfarbe; +import Domain.Karten.Magierkarte; + public class MagierkarteTest { + @Test + public void vierMagier() { + Magierkarte m1 = new Magierkarte(Kartenfarbe.MENSCH, "Zauberer"); + Magierkarte m2 = new Magierkarte(Kartenfarbe.ELF, "Zauberer"); + Magierkarte m3 = new Magierkarte(Kartenfarbe.RIESE, "Zauberer"); + Magierkarte m4 = new Magierkarte(Kartenfarbe.ZWERG, "Zauberer"); + + assertEquals(Kartenfarbe.MENSCH, m1.getKartenfarbe()); + assertEquals("Zauberer", m1.getBezeichnung()); + assertEquals("BLAU", Kartenfarbe.MENSCH.getFarbe()); + assertEquals(Kartenfarbe.ELF, m2.getKartenfarbe()); + assertEquals("Zauberer", m2.getBezeichnung()); + assertEquals("GRÜN", Kartenfarbe.ELF.getFarbe()); + assertEquals(Kartenfarbe.RIESE, m3.getKartenfarbe()); + assertEquals("Zauberer", m3.getBezeichnung()); + assertEquals("GELB", Kartenfarbe.RIESE.getFarbe()); + assertEquals(Kartenfarbe.ZWERG, m4.getKartenfarbe()); + assertEquals("Zauberer", m4.getBezeichnung()); + assertEquals("ROT", Kartenfarbe.ZWERG.getFarbe()); + + } + + public void magierAnzahl() { + Magierkarte m1 = new Magierkarte(Kartenfarbe.MENSCH, "Zauberer"); + Magierkarte m2 = new Magierkarte(Kartenfarbe.ELF, "Zauberer"); + Magierkarte m3 = new Magierkarte(Kartenfarbe.RIESE, "Zauberer"); + Magierkarte m4 = new Magierkarte(Kartenfarbe.ZWERG, "Zauberer"); + + assertThrows(RuntimeException.class, () -> { Magierkarte m5 = new Magierkarte(Kartenfarbe.MENSCH, "Zauberer");}); + } } 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");}); + } }