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.

110 lines
3.0 KiB

  1. using MiniGames.Client.ViewModel;
  2. using MiniGames.Shared.Models;
  3. using Moq;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Xunit;
  10. namespace MiniGamesTests
  11. {
  12. public class UnoTest
  13. {
  14. public Uno UnoRegeln = new();
  15. private HandKartenModel BeispielHand()
  16. {
  17. HandKartenModel HandStapel = new()
  18. {
  19. Id = 1,
  20. Name = "Andrej",
  21. KartenModels = new()
  22. {
  23. new KartenModel
  24. {
  25. Name = "2 Ziehen",
  26. Farbe = "Gelb",
  27. Spezial = true
  28. }
  29. }
  30. };
  31. return HandStapel;
  32. }
  33. private StapelModel BeispielZiehKarten()
  34. {
  35. StapelModel TestStapel = new();
  36. TestStapel.KartenModels = new()
  37. {
  38. new KartenModel
  39. {
  40. Name = "Retoure",
  41. Farbe = "Blau",
  42. Spezial = true
  43. },
  44. new KartenModel
  45. {
  46. Name = "Retoure",
  47. Farbe = "Rot",
  48. Spezial = true
  49. },
  50. new KartenModel
  51. {
  52. Name = "Retoure",
  53. Farbe = "Gruen",
  54. Spezial = true
  55. },
  56. new KartenModel
  57. {
  58. Name = "Retoure",
  59. Farbe = "Gelb",
  60. Spezial = true
  61. },
  62. };
  63. return TestStapel;
  64. }
  65. [Theory]
  66. [InlineData("rot", "rot", true)]
  67. [InlineData("blau", "rot", false)]
  68. [InlineData("rot", "blau", false)]
  69. [InlineData("blau", "blau", true)]
  70. [InlineData("gelb", "rot", false)]
  71. [InlineData("gruen", "gruen", true)]
  72. private void IstAblageStabelFarbeGleichHandTest(string ablegeStapelKarte, string neueKarte, bool erwartet)
  73. {
  74. //arrange
  75. var _ablegeStabelKarte = ablegeStapelKarte;
  76. var _neueKarte = neueKarte;
  77. var _erwartet = erwartet;
  78. //act
  79. var erhalten = UnoRegeln.IstAblageStabelFarbeGleichHand(_ablegeStabelKarte, _neueKarte);
  80. //assert
  81. Assert.Equal(_erwartet, erhalten);
  82. }
  83. [Fact]
  84. private void ZiehEineKarteTest()
  85. {
  86. //arrange
  87. StapelModel zuFüllend = new();
  88. var beispielStapel = BeispielZiehKarten();
  89. var beispielHand = BeispielHand();
  90. //act
  91. zuFüllend.KartenModels = UnoRegeln.ZiehEineKarte(beispielHand, beispielStapel).KartenModels;
  92. var erwartet = beispielStapel.KartenModels.FirstOrDefault();
  93. var erhalten = beispielHand.KartenModels.LastOrDefault();
  94. //assert
  95. Assert.Equal(erwartet, erhalten);
  96. }
  97. }
  98. }