diff --git a/Domain/Karten/Magierkarte.java b/Domain/Karten/Magierkarte.java index bbd551f..a435625 100644 --- a/Domain/Karten/Magierkarte.java +++ b/Domain/Karten/Magierkarte.java @@ -14,41 +14,51 @@ 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 int getId() { - return Karte.getId_card(); + public Kartenfarbe getKartenfarbe() { + return this.kartenfarbe; } + public void setBezeichnung(String bezeichnung) { this.bezeichnung = bezeichnung; } public String getBezeichnung () { return this.bezeichnung; } + public void setMagierkartenanzahl(int magierkartenanzahl) { + magierkartenanzahl++; + } + public int getMagierkartenanzahl() { + return magierkartenanzahl; + } // @Overrides // Public Methoden 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");}); + } }