From 4030351fde34ffe213f85471f50fee724f210e4c Mon Sep 17 00:00:00 2001 From: Mohammad Hawrami <2210970@stud.hs-mannheim.de> Date: Sun, 5 Nov 2023 20:40:16 +0100 Subject: [PATCH] Erweiterung der Klassen Block, Blockeintrag und Blockzeile und fertigung des Testes Blockeintrag --- Domain/Block/Block.java | 21 +++++++--- Domain/Block/Blockeintrag.java | 15 ++++--- Domain/Block/Blockzeile.java | 39 +++++++++++++------ Test/Domain/Block/BlockeintragTest.java | 52 ++++++++++++++++++++++++- 4 files changed, 105 insertions(+), 22 deletions(-) diff --git a/Domain/Block/Block.java b/Domain/Block/Block.java index bdf34d0..b32947c 100644 --- a/Domain/Block/Block.java +++ b/Domain/Block/Block.java @@ -6,13 +6,24 @@ written on: 05 / 10 / 2023 at: 23:43 */ package Domain.Block; +import java.util.ArrayList; + public class Block { - public void addZeile(){ + private ArrayList zeilen; + public Block(){ + this.zeilen = new ArrayList<>(); } - public Blockzeile[] getDaten() { - return null; + public void addZeile(Blockzeile blockzeile) { + zeilen.add(blockzeile); } - //neues Kommentar -} + + public Blockzeile[] getDaten(){ + if(zeilen.isEmpty()){ + System.out.println("Die Liste der Blockzeilen ist Leer. "); + return zeilen.toArray(new Blockzeile[0]); + } + return zeilen.toArray(new Blockzeile[0]); + } +} \ No newline at end of file diff --git a/Domain/Block/Blockeintrag.java b/Domain/Block/Blockeintrag.java index e8eb99c..08a1177 100644 --- a/Domain/Block/Blockeintrag.java +++ b/Domain/Block/Blockeintrag.java @@ -7,16 +7,19 @@ written on: 05 / 10 / 2023 at: 23:44 package Domain.Block; public class Blockeintrag { - public int punkte; - public int stiche; - + private int punkte; + private int stiche; + private int spielerId; public Blockeintrag() { } public Blockeintrag(int punkte, int stiche) { - this.punkte = punkte; + if(stiche < 0){ + throw new IllegalArgumentException("Ihre Stiche dürfen nicht im Negativen bereich sein"); + } this.stiche = stiche; + this.punkte = punkte; } public int getPunkte() { @@ -28,11 +31,13 @@ public class Blockeintrag { } public void setStiche(int stiche) { + if (stiche < 0){ + throw new IllegalArgumentException("Ihre Stich dürfen nicht im Negative bereich sein"); + } this.stiche = stiche; } public void setPunkte(int punkte) { this.punkte = punkte; } - } diff --git a/Domain/Block/Blockzeile.java b/Domain/Block/Blockzeile.java index 1bde72b..a179732 100644 --- a/Domain/Block/Blockzeile.java +++ b/Domain/Block/Blockzeile.java @@ -6,6 +6,8 @@ written on: 05 / 10 / 2023 at: 23:44 */ package Domain.Block; +import java.util.ArrayList; + public class Blockzeile { /*------------------------------------------*/ @@ -21,17 +23,20 @@ public class Blockzeile { /*------------------------------------------*/ private int rundenNummer; - private Blockeintrag[] eintraege; + private ArrayList eintraege; /*------------------------------------------*/ // Konstruktoren (default und spezifische) /*------------------------------------------*/ - public Blockzeile(int rundenNummer, int spielerAnzahl) { - this.rundenNummer = rundenNummer; - this.eintraege = new Blockeintrag[spielerAnzahl]; + public Blockzeile(){ + } + public Blockzeile(int rundenNummer) { + this.rundenNummer = rundenNummer; + this.eintraege = new ArrayList<>(); + } /*------------------------------------------*/ // statische Methoden /*------------------------------------------*/ @@ -39,7 +44,13 @@ public class Blockzeile { /*------------------------------------------*/ // Getter und Setter /*------------------------------------------*/ + public int getRundenNummer() { + return rundenNummer; + } + public void setRundenNummer(int rundenNummer) { + this.rundenNummer = rundenNummer; + } /*------------------------------------------*/ // @Overrides /*------------------------------------------*/ @@ -49,20 +60,26 @@ public class Blockzeile { /*------------------------------------------*/ public void addEintrag(Blockeintrag be) { - - for (int i = 0; i < eintraege.length; i++) { - if (eintraege[i] == null) { - eintraege[i] = be; - } + if(eintraege != null){ + eintraege.add(be); } } public Blockeintrag[] getDaten() { - return eintraege; + return eintraege.toArray(new Blockeintrag[0]); } - /*------------------------------------------*/ // Hilfsmethoden (privat) /*------------------------------------------*/ + public Blockeintrag[] getValidDaten() { + Blockeintrag[] dataArray = getDaten(); + + for (Blockeintrag eintrag : dataArray) { + if (eintrag == null) { + throw new IllegalStateException("Das Array ist leer"); + } + } + return dataArray; + } } diff --git a/Test/Domain/Block/BlockeintragTest.java b/Test/Domain/Block/BlockeintragTest.java index 128d0a2..20686c4 100644 --- a/Test/Domain/Block/BlockeintragTest.java +++ b/Test/Domain/Block/BlockeintragTest.java @@ -6,6 +6,56 @@ written on: 10 / 10 / 2023 at: 21:17 */ package Test.Domain.Block; -public class BlockeintragTest { +import Domain.Block.Blockeintrag; +import org.junit.Test; +import static junit.framework.TestCase.assertEquals; +import static org.junit.Assert.assertThrows; + +public class BlockeintragTest { + @Test + public void testNormalerEintrag() { + Blockeintrag e = new Blockeintrag(0,2); + assertEquals(0, e.getPunkte()); + e.setPunkte(10); + assertEquals(10, e.getPunkte()); + e.setPunkte(110); + assertEquals(110, e.getPunkte()); + e.setPunkte(130); + assertEquals(130, e.getPunkte()); + e.setPunkte(200); + assertEquals(200, e.getPunkte()); + + assertEquals(2, e.getStiche()); + e.setStiche(20); + assertEquals(20, e.getStiche()); + e.setStiche(17); + assertEquals(17, e.getStiche()); + e.setStiche(34); + assertEquals(34, e.getStiche()); + e.setStiche(19); + assertEquals(19, e.getStiche()); + } + + @Test + public void testNegativePunkte() { + Blockeintrag e = new Blockeintrag(-50, 3); + assertEquals(-50, e.getPunkte()); + e.setPunkte(-10); + assertEquals(-10, e.getPunkte()); + e.setPunkte(-60); + assertEquals(-60, e.getPunkte()); + e.setPunkte(-80); + assertEquals(-80, e.getPunkte()); + e.setPunkte(-200); + assertEquals(-200, e.getPunkte()); + } + + //Exception Test hier schreiben + @Test + public void testNegativeStiche() throws Exception { + assertThrows(IllegalArgumentException.class, () -> new Blockeintrag(50, -3)); + assertThrows(IllegalArgumentException.class, () -> new Blockeintrag(30,-1)); + assertThrows(IllegalArgumentException.class, () -> new Blockeintrag(10, -4)); + } }