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.

153 lines
4.0 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 = -1, int b = -1, int c = -1,
  9. int d = -1, int e = -1, int f = -1,
  10. int g = -1, int h = -1, int i = -1
  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(-1, -1, -1, -1, 0);
  28. int pos = 4;
  29. int wert = 0;
  30. bool erwartetGesetzt = true;
  31. // act
  32. bool erhaltenGesetzt = brett.Set(pos, wert);
  33. // assert
  34. Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
  35. Assert.True(brett.Gleich(erwartetesBrett));
  36. }
  37. [Fact]
  38. public void Set_BelegtesFeldBelegenTest()
  39. {
  40. // arrange
  41. TicTacToeBrett brett = TestBrett(1);
  42. TicTacToeBrett erwartetesBrett = TestBrett(1);
  43. int pos = 0;
  44. int wert = 1;
  45. bool erwartetGesetzt = false;
  46. // act
  47. bool erhaltenGesetzt = brett.Set(pos, wert);
  48. // assert
  49. Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
  50. Assert.True(brett.Gleich(erwartetesBrett));
  51. }
  52. [Theory]
  53. [InlineData(-1)]
  54. [InlineData(9)]
  55. public void Set_OutOfBoundsTest(int pos)
  56. {
  57. // arrange
  58. TicTacToeBrett brett = new();
  59. TicTacToeBrett erwartetesBrett = new();
  60. int wert = 0;
  61. bool erwartetGesetzt = false;
  62. // act
  63. bool erhaltenGesetzt = brett.Set(pos, wert);
  64. // assert
  65. Assert.Equal(erwartetGesetzt, erhaltenGesetzt);
  66. Assert.True(brett.Gleich(erwartetesBrett));
  67. }
  68. [Fact]
  69. public void Gleich_LeereBretterGleichTest()
  70. {
  71. // arrange
  72. TicTacToeBrett b1 = new();
  73. TicTacToeBrett b2 = new();
  74. bool erwartetGleich = true;
  75. // act
  76. bool erhaltenGleich = b1.Gleich(b2);
  77. // assert
  78. Assert.Equal(erwartetGleich, erhaltenGleich);
  79. }
  80. [Fact]
  81. public void Gleich_NichtLeereBretterGleichTest()
  82. {
  83. // arrange
  84. TicTacToeBrett b1 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
  85. TicTacToeBrett b2 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
  86. bool erwartetGleich = true;
  87. // act
  88. bool erhaltenGleich = b1.Gleich(b2);
  89. // assert
  90. Assert.Equal(erwartetGleich, erhaltenGleich);
  91. }
  92. [Fact]
  93. public void Gleich_ErsteUngleichTest()
  94. {
  95. // arrange
  96. TicTacToeBrett b1 = TestBrett(1);
  97. TicTacToeBrett b2 = TestBrett(2);
  98. bool erwartetGleich = false;
  99. // act
  100. bool erhaltenGleich = b1.Gleich(b2);
  101. // assert
  102. Assert.Equal(erwartetGleich, erhaltenGleich);
  103. }
  104. [Fact]
  105. public void Gleich_LetzteUngleichTest()
  106. {
  107. // arrange
  108. TicTacToeBrett b1 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 9);
  109. TicTacToeBrett b2 = TestBrett(1, 2, 3, 4, 5, 6, 7, 8, 10);
  110. bool erwartetGleich = false;
  111. // act
  112. bool erhaltenGleich = b1.Gleich(b2);
  113. // assert
  114. Assert.Equal(erwartetGleich, erhaltenGleich);
  115. }
  116. [Fact]
  117. public void Voll_LeeresBrettTest()
  118. {
  119. // arrange
  120. TicTacToeBrett brett = TestBrett();
  121. bool erwartetVoll = false;
  122. // act
  123. bool erhaltenVoll = brett.Voll();
  124. // assert
  125. Assert.Equal(erwartetVoll, erhaltenVoll);
  126. }
  127. }
  128. }