public void splayerToXMLNotDragonHolder() { Board board = new Board(); TestScenerios test = new TestScenerios(); Tile t1 = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7); List <Tile> hand = test.makeHand(t1); SPlayer p1 = new SPlayer("red", hand, new RandomPlayer()); XElement t1XML = new XElement("tile", new XElement("connect", new XElement("n", 0), new XElement("n", 1)), new XElement("connect", new XElement("n", 2), new XElement("n", 3)), new XElement("connect", new XElement("n", 4), new XElement("n", 5)), new XElement("connect", new XElement("n", 6), new XElement("n", 7))); XElement splayerXMLExpected = new XElement("splayer-nodragon", new XElement("color", "red"), new XElement("set", t1XML)); XElement splayerXMLActual = XMLEncoder.splayerToXML(p1, board); Console.WriteLine(splayerXMLActual); Assert.IsTrue(XNode.DeepEquals(splayerXMLExpected, splayerXMLActual)); }
public void DragonTileHolderDoesNotChangeAfterPlayATurn() { TestScenerios test = new TestScenerios(); Admin a = test.createAdminWithDrawPile(new List <Tile> { }); Board b = new Board(); Tile t1 = test.makeTile(7, 0, 6, 1, 5, 4, 2, 3); Tile t2 = test.makeTile(1, 3, 0, 5, 2, 7, 4, 6); Tile t3 = test.makeTile(2, 4, 3, 6, 5, 1, 7, 0); SPlayer p1 = test.createPlayerAtPos("red", new List <Tile> { t1, t2 }, new RandomPlayer(), new Posn(3, 4, 3), b); SPlayer p2 = test.createPlayerAtPos("green", new List <Tile> { t1, t2, t3 }, new RandomPlayer(), new Posn(3, 4, 3), b); SPlayer p3 = test.createPlayerAtPos("blue", new List <Tile> { t1, t2 }, new RandomPlayer(), new Posn(2, 4, 6), b); a.addToActivePlayers(p1); a.addToActivePlayers(p2); a.addToActivePlayers(p3); a.setDragonTileHolder(p3); a.playATurn(b, t3); Assert.AreEqual("blue", a.getDragonTileHolder().getColor()); Console.WriteLine(XMLEncoder.splayerToXML(p3, a)); }
public void test() { Board board = new Board(); TestScenerios test = new TestScenerios(); Tile t1 = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7); board.grid[0, 0] = t1; SPlayer p1 = new SPlayer("red", new List <Tile>(), new RandomPlayer()); p1.initialize(board); test.setStartPos(board, p1, new Posn(0, 0, 3)); XElement boardToXML = XMLEncoder.boardToXML(board); XElement boardToXMLExpected = XElement.Parse("<board><map><ent><xy><x>0</x><y>0</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent></map><map><ent><color>red</color><pawn-loc><v></v><n>1</n><n>1</n></pawn-loc></ent></map></board>"); Assert.IsTrue(XNode.DeepEquals(boardToXML, boardToXMLExpected)); XElement tilesXML = boardToXMLExpected.Elements("map").ElementAt(0); Console.WriteLine(tilesXML); XElement pawnsXML = boardToXMLExpected.Elements("map").ElementAt(1); Console.WriteLine(pawnsXML); string xval = tilesXML.Descendants("x").ElementAt(0).Value; int x = int.Parse(xval); Console.WriteLine(x); }
public void encodeVoid() { XElement expected = new XElement("void", ""); XElement actual = XMLEncoder.encodeVoid(); Assert.IsTrue(XNode.DeepEquals(expected, actual)); }
public void boardToXMLPlayerEliminatedCurrentTurn() { Admin a = new Admin(); Board board = new Board(); TestScenerios test = new TestScenerios(); // Board set up Tile normalTile = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7); Tile eliminationTile = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7); Tile drawPileTile = test.makeTile(0, 3, 2, 1, 4, 7, 6, 5); board.grid[0, 0] = normalTile; board.addTileToDrawPile(drawPileTile); // Player set up SPlayer eliminatedPlayer = new SPlayer("blue", new List <Tile>(), new RandomPlayer()); eliminatedPlayer.initialize(board); test.setStartPos(board, eliminatedPlayer, new Posn(3, -1, 3)); SPlayer activePlayer = new SPlayer("red", new List <Tile>(), new RandomPlayer()); activePlayer.initialize(board); test.setStartPos(board, activePlayer, new Posn(0, 0, 3)); TurnResult tmpturn = a.playATurn(board, eliminationTile); // Test XElement boardToXMLActual = XMLEncoder.boardToXML(tmpturn.b); XElement boardToXMLExpected = XElement.Parse("<board><map><ent><xy><x>0</x><y>0</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>0</x><y>3</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>5</n></connect><connect><n>6</n><n>7</n></connect></tile></ent></map><map><ent><color>red</color><pawn-loc><v></v><n>1</n><n>1</n></pawn-loc></ent><ent><color>blue</color><pawn-loc><v></v><n>0</n><n>6</n></pawn-loc></ent></map></board>"); Assert.IsTrue(XNode.DeepEquals(boardToXMLActual, boardToXMLExpected)); }
public void boardToXMLWithEliminatedPlayers() { Board board = new Board(); TestScenerios test = new TestScenerios(); // Board set up Tile normalTile = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7); Tile eliminationTile = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7); board.placeTileAt(normalTile, 0, 0); board.placeTileAt(eliminationTile, 3, 0); // Player set up SPlayer activePlayer = new SPlayer("red", new List <Tile>(), new RandomPlayer()); //activePlayer.initialize(board); test.setStartPos(board, activePlayer, new Posn(0, 0, 3)); SPlayer eliminatedPlayer = new SPlayer("blue", new List <Tile>(), new RandomPlayer()); //eliminatedPlayer.initialize(board); test.setStartPos(board, eliminatedPlayer, new Posn(3, 0, 7)); // Test XElement boardToXMLActual = XMLEncoder.boardToXML(board); XElement boardToXMLExpected = XElement.Parse("<board><map><ent><xy><x>0</x><y>0</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>0</x><y>3</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>5</n></connect><connect><n>6</n><n>7</n></connect></tile></ent></map><map><ent><color>red</color><pawn-loc><v></v><n>1</n><n>1</n></pawn-loc></ent><ent><color>blue</color><pawn-loc><v></v><n>0</n><n>6</n></pawn-loc></ent></map></board>"); Assert.IsTrue(XNode.DeepEquals(boardToXMLActual, boardToXMLExpected)); }
public void nameToXML() { string color = "green"; XElement expected = new XElement("player-name", color); XElement actual = XMLEncoder.nameToXML(color); Assert.IsTrue(XNode.DeepEquals(expected, actual)); }
public void listOfColorsToXML() { XElement allColorsExpected = new XElement("list", new XElement("color", "blue"), new XElement("color", "hotpink"), new XElement("color", "green")); List <string> allColors = new List <string> { "blue", "hotpink", "green" }; XElement allColorsActual = XMLEncoder.listOfColorsToXML(allColors); Assert.IsTrue(XNode.DeepEquals(allColorsExpected, allColorsActual)); }
public void PosnToPawnLocXML() { Posn testPosn1 = new Posn(1, 1, 0); Posn testPosn2 = new Posn(0, 1, 5); XElement pawnLocXML1 = XMLEncoder.posnToPawnLocXML(testPosn1); XElement pawnLocXML2 = XMLEncoder.posnToPawnLocXML(testPosn2); XElement pawnLocXMLExpected = new XElement("pawn-loc", new XElement("h", ""), new XElement("n", 1), new XElement("n", 2)); Assert.IsTrue(XNode.DeepEquals(pawnLocXML1, pawnLocXMLExpected)); Assert.IsTrue(XNode.DeepEquals(pawnLocXML2, pawnLocXMLExpected)); }
public void pawnToXML() { TestScenerios test = new TestScenerios(); Board board = new Board(); SPlayer p1 = new SPlayer("blue", new List <Tile>()); test.setStartPos(board, p1, new Posn(0, 0, 5)); SPlayer p2 = new SPlayer("hotpink", new List <Tile>()); test.setStartPos(board, p2, new Posn(4, 4, 5)); SPlayer p3 = new SPlayer("green", new List <Tile>()); test.setStartPos(board, p3, new Posn(3, 2, 6)); List <SPlayer> players = new List <SPlayer> { p1, p2, p3 }; XElement playersToXML = XMLEncoder.pawnsToXML(new List <string> { "blue", "hotpink", "green" }, board); XElement playersToXMLExpected = new XElement("map", new XElement("ent", new XElement("color", "blue"), new XElement("pawn-loc", new XElement("h", ""), new XElement("n", 1), new XElement("n", 0))), new XElement("ent", new XElement("color", "hotpink"), new XElement("pawn-loc", new XElement("h", ""), new XElement("n", 5), new XElement("n", 8))), new XElement("ent", new XElement("color", "green"), new XElement("pawn-loc", new XElement("v", ""), new XElement("n", 2), new XElement("n", 7)))); Assert.IsTrue(XNode.DeepEquals(playersToXML, playersToXMLExpected)); }
public void boardToXMLSimple() { Board board = new Board(); TestScenerios test = new TestScenerios(); Tile t1 = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7); board.grid[0, 0] = t1; SPlayer p1 = new SPlayer("red", new List <Tile>(), new RandomPlayer()); p1.initialize(board); test.setStartPos(board, p1, new Posn(0, 0, 3)); XElement boardToXML = XMLEncoder.boardToXML(board); XElement boardToXMLExpected = XElement.Parse("<board><map><ent><xy><x>0</x><y>0</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent></map><map><ent><color>red</color><pawn-loc><v></v><n>1</n><n>1</n></pawn-loc></ent></map></board>"); Assert.IsTrue(XNode.DeepEquals(boardToXML, boardToXMLExpected)); }
public void TiletoXML() { TestScenerios test = new TestScenerios(); Tile t1 = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7); XElement t1XML = XMLEncoder.tileToXML(t1); XElement t1XMLExpected = new XElement("tile", new XElement("connect", new XElement("n", 0), new XElement("n", 1)), new XElement("connect", new XElement("n", 2), new XElement("n", 3)), new XElement("connect", new XElement("n", 4), new XElement("n", 5)), new XElement("connect", new XElement("n", 6), new XElement("n", 7))); Assert.IsTrue(XNode.DeepEquals(t1XML, t1XMLExpected)); }
public void TESTINGERRORCODE() { XElement drawTilesXml = XElement.Parse("<list></list>"); XElement onBoardPlayersXml = XElement.Parse("<list><splayer-nodragon><color>sienna</color><set></set></splayer-nodragon><splayer-dragon><color>red</color><set></set></splayer-dragon></list>"); XElement eliminatedPlayersXml = XElement.Parse("<list><splayer-nodragon><color>blue</color><set></set></splayer-nodragon><splayer-nodragon><color>orange</color><set></set></splayer-nodragon><splayer-nodragon><color>green</color><set></set></splayer-nodragon><splayer-nodragon><color>hotpink</color><set></set></splayer-nodragon></list>"); XElement boardXml = XElement.Parse("<board><map><ent><xy><x>3</x><y>3</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>7</n></connect></tile></ent><ent><xy><x>1</x><y>2</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>7</n></connect><connect><n>2</n><n>5</n></connect><connect><n>3</n><n>4</n></connect></tile></ent><ent><xy><x>2</x><y>1</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>7</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>2</x><y>5</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>7</n></connect><connect><n>3</n><n>6</n></connect></tile></ent><ent><xy><x>4</x><y>0</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>7</n></connect><connect><n>4</n><n>5</n></connect></tile></ent><ent><xy><x>4</x><y>4</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>0</x><y>3</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>7</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>5</n></connect></tile></ent><ent><xy><x>5</x><y>1</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>3</n></connect><connect><n>2</n><n>4</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>5</x><y>5</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>6</n></connect><connect><n>3</n><n>7</n></connect><connect><n>4</n><n>5</n></connect></tile></ent><ent><xy><x>3</x><y>1</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>3</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>3</x><y>5</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>5</n></connect><connect><n>3</n><n>7</n></connect></tile></ent><ent><xy><x>1</x><y>4</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>7</n></connect><connect><n>2</n><n>4</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>2</x><y>3</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>6</n></connect><connect><n>4</n><n>7</n></connect></tile></ent><ent><xy><x>4</x><y>2</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>3</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>0</x><y>5</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>7</n></connect><connect><n>3</n><n>6</n></connect><connect><n>4</n><n>5</n></connect></tile></ent><ent><xy><x>5</x><y>3</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>2</n></connect><connect><n>3</n><n>4</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>2</x><y>0</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>2</n></connect><connect><n>3</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>1</x><y>5</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>3</n></connect><connect><n>2</n><n>7</n></connect><connect><n>4</n><n>5</n></connect></tile></ent><ent><xy><x>2</x><y>4</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>1</x><y>1</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>4</n></connect><connect><n>6</n><n>7</n></connect></tile></ent><ent><xy><x>4</x><y>3</y></xy><tile><connect><n>0</n><n>7</n></connect><connect><n>1</n><n>2</n></connect><connect><n>3</n><n>4</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>0</x><y>2</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>6</n></connect><connect><n>3</n><n>7</n></connect></tile></ent><ent><xy><x>5</x><y>0</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>2</n></connect><connect><n>3</n><n>7</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>5</x><y>4</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>5</n></connect><connect><n>3</n><n>4</n></connect><connect><n>6</n><n>7</n></connect></tile></ent><ent><xy><x>3</x><y>0</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>5</n></connect><connect><n>4</n><n>7</n></connect></tile></ent><ent><xy><x>3</x><y>4</y></xy><tile><connect><n>0</n><n>5</n></connect><connect><n>1</n><n>3</n></connect><connect><n>2</n><n>7</n></connect><connect><n>4</n><n>6</n></connect></tile></ent><ent><xy><x>1</x><y>3</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>4</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>2</x><y>2</y></xy><tile><connect><n>0</n><n>5</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>7</n></connect><connect><n>3</n><n>6</n></connect></tile></ent><ent><xy><x>4</x><y>5</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>7</n></connect><connect><n>2</n><n>3</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>0</x><y>4</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>3</n></connect><connect><n>2</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>0</x><y>0</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>2</n></connect><connect><n>4</n><n>7</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>5</x><y>2</y></xy><tile><connect><n>0</n><n>5</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>7</n></connect><connect><n>3</n><n>4</n></connect></tile></ent><ent><xy><x>1</x><y>0</y></xy><tile><connect><n>0</n><n>7</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>3</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>3</x><y>2</y></xy><tile><connect><n>0</n><n>7</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>6</n></connect></tile></ent></map><map><ent><color>orange</color><pawn-loc><v></v><n>0</n><n>9</n></pawn-loc></ent><ent><color>red</color><pawn-loc><v></v><n>5</n><n>2</n></pawn-loc></ent><ent><color>sienna</color><pawn-loc><h></h><n>2</n><n>9</n></pawn-loc></ent><ent><color>blue</color><pawn-loc><h></h><n>0</n><n>5</n></pawn-loc></ent><ent><color>hotpink</color><pawn-loc><v></v><n>6</n><n>8</n></pawn-loc></ent><ent><color>green</color><pawn-loc><v></v><n>0</n><n>5</n></pawn-loc></ent></map></board>"); XElement tileToPlayXml = XElement.Parse("<tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>5</n></connect><connect><n>6</n><n>7</n></connect></tile>"); List <Tile> drawPile = XMLDecoder.xmlToListOfTiles(drawTilesXml); Board b = XMLDecoder.xmlToBoard(boardXml); Tile tileToPlay = XMLDecoder.xmlToTile(tileToPlayXml); SPlayer dragonTileHolder = null; List <SPlayer> activePlayers = new List <SPlayer>(); foreach (XElement splayerXml in onBoardPlayersXml.Elements()) { SPlayer tempPlayer = XMLDecoder.xmlToSplayer(splayerXml); tempPlayer.playerState = SPlayer.State.Playing; if (tempPlayer.isDragonHolder()) { if (dragonTileHolder != null) { throw new TsuroException("Cannot set multiple dragon tile holders."); } dragonTileHolder = tempPlayer; } activePlayers.Add(tempPlayer); } List <SPlayer> eliminatedPlayers = new List <SPlayer>(); foreach (XElement splayerXml in eliminatedPlayersXml.Elements()) { SPlayer tempPlayer = XMLDecoder.xmlToSplayer(splayerXml); eliminatedPlayers.Add(tempPlayer); } // Run our version of play a turn Admin admin = new Admin(activePlayers, eliminatedPlayers, dragonTileHolder, drawPile); TurnResult tr = admin.playATurn(b, tileToPlay); Assert.AreEqual(0, tr.currentPlayers.Count); Assert.AreEqual(6, tr.eliminatedPlayers.Count); Assert.AreEqual(2, tr.playResult.Count); //Convert our turn result into xml strings string outDrawPileXml = XMLEncoder.listOfTilesToXML(tr.drawPile).ToString(); string outActivePlayersXml = XMLEncoder.listOfSPlayerToXML(tr.currentPlayers, admin).ToString(); string outEliminatedPlayersXml = XMLEncoder.listOfSPlayerToXML(tr.eliminatedPlayers, admin).ToString(); string outBoardXml = XMLEncoder.boardToXML(tr.b).ToString(); string outwinnersXML; if (tr.playResult == null) { outwinnersXML = XMLEncoder.encodeFalse().ToString(); } else { outwinnersXML = XMLEncoder.listOfSPlayerToXML(tr.playResult, admin).ToString(); } // Print XML Strings out through stdout Console.WriteLine(XMLEncoder.RemoveWhitespace(outDrawPileXml)); Console.WriteLine(XMLEncoder.RemoveWhitespace(outActivePlayersXml)); Console.WriteLine(XMLEncoder.RemoveWhitespace(outEliminatedPlayersXml)); Console.WriteLine(XMLEncoder.RemoveWhitespace(outBoardXml)); Console.WriteLine(XMLEncoder.RemoveWhitespace(outwinnersXML)); Console.Out.WriteLine(); }