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.

106 lines
3.4 KiB

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