diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/game/GameTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/game/GameTest.java
index 225e0db2..d90aef21 100644
--- a/Projekte/mdga/model/src/test/java/pp/mdga/game/GameTest.java
+++ b/Projekte/mdga/model/src/test/java/pp/mdga/game/GameTest.java
@@ -2,25 +2,169 @@
 
 import org.junit.Before;
 import org.junit.Test;
+import pp.mdga.game.card.PowerCard;
+import pp.mdga.game.card.ShieldCard;
+import pp.mdga.game.card.SwapCard;
+import pp.mdga.game.card.TurboCard;
+import pp.mdga.message.client.LobbyReadyMessage;
+import pp.mdga.message.client.SelectTSKMessage;
+import pp.mdga.message.client.StartGameMessage;
+import pp.mdga.message.server.PlayCardMessage;
+import pp.mdga.message.server.ServerMessage;
+import pp.mdga.server.ServerGameLogic;
+import pp.mdga.server.ServerSender;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.*;
 
 /**
  * this test-class tests the testcases T001-T016
  */
 public class GameTest {
 
+    private ServerGameLogic logic;
+    private Game game;
+
+    private Player playerHost;
+    private int IDHost;
+    private Player playerClient;
+    private int IDClient;
+
+    /**
+     * this method is used to set the variables for this test-class
+     */
     @Before
     public void setup() {
+        game = new Game();
+        logic = new ServerGameLogic(new ServerSender() {
+            @Override
+            public void send(int id, ServerMessage message) {
 
+            }
+
+            @Override
+            public void broadcast(ServerMessage message) {
+
+            }
+
+            @Override
+            public void disconnectClient(int id) {
+
+            }
+
+            @Override
+            public void shutdown() {
+
+            }
+        }, game);
+
+        playerHost = new Player("Host");
+        IDHost = 1;
+        playerClient = new Player("Client");
+        IDClient = 2;
+
+        game.addPlayer(IDHost, playerHost);
+        game.setHost(IDHost);
+        game.addPlayer(IDClient, playerClient);
     }
 
+    /**
+     * this method tests, that, at the beginning of the game, all players have one piece on the start-field and one powerCard
+     * 
+     * T001
+     */
     @Test
     public void testStartLineUp() {
-        // TODO: Implement test logic for starting line-up
+        //tests if both player have no color and are not ready
+        assertFalse(playerClient.isReady());
+        assertFalse(playerHost.isReady());
+        assertEquals(playerClient.getColor(), Color.NONE);
+        assertEquals(playerHost.getColor(), Color.NONE);
+
+        //send the selectTSK-message
+        logic.received(new SelectTSKMessage(Color.CYBER), IDClient);
+        logic.received(new SelectTSKMessage(Color.ARMY), IDHost);
+
+        //tests if the Tsk's are set correctly
+        assertFalse(playerClient.isReady());
+        assertFalse(playerHost.isReady());
+        assertEquals(playerClient.getColor(), Color.CYBER);
+        assertEquals(playerHost.getColor(), Color.ARMY);
+
+        //sends and tests the readyMessage for the client
+        logic.received(new LobbyReadyMessage(), IDClient);
+        assertTrue(playerClient.isReady());
+        assertFalse(playerHost.isReady());
+
+        //try to start the game, which should fail
+        logic.received(new StartGameMessage(), IDHost);
+        assertEquals(logic.getCurrentState(), logic.getLobbyState());
+
+        //sends and tests the readyMessage for the host
+        logic.received(new LobbyReadyMessage(), IDHost);
+        assertTrue(playerClient.isReady());
+        assertTrue(playerHost.isReady());
+
+        //tests if the game has started after the gameStartMessage
+        logic.received(new StartGameMessage(), IDHost);
+        assertEquals(logic.getCurrentState(), logic.getGameState());
+
+        //tests the start positions for the pieces
+        assertTrue(game.getBoard().getInfield()[playerHost.getStartNodeIndex()].isOccupied());
+        assertTrue(game.getBoard().getInfield()[playerHost.getStartNodeIndex()].isOccupied(playerHost.getColor()));
+        assertTrue(game.getBoard().getInfield()[playerClient.getStartNodeIndex()].isOccupied());
+        assertTrue(game.getBoard().getInfield()[playerClient.getStartNodeIndex()].isOccupied(playerClient.getColor()));
+
+        //tests if the players have no handCards
+        assertFalse(playerHost.getHandCards().isEmpty());
+        assertFalse(playerClient.getHandCards().isEmpty());
+        assertEquals(1, playerHost.getHandCards().size());
+        assertEquals(1, playerClient.getHandCards().size());
     }
 
+    /**
+     * this method tests the drawPile
+     * 
+     * T002
+     */
     @Test
     public void testCreatePowerCardDeck() {
-        // TODO: Implement test logic for creating power card deck
+        //tests if both player have no color and are not ready
+        assertFalse(playerClient.isReady());
+        assertFalse(playerHost.isReady());
+        assertEquals(playerClient.getColor(), Color.NONE);
+        assertEquals(playerHost.getColor(), Color.NONE);
+
+        //send the selectTSK-message
+        logic.received(new SelectTSKMessage(Color.CYBER), IDClient);
+        logic.received(new SelectTSKMessage(Color.ARMY), IDHost);
+
+        //sends and tests the readyMessage for the client
+        logic.received(new LobbyReadyMessage(), IDClient);
+        logic.received(new LobbyReadyMessage(), IDHost);
+        assertTrue(playerClient.isReady());
+        assertTrue(playerHost.isReady());
+
+        //tests if the game has started after the gameStartMessage
+        logic.received(new StartGameMessage(), IDHost);
+        assertEquals(logic.getCurrentState(), logic.getGameState());
+
+        //tests if the players have no handCards
+        assertFalse(playerHost.getHandCards().isEmpty());
+        assertFalse(playerClient.getHandCards().isEmpty());
+        assertEquals(1, playerHost.getHandCards().size());
+        assertEquals(1, playerClient.getHandCards().size());
+
+        assertEquals(38, game.getDrawPile().size());
+        ArrayList cards = new ArrayList<>(game.getDrawPile());
+        cards.add(playerClient.getHandCards().get(0));
+        cards.add(playerHost.getHandCards().get(0));
+
+        //tests if the right amount of PowerCards are in the DrawPile
+        assertEquals(12, cards.stream().filter((powerCard -> powerCard instanceof ShieldCard)).toArray().length);
+        assertEquals(12, cards.stream().filter((powerCard -> powerCard instanceof SwapCard)).toArray().length);
+        assertEquals(16, cards.stream().filter((powerCard -> powerCard instanceof TurboCard)).toArray().length);
     }
 
     // UC-Game-02
@@ -70,10 +214,32 @@ public void testChangeActivePlayer() {
         // TODO: Implement test logic for changing the active player
     }
 
-    // UC-Game-09
+    /**
+     * this test-method tests the chances fo the turbo-card
+     * 
+     * T012
+     */
     @Test
     public void testUseTurbo() {
-        // TODO: Implement test logic for using a turbo power-up
+        Die die = new Die();
+
+        ArrayList modifier0 = new ArrayList<>();
+        ArrayList modifier1 = new ArrayList<>();
+        ArrayList modifier2 = new ArrayList<>();
+        for (int i = 0; i < 10000000; i++) {
+            die.modify();
+            switch (die.getDieModifier()) {
+                case 0 -> modifier0.add(0);
+                case 1 -> modifier1.add(1);
+                default -> modifier2.add(2);
+            }
+        }
+        //System.out.println("modifier2.size(): " + modifier2.size() + " modifier1.size(): " + modifier1.size()+" modifier0.size(): " + modifier0.size());
+
+        //test with 5% range for the correct changes
+        assertTrue(5700000 < modifier2.size() && modifier2.size() < 6300000);
+        assertTrue(1950000 < modifier1.size() && modifier1.size() < 2050000);
+        assertTrue(1950000 < modifier0.size() && modifier0.size() < 2050000);
     }
 
     @Test
diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/game/PieceTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/game/PieceTest.java
index a84f80b2..b15792bc 100644
--- a/Projekte/mdga/model/src/test/java/pp/mdga/game/PieceTest.java
+++ b/Projekte/mdga/model/src/test/java/pp/mdga/game/PieceTest.java
@@ -224,7 +224,6 @@ public void shutdown() {
         pieceClient1.setState(home);
         game.getBoard().setPieceOnBoard(19, pieceClient2); //for UC 13, 15
         pieceClient2.setState(active);
-        //game.getBoard().setPieceOnBoard(); //todo
 
         //set the host-pieces here
         game.getBoard().setPieceOnBoard(28, pieceHost0); //for UC 02,14 ,15, 03.01,4
@@ -242,7 +241,6 @@ public void shutdown() {
         game.getBoard().setPieceOnBoard(12,pieceCyber1); //
         pieceCyber1.setState(active);
         game.getPlayerByColor(cyberColor).addWaitingPiece(pieceClient3); //for uc 7
-        //game..... todo
 
         //initializes the states
         gameState= serverGameLogic.getGameState();
diff --git a/Projekte/mdga/model/src/test/java/pp/mdga/server/serverState/ServerStateTest.java b/Projekte/mdga/model/src/test/java/pp/mdga/server/serverState/ServerStateTest.java
index cf0f8b66..70d41422 100644
--- a/Projekte/mdga/model/src/test/java/pp/mdga/server/serverState/ServerStateTest.java
+++ b/Projekte/mdga/model/src/test/java/pp/mdga/server/serverState/ServerStateTest.java
@@ -354,7 +354,7 @@ public void testServerGameSubStatesToInterrupt() {
      */
     @Test
     public void testServerGameToCeremony() {
-        game.getBoard().setPieceOnBoard(22,null);
+        game.getBoard().setPieceOnBoard(22, null);
         Piece piece1 = playerClient.getWaitingArea()[0];
         piece1.setState(PieceState.HOMEFINISHED);
         Piece piece2 = playerClient.getWaitingArea()[1];
@@ -366,10 +366,10 @@ public void testServerGameToCeremony() {
         playerClient.removeWaitingPiece(piece2);
         playerClient.removeWaitingPiece(piece3);
         playerClient.removeWaitingPiece(piece4);
-        playerClient.setPieceInHome(3,piece1);
-        playerClient.setPieceInHome(2,piece2);
-        playerClient.setPieceInHome(1,piece1);
-        game.getBoard().setPieceOnBoard(29,piece4);
+        playerClient.setPieceInHome(3, piece1);
+        playerClient.setPieceInHome(2, piece2);
+        playerClient.setPieceInHome(1, piece1);
+        game.getBoard().setPieceOnBoard(29, piece4);
 
         game.setActiveColor(playerClientColor);
         playerClient.setHandCards(new ArrayList<>());
@@ -393,13 +393,13 @@ public void testServerGameToCeremony() {
         //sends the server in StartPiece
         assertEquals(choosePieceState.getCurrentState(), selectPieceState);
 
-        serverGameLogic.received(new RequestMoveMessage(piece4),IDPlayerClient);
-        assertEquals(serverGameLogic.getCurrentState(),gameState);
-        assertEquals(gameState.getCurrentState(),turnState);
-        assertEquals(turnState.getCurrentState(),movePieceState);
+        serverGameLogic.received(new RequestMoveMessage(piece4), IDPlayerClient);
+        assertEquals(serverGameLogic.getCurrentState(), gameState);
+        assertEquals(gameState.getCurrentState(), turnState);
+        assertEquals(turnState.getCurrentState(), movePieceState);
 
-        serverGameLogic.received(new AnimationEndMessage(),IDPlayerClient);
-        serverGameLogic.received(new AnimationEndMessage(),IDPlayerHost);
+        serverGameLogic.received(new AnimationEndMessage(), IDPlayerClient);
+        serverGameLogic.received(new AnimationEndMessage(), IDPlayerHost);
 
         assertTrue(playerClient.isFinished());
 
@@ -672,12 +672,12 @@ public void testTurnToAnimation() {
 
         //sends the second animationEndMessage
         serverGameLogic.received(animationEnd, IDPlayerHost);
-        serverGameLogic.received(animationEnd,IDPlayerClient);
+        serverGameLogic.received(animationEnd, IDPlayerClient);
 
         //tests if the server is in the AnimationState
         assertEquals(serverGameLogic.getCurrentState(), gameState);
         assertEquals(gameState.getCurrentState(), turnState);
-        assertNotSame(game.getActiveColor(),playerClientColor);
+        assertNotSame(game.getActiveColor(), playerClientColor);
     }
 
     /**
@@ -688,7 +688,7 @@ public void testTurnToAnimation() {
      */
     @Test
     public void testTurnToGameEndState() {
-        game.getBoard().setPieceOnBoard(22,null);
+        game.getBoard().setPieceOnBoard(22, null);
         Piece piece1 = playerClient.getWaitingArea()[0];
         piece1.setState(PieceState.HOMEFINISHED);
         Piece piece2 = playerClient.getWaitingArea()[1];
@@ -700,10 +700,10 @@ public void testTurnToGameEndState() {
         playerClient.removeWaitingPiece(piece2);
         playerClient.removeWaitingPiece(piece3);
         playerClient.removeWaitingPiece(piece4);
-        playerClient.setPieceInHome(3,piece1);
-        playerClient.setPieceInHome(2,piece2);
-        playerClient.setPieceInHome(1,piece1);
-        game.getBoard().setPieceOnBoard(29,piece4);
+        playerClient.setPieceInHome(3, piece1);
+        playerClient.setPieceInHome(2, piece2);
+        playerClient.setPieceInHome(1, piece1);
+        game.getBoard().setPieceOnBoard(29, piece4);
 
         game.setActiveColor(playerClientColor);
         playerClient.setHandCards(new ArrayList<>());
@@ -727,13 +727,13 @@ public void testTurnToGameEndState() {
         //sends the server in StartPiece
         assertEquals(choosePieceState.getCurrentState(), selectPieceState);
 
-        serverGameLogic.received(new RequestMoveMessage(piece4),IDPlayerClient);
-        assertEquals(serverGameLogic.getCurrentState(),gameState);
-        assertEquals(gameState.getCurrentState(),turnState);
-        assertEquals(turnState.getCurrentState(),movePieceState);
+        serverGameLogic.received(new RequestMoveMessage(piece4), IDPlayerClient);
+        assertEquals(serverGameLogic.getCurrentState(), gameState);
+        assertEquals(gameState.getCurrentState(), turnState);
+        assertEquals(turnState.getCurrentState(), movePieceState);
 
-        serverGameLogic.received(new AnimationEndMessage(),IDPlayerClient);
-        serverGameLogic.received(new AnimationEndMessage(),IDPlayerHost);
+        serverGameLogic.received(new AnimationEndMessage(), IDPlayerClient);
+        serverGameLogic.received(new AnimationEndMessage(), IDPlayerHost);
 
         assertTrue(playerClient.isFinished());
 
@@ -911,23 +911,23 @@ public void testMovePieceToTurnEndState() {
         //tests if the server is in SelectPiece
         assertEquals(serverGameLogic.getCurrentState(), gameState);
         assertEquals(gameState.getCurrentState(), turnState);
-        assertEquals(turnState.getCurrentState(),choosePieceState);
-        assertEquals(choosePieceState.getCurrentState(),selectPieceState);
+        assertEquals(turnState.getCurrentState(), choosePieceState);
+        assertEquals(choosePieceState.getCurrentState(), selectPieceState);
 
-        serverGameLogic.received(new RequestMoveMessage(pieceClient4),IDPlayerClient);
+        serverGameLogic.received(new RequestMoveMessage(pieceClient4), IDPlayerClient);
 
         //tests if the server is in SelectPiece
         assertEquals(serverGameLogic.getCurrentState(), gameState);
         assertEquals(gameState.getCurrentState(), turnState);
-        assertEquals(turnState.getCurrentState(),movePieceState);
+        assertEquals(turnState.getCurrentState(), movePieceState);
 
-        serverGameLogic.received(new AnimationEndMessage(),IDPlayerClient);
-        serverGameLogic.received(new AnimationEndMessage(),IDPlayerHost);
+        serverGameLogic.received(new AnimationEndMessage(), IDPlayerClient);
+        serverGameLogic.received(new AnimationEndMessage(), IDPlayerHost);
 
         assertEquals(serverGameLogic.getCurrentState(), gameState);
         assertEquals(gameState.getCurrentState(), turnState);
-        assertNotEquals(turnState.getCurrentState(),movePieceState);
-        assertNotSame(game.getActiveColor(),playerClientColor);
+        assertNotEquals(turnState.getCurrentState(), movePieceState);
+        assertNotSame(game.getActiveColor(), playerClientColor);
     }
 
     /**
@@ -1250,7 +1250,7 @@ public void testNoPieceToNoTurn() {
         //tests if the server is in WaitPiece
         assertEquals(serverGameLogic.getCurrentState(), gameState);
         assertEquals(gameState.getCurrentState(), turnState);
-        assertNotSame(game.getActiveColor(),playerClientColor);
+        assertNotSame(game.getActiveColor(), playerClientColor);
     }
 
     /**
@@ -1283,7 +1283,7 @@ public void testNoTurnToTurnEndState() {
         //tests if the server is in WaitPiece
         assertEquals(serverGameLogic.getCurrentState(), gameState);
         assertEquals(gameState.getCurrentState(), turnState);
-        assertNotSame(game.getActiveColor(),playerClientColor);
+        assertNotSame(game.getActiveColor(), playerClientColor);
     }
 
     /**
@@ -1369,7 +1369,7 @@ public void testWaitingPieceToMovePiece() {
         assertEquals(turnState.getCurrentState(), choosePieceState);
         assertEquals(choosePieceState.getCurrentState(), waitingPieceState);
 
-        serverGameLogic.received(new RequestMoveMessage(playerClient.getWaitingPiece()),IDPlayerClient);
+        serverGameLogic.received(new RequestMoveMessage(playerClient.getWaitingPiece()), IDPlayerClient);
 
         //tests if the server is in WaitPiece
         assertEquals(serverGameLogic.getCurrentState(), gameState);