Continous Integration in der Praxis Gruppenarbeit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

286 lines
7.8 KiB

  1. using MiniGames.Shared.Models;
  2. using Xunit;
  3. namespace MiniGamesTests
  4. {
  5. public class TicTacToeBrettTest
  6. {
  7. public TicTacToeBrett TestBrett(
  8. int a = TicTacToeBrett.LEER, int b = TicTacToeBrett.LEER, int c = TicTacToeBrett.LEER,
  9. int d = TicTacToeBrett.LEER, int e = TicTacToeBrett.LEER, int f = TicTacToeBrett.LEER,
  10. int g = TicTacToeBrett.LEER, int h = TicTacToeBrett.LEER, int i = TicTacToeBrett.LEER
  11. )
  12. {
  13. return new(
  14. new int[,]
  15. {
  16. { a, b, c, },
  17. { d, e, f, },
  18. { g, h, i, },
  19. }
  20. );
  21. }
  22. [Fact]
  23. public void Set_FreiesFeldBelegenTest()
  24. {
  25. // arrange
  26. TicTacToeBrett brett = new();
  27. TicTacToeBrett erwartetesBrett = TestBrett(
  28. TicTacToeBrett.LEER,
  29. TicTacToeBrett.LEER,
  30. TicTacToeBrett.LEER,
  31. TicTacToeBrett.LEER,
  32. 0
  33. );
  34. int pos = 4;
  35. int wert = 0;
  36. bool erwartetGesetzt = true;
  37. // act
  38. bool erhaltenGesetzt = brett.Set(pos, wert);
  39. // assert
  40. Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
  41. Assert.True(brett.Gleich(erwartetesBrett));
  42. }
  43. [Fact]
  44. public void Set_BelegtesFeldBelegenTest()
  45. {
  46. // arrange
  47. TicTacToeBrett brett = TestBrett(1);
  48. TicTacToeBrett erwartetesBrett = TestBrett(1);
  49. int pos = 0;
  50. int wert = 1;
  51. bool erwartetGesetzt = false;
  52. // act
  53. bool erhaltenGesetzt = brett.Set(pos, wert);
  54. // assert
  55. Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
  56. Assert.True(brett.Gleich(erwartetesBrett));
  57. }
  58. [Theory]
  59. [InlineData(-1)]
  60. [InlineData(9)]
  61. public void Set_OutOfBoundsTest(int pos)
  62. {
  63. // arrange
  64. TicTacToeBrett brett = new();
  65. TicTacToeBrett erwartetesBrett = new();
  66. int wert = 0;
  67. bool erwartetGesetzt = false;
  68. // act
  69. bool erhaltenGesetzt = brett.Set(pos, wert);
  70. // assert
  71. Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
  72. Assert.True(brett.Gleich(erwartetesBrett));
  73. }
  74. [Fact]
  75. public void Gleich_LeereBretterGleichTest()
  76. {
  77. // arrange
  78. TicTacToeBrett b1 = new();
  79. TicTacToeBrett b2 = new();
  80. bool erwartetGleich = true;
  81. // act
  82. bool erhaltenGleich = b1.Gleich(b2);
  83. // assert
  84. Assert.Equal(erwartetGleich, erhaltenGleich);
  85. }
  86. [Fact]
  87. public void Gleich_NichtLeereBretterGleichTest()
  88. {
  89. // arrange
  90. TicTacToeBrett b1 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
  91. TicTacToeBrett b2 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
  92. bool erwartetGleich = true;
  93. // act
  94. bool erhaltenGleich = b1.Gleich(b2);
  95. // assert
  96. Assert.Equal(erwartetGleich, erhaltenGleich);
  97. }
  98. [Fact]
  99. public void Gleich_ErsteUngleichTest()
  100. {
  101. // arrange
  102. TicTacToeBrett b1 = TestBrett(1);
  103. TicTacToeBrett b2 = TestBrett(2);
  104. bool erwartetGleich = false;
  105. // act
  106. bool erhaltenGleich = b1.Gleich(b2);
  107. // assert
  108. Assert.Equal(erwartetGleich, erhaltenGleich);
  109. }
  110. [Fact]
  111. public void Gleich_LetzteUngleichTest()
  112. {
  113. // arrange
  114. TicTacToeBrett b1 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
  115. TicTacToeBrett b2 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 10);
  116. bool erwartetGleich = false;
  117. // act
  118. bool erhaltenGleich = b1.Gleich(b2);
  119. // assert
  120. Assert.Equal(erwartetGleich, erhaltenGleich);
  121. }
  122. [Fact]
  123. public void Voll_LeeresBrettTest()
  124. {
  125. // arrange
  126. TicTacToeBrett brett = TestBrett();
  127. bool erwartetVoll = false;
  128. // act
  129. bool erhaltenVoll = brett.Voll();
  130. // assert
  131. Assert.Equal(erwartetVoll, erhaltenVoll);
  132. }
  133. [Fact]
  134. public void Voll_VollesBrettTest()
  135. {
  136. // arrange
  137. TicTacToeBrett brett = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
  138. bool erwartetVoll = true;
  139. // act
  140. bool erhaltenVoll = brett.Voll();
  141. // assert
  142. Assert.Equal(erwartetVoll, erhaltenVoll);
  143. }
  144. [Fact]
  145. public void Voll_FastVollesBrettTest()
  146. {
  147. // arrange
  148. TicTacToeBrett brett = TestBrett(1, 2, 3, 4, 5, 6, 7, 8);
  149. bool erwartetVoll = false;
  150. // act
  151. bool erhaltenVoll = brett.Voll();
  152. // assert
  153. Assert.Equal(erwartetVoll, erhaltenVoll);
  154. }
  155. [Fact]
  156. public void Gewinner_LeeresFeldTest()
  157. {
  158. // arrange
  159. TicTacToeBrett brett = TestBrett();
  160. int erwarteterGewinner = TicTacToeBrett.LEER;
  161. // act
  162. int erhaltenerGewinner = brett.Gewinner();
  163. // assert
  164. Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
  165. }
  166. [Fact]
  167. public void Gewinner_VertikaleReihe1Test()
  168. {
  169. // arrange
  170. TicTacToeBrett brett = TestBrett(0, 0, 0);
  171. int erwarteterGewinner = 0;
  172. // act
  173. int erhaltenerGewinner = brett.Gewinner();
  174. // assert
  175. Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
  176. }
  177. [Fact]
  178. public void Gewinner_VertikaleReihe2Test()
  179. {
  180. // arrange
  181. TicTacToeBrett brett = TestBrett(
  182. TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER,
  183. 0, 0, 0
  184. );
  185. int erwarteterGewinner = 0;
  186. // act
  187. int erhaltenerGewinner = brett.Gewinner();
  188. // assert
  189. Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
  190. }
  191. [Fact]
  192. public void Gewinner_VertikaleReihe3Test()
  193. {
  194. // arrange
  195. TicTacToeBrett brett = TestBrett(
  196. TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER,
  197. TicTacToeBrett.LEER, TicTacToeBrett.LEER, TicTacToeBrett.LEER,
  198. 1, 1, 1
  199. );
  200. int erwarteterGewinner = 1;
  201. // act
  202. int erhaltenerGewinner = brett.Gewinner();
  203. // assert
  204. Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
  205. }
  206. [Fact]
  207. public void Gewinner_HorizontaleReihe1Test()
  208. {
  209. // arrange
  210. TicTacToeBrett brett = TestBrett(
  211. 2, TicTacToeBrett.LEER, TicTacToeBrett.LEER,
  212. 2, TicTacToeBrett.LEER, TicTacToeBrett.LEER,
  213. 2
  214. );
  215. int erwarteterGewinner = 2;
  216. // act
  217. int erhaltenerGewinner = brett.Gewinner();
  218. // assert
  219. Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
  220. }
  221. [Fact]
  222. public void Gewinner_HorizontaleReihe2Test()
  223. {
  224. // arrange
  225. TicTacToeBrett brett = TestBrett(
  226. TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER,
  227. TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER,
  228. TicTacToeBrett.LEER, 3, TicTacToeBrett.LEER
  229. );
  230. int erwarteterGewinner = 3;
  231. // act
  232. int erhaltenerGewinner = brett.Gewinner();
  233. // assert
  234. Assert.Equal(erwarteterGewinner, erhaltenerGewinner);
  235. }
  236. }
  237. }