/TestTrash2012/MapLoaderTest.cs

https://github.com/theblackunknown/trash-2012 · C# · 199 lines · 139 code · 22 blank · 38 comment · 6 complexity · 49dbf9f72ac34c123a41b39cff0dcb14 MD5 · raw file

  1. using Trash2012.Engine;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using System;
  4. using Trash2012.Model;
  5. namespace TestTrash2012
  6. {
  7. /// <summary>
  8. ///This is a test class for MapLoaderTest and is intended
  9. ///to contain all MapLoaderTest Unit Tests
  10. ///</summary>
  11. [TestClass()]
  12. public class MapLoaderTest
  13. {
  14. private TestContext testContextInstance;
  15. /// <summary>
  16. ///Gets or sets the test context which provides
  17. ///information about and functionality for the current test run.
  18. ///</summary>
  19. public TestContext TestContext
  20. {
  21. get
  22. {
  23. return testContextInstance;
  24. }
  25. set
  26. {
  27. testContextInstance = value;
  28. }
  29. }
  30. #region Additional test attributes
  31. //
  32. //You can use the following additional attributes as you write your tests:
  33. //
  34. //Use ClassInitialize to run code before running the first test in the class
  35. //[ClassInitialize()]
  36. //public static void MyClassInitialize(TestContext testContext)
  37. //{
  38. //}
  39. //
  40. //Use ClassCleanup to run code after all tests in a class have run
  41. //[ClassCleanup()]
  42. //public static void MyClassCleanup()
  43. //{
  44. //}
  45. //
  46. //Use TestInitialize to run code before running each test
  47. //[TestInitialize()]
  48. //public void MyTestInitialize()
  49. //{
  50. //}
  51. //
  52. //Use TestCleanup to run code after each test has run
  53. //[TestCleanup()]
  54. //public void MyTestCleanup()
  55. //{
  56. //}
  57. //
  58. #endregion
  59. /// <summary>
  60. ///A test for loadMap
  61. ///</summary>
  62. [TestMethod()]
  63. public void loadDefaultMapTest()
  64. {
  65. IMapTile[][] expected = new IMapTile[5][];
  66. expected[0] = new IMapTile[6];
  67. expected[1] = new IMapTile[6];
  68. expected[2] = new IMapTile[6];
  69. expected[3] = new IMapTile[6];
  70. expected[4] = new IMapTile[6];
  71. expected[0][0] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  72. expected[0][1] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  73. expected[0][2] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  74. expected[0][3] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  75. expected[0][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  76. expected[0][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  77. expected[1][0] = new RoadTile(RoadTile.RoadType.Horizontal);
  78. expected[1][1] = new RoadTile(RoadTile.RoadType.Horizontal);
  79. expected[1][2] = new RoadTile(RoadTile.RoadType.TopRight);
  80. expected[1][3] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  81. expected[1][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  82. expected[1][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  83. expected[2][0] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  84. expected[2][1] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  85. expected[2][2] = new RoadTile(RoadTile.RoadType.Vertical);
  86. expected[2][3] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  87. expected[2][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  88. expected[2][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  89. expected[3][0] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  90. expected[3][1] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  91. expected[3][2] = new RoadTile(RoadTile.RoadType.BottomLeft);
  92. expected[3][3] = new RoadTile(RoadTile.RoadType.Horizontal);
  93. expected[3][4] = new RoadTile(RoadTile.RoadType.Horizontal);
  94. expected[3][5] = new RoadTile(RoadTile.RoadType.Horizontal);
  95. expected[4][0] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  96. expected[4][1] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  97. expected[4][2] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  98. expected[4][3] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  99. expected[4][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  100. expected[4][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  101. IMapTile[][] actual = MapLoader.loadDefaultMap();
  102. Assert.IsTrue(actual.Length > 0 && actual[0].Length > 0, "Map has not a valid dimension");
  103. Assert.AreEqual(expected.Length, actual.Length, "Constructed map has a different height");
  104. Assert.AreEqual(expected[0].Length, actual[0].Length, "Constructed map has a different width");
  105. for (int i = actual.Length; i-- > 0; )
  106. {
  107. for (int j = actual[0].Length; j-- > 0; )
  108. {
  109. int hashA = expected[i][j].GetHashCode();
  110. int hashB = actual[i][j].GetHashCode();
  111. Assert.AreEqual(expected[i][j], actual[i][j], "Constructed map got a different tile at (" + i + "," + j + ")");
  112. }
  113. }
  114. }
  115. [TestMethod()]
  116. public void loadMapFromFileTest()
  117. {
  118. IMapTile[][] expected = new IMapTile[6][];
  119. expected[0] = new IMapTile[6];
  120. expected[1] = new IMapTile[6];
  121. expected[2] = new IMapTile[6];
  122. expected[3] = new IMapTile[6];
  123. expected[4] = new IMapTile[6];
  124. expected[5] = new IMapTile[6];
  125. expected[0][0] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  126. expected[0][1] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  127. expected[0][2] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  128. expected[0][3] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  129. expected[0][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  130. expected[0][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  131. expected[1][0] = new RoadTile(RoadTile.RoadType.Horizontal);
  132. expected[1][1] = new RoadTile(RoadTile.RoadType.Horizontal);
  133. expected[1][2] = new RoadTile(RoadTile.RoadType.TopRight);
  134. expected[1][3] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  135. expected[1][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  136. expected[1][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  137. expected[2][0] = new RoadTile(RoadTile.RoadType.TopLeft);
  138. expected[2][1] = new RoadTile(RoadTile.RoadType.Horizontal);
  139. expected[2][2] = new RoadTile(RoadTile.RoadType.BottomRight);
  140. expected[2][3] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  141. expected[2][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  142. expected[2][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  143. expected[3][0] = new RoadTile(RoadTile.RoadType.BottomLeft);
  144. expected[3][1] = new RoadTile(RoadTile.RoadType.Horizontal);
  145. expected[3][2] = new RoadTile(RoadTile.RoadType.Horizontal);
  146. expected[3][3] = new RoadTile(RoadTile.RoadType.TopRight);
  147. expected[3][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  148. expected[3][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  149. expected[4][0] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  150. expected[4][1] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  151. expected[4][2] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  152. expected[4][3] = new RoadTile(RoadTile.RoadType.Vertical);
  153. expected[4][4] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  154. expected[4][5] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  155. expected[5][0] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  156. expected[5][1] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  157. expected[5][2] = new BackgroundTile(BackgroundTile.BackgroundType.Plain);
  158. expected[5][3] = new RoadTile(RoadTile.RoadType.BottomLeft);
  159. expected[5][4] = new RoadTile(RoadTile.RoadType.Horizontal);
  160. expected[5][5] = new RoadTile(RoadTile.RoadType.Horizontal);
  161. string filepath = @"..\..\..\Trash2012\Resources\custom.trash-map";
  162. IMapTile[][] actual = MapLoader.loadMapFromFile(filepath);
  163. Assert.IsTrue(actual.Length > 0 && actual[0].Length > 0, "Map has not a valid dimension");
  164. Assert.AreEqual(expected.Length, actual.Length, "Constructed map has a different height");
  165. Assert.AreEqual(expected[0].Length, actual[0].Length, "Constructed map has a different width");
  166. for (int i = actual.Length; i-- > 0; )
  167. {
  168. for (int j = actual[0].Length; j-- > 0; )
  169. {
  170. int hashA = expected[i][j].GetHashCode();
  171. int hashB = actual[i][j].GetHashCode();
  172. Assert.AreEqual(expected[i][j], actual[i][j], "Constructed map got a different tile at (" + i + "," + j + ")");
  173. }
  174. }
  175. }
  176. }
  177. }