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.

534 lines
18 KiB

  1. using MiniGames.Client.ViewModel;
  2. using MiniGames.Shared.Enums;
  3. using MiniGames.Shared.Models;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using Xunit;
  7. namespace MiniGamesTests
  8. {
  9. public class UnoTest
  10. {
  11. public Uno UnoRegeln = new();
  12. public List<SpielerModel> SpielerModels = new();
  13. private KartenModel BeispielKarte(string name, string farbe, bool spezial)
  14. {
  15. var _name = name;
  16. var _farbe = farbe;
  17. var _spezial = spezial;
  18. KartenModel kartenModel = new()
  19. {
  20. Name = _name,
  21. Farbe = _farbe,
  22. Spezial = _spezial
  23. };
  24. return kartenModel;
  25. }
  26. private HandKartenModel BeispielHand()
  27. {
  28. HandKartenModel HandStapel = new()
  29. {
  30. SpielerModel = new()
  31. {
  32. Id = 1,
  33. SpielerName = "Andrej",
  34. },
  35. KartenModels = new()
  36. {
  37. new KartenModel
  38. {
  39. Name = Kartenbezeichnung.PlusZweiKarte.ToString(),
  40. Farbe = Farbe.Gelb.ToString(),
  41. Spezial = true
  42. }
  43. }
  44. };
  45. return HandStapel;
  46. }
  47. private void BeispielSpielerModelsFüllen(int id, string spielerName)
  48. {
  49. int _id = id;
  50. string _spielerName = spielerName;
  51. SpielerModels.Add(new SpielerModel()
  52. {
  53. Id = _id,
  54. SpielerName = _spielerName,
  55. Punkte = 0
  56. });
  57. }
  58. private void BeispielMultipleSpielerModelsFüllen(int anzahlSpieler)
  59. {
  60. switch (anzahlSpieler)
  61. {
  62. case 2:
  63. BeispielSpielerModelsFüllen(1, "Hans");
  64. BeispielSpielerModelsFüllen(2, "Peter");
  65. break;
  66. case 3:
  67. BeispielSpielerModelsFüllen(1, "Hans");
  68. BeispielSpielerModelsFüllen(2, "Peter");
  69. BeispielSpielerModelsFüllen(3, "Anna");
  70. break;
  71. case 4:
  72. BeispielSpielerModelsFüllen(1, "Hans");
  73. BeispielSpielerModelsFüllen(2, "Peter");
  74. BeispielSpielerModelsFüllen(3, "Anna");
  75. BeispielSpielerModelsFüllen(4, "Klaus");
  76. break;
  77. case 5:
  78. BeispielSpielerModelsFüllen(1, "Hans");
  79. BeispielSpielerModelsFüllen(2, "Peter");
  80. BeispielSpielerModelsFüllen(3, "Anna");
  81. BeispielSpielerModelsFüllen(4, "Klaus");
  82. BeispielSpielerModelsFüllen(5, "Brigitte");
  83. break;
  84. case 6:
  85. BeispielSpielerModelsFüllen(1, "Hans");
  86. BeispielSpielerModelsFüllen(2, "Peter");
  87. BeispielSpielerModelsFüllen(3, "Anna");
  88. BeispielSpielerModelsFüllen(4, "Klaus");
  89. BeispielSpielerModelsFüllen(5, "Brigitte");
  90. BeispielSpielerModelsFüllen(6, "Morty");
  91. break;
  92. default:
  93. break;
  94. }
  95. }
  96. private StapelModel BeispielStapelModelKarten(string name, string farbe, bool spezial)
  97. {
  98. var _name = name;
  99. var _farbe = farbe;
  100. var _spezial = spezial;
  101. StapelModel TestStapel = new();
  102. TestStapel.KartenModels = new()
  103. {
  104. new KartenModel
  105. {
  106. Name = _name,
  107. Farbe = _farbe,
  108. Spezial = _spezial
  109. },
  110. };
  111. return TestStapel;
  112. }
  113. #region UserManagement
  114. [Theory]
  115. [InlineData("Andrej", 1)]
  116. private void SpielerErstellenTest(string spielerName, int id)
  117. {
  118. //arrange
  119. var _spielerName = spielerName;
  120. var _id = id;
  121. //act
  122. UnoRegeln.SpielerErstellen(_spielerName);
  123. var ergebnis = UnoRegeln.Spieler;
  124. //assert
  125. Assert.Equal(_spielerName, ergebnis[0].SpielerModel.SpielerName);
  126. Assert.Equal(_id, ergebnis[0].SpielerModel.Id);
  127. }
  128. [Theory]
  129. [InlineData("Andrej", 1, "Paul", 2, "Erhard", 3)]
  130. [InlineData("Sabine", 1, "Erich", 2, "Anna", 3)]
  131. [InlineData("Thomas", 1, "Mike", 2, "Robin", 3)]
  132. private void MehrereSpielerErstellenTest(string spielerEinsName, int spielerEinsId, string spielerZweiName, int spielerZweiId, string spielerDreiName, int spielerDreiId)
  133. {
  134. //arrange
  135. var _spielerEinsName = spielerEinsName;
  136. var _spielerEinsId = spielerEinsId;
  137. var _spielerZweiName = spielerZweiName;
  138. var _spielerZweiId = spielerZweiId;
  139. var _spielerDreiName = spielerDreiName;
  140. var _spielerDreiId = spielerDreiId;
  141. //act
  142. UnoRegeln.SpielerErstellen(_spielerEinsName);
  143. UnoRegeln.SpielerErstellen(_spielerZweiName);
  144. UnoRegeln.SpielerErstellen(_spielerDreiName);
  145. var ergebnis = UnoRegeln.Spieler;
  146. //assert
  147. Assert.Equal(_spielerEinsName, ergebnis[0].SpielerModel.SpielerName);
  148. Assert.Equal(_spielerEinsId, ergebnis[0].SpielerModel.Id);
  149. Assert.NotNull(ergebnis[0].KartenModels);
  150. Assert.Equal(_spielerZweiName, ergebnis[1].SpielerModel.SpielerName);
  151. Assert.Equal(_spielerZweiId, ergebnis[1].SpielerModel.Id);
  152. Assert.NotNull(ergebnis[1].KartenModels);
  153. Assert.Equal(_spielerDreiName, ergebnis[2].SpielerModel.SpielerName);
  154. Assert.Equal(_spielerDreiId, ergebnis[2].SpielerModel.Id);
  155. Assert.NotNull(ergebnis[2].KartenModels);
  156. }
  157. [Theory]
  158. [InlineData(2)]
  159. [InlineData(3)]
  160. [InlineData(4)]
  161. [InlineData(5)]
  162. private void InitialeKartenVerteilungTest(int anzahlSpieler)
  163. {
  164. //arrange
  165. var _anzahlSpieler = anzahlSpieler;
  166. BeispielMultipleSpielerModelsFüllen(_anzahlSpieler);
  167. foreach (var spieler in SpielerModels)
  168. {
  169. UnoRegeln.SpielerErstellen(spieler.SpielerName);
  170. }
  171. UnoRegeln.ZiehKartenStapelZusammenstellen();
  172. //act
  173. UnoRegeln.InitialeKartenVerteilung();
  174. //assert
  175. foreach (var spieler in UnoRegeln.Spieler)
  176. {
  177. Assert.Equal(7, spieler.KartenModels.Count());
  178. }
  179. }
  180. [Theory]
  181. [InlineData("Andrej", 1, "Paul", 2, "Erhard", 3, true, 2, 3)]
  182. [InlineData("Sabine", 1, "Erich", 2, "Anna", 3, false, 3, 2)]
  183. [InlineData("Thomas", 1, "Mike", 2, "Robin", 3, true, 2, 3)]
  184. [InlineData("Andrej", 1, "Paul", 2, "Erhard", 3, true, 3, 1)]
  185. [InlineData("Sabine", 1, "Erich", 2, "Anna", 3, false, 1, 3)]
  186. private void NaechsterSpielerTest(string spielerEinsName, int spielerEinsId, string spielerZweiName, int spielerZweiId, string spielerDreiName, int spielerDreiId, bool uhrZeigerSinn, int aktuellerSpieler, int naechsterErwartung)
  187. {
  188. //arrange
  189. var _spielerEinsName = spielerEinsName;
  190. var _spielerEinsId = spielerEinsId;
  191. var _spielerZweiName = spielerZweiName;
  192. var _spielerZweiId = spielerZweiId;
  193. var _spielerDreiName = spielerDreiName;
  194. var _spielerDreiId = spielerDreiId;
  195. var _uhrZeigerSinn = uhrZeigerSinn;
  196. var _aktuellerSpieler = aktuellerSpieler;
  197. var _naechsterErwartung = naechsterErwartung;
  198. //act
  199. UnoRegeln.SpielerErstellen(_spielerEinsName);
  200. UnoRegeln.SpielerErstellen(_spielerZweiName);
  201. UnoRegeln.SpielerErstellen(_spielerDreiName);
  202. UnoRegeln.NaechsterSpielerWahl(_aktuellerSpieler, _uhrZeigerSinn);
  203. //assert
  204. Assert.Equal(_naechsterErwartung, UnoRegeln.NaechsterSpielerId);
  205. }
  206. #endregion
  207. [Theory]
  208. [InlineData(Farbe.Rot, Farbe.Rot, true)]
  209. [InlineData(Farbe.Blau, Farbe.Rot, false)]
  210. [InlineData(Farbe.Rot, Farbe.Blau, false)]
  211. [InlineData(Farbe.Blau, Farbe.Blau, true)]
  212. [InlineData(Farbe.Gelb, Farbe.Rot, false)]
  213. [InlineData(Farbe.Gruen, Farbe.Gruen, true)]
  214. private void IstAblageStapelFarbeGleichZuLegendeKarteTest(Farbe ablegeStapelKarteFarbe, Farbe neueKarteFarbe, bool erwartet)
  215. {
  216. //arrange
  217. var _ablegeStabelKarteFarbe = ablegeStapelKarteFarbe.ToString();
  218. var _neueKarteFarbe = neueKarteFarbe.ToString();
  219. var _erwartet = erwartet;
  220. //act
  221. UnoRegeln.AblageKartenStapel.KartenModels = new();
  222. UnoRegeln.AblageKartenStapel.KartenModels.Add(
  223. BeispielKarte("Testkarten Name", _ablegeStabelKarteFarbe, false)
  224. );
  225. var erhalten = UnoRegeln.IstAblageStapelFarbeGleichZuLegendeKarte(_neueKarteFarbe);
  226. //assert
  227. Assert.Equal(_erwartet, erhalten);
  228. }
  229. [Theory]
  230. [InlineData(Kartenbezeichnung.Acht, Kartenbezeichnung.Acht, true)]
  231. [InlineData(Kartenbezeichnung.Eins, Kartenbezeichnung.Acht, false)]
  232. [InlineData(Kartenbezeichnung.Fuenf, Kartenbezeichnung.Vier, false)]
  233. [InlineData(Kartenbezeichnung.Sechs, Kartenbezeichnung.Sechs, true)]
  234. [InlineData(Kartenbezeichnung.Zwei, Kartenbezeichnung.Drei, false)]
  235. [InlineData(Kartenbezeichnung.Neun, Kartenbezeichnung.Acht, false)]
  236. private void IstAblageStapelZahlGleichZuLegendeKarteTest(Kartenbezeichnung ablegeStapelKarteBezeichnung, Kartenbezeichnung handStapelKarteBezeichnung, bool erwartet)
  237. {
  238. //arrange
  239. var _ablegeStapelKarteBezeichnung = ablegeStapelKarteBezeichnung.ToString();
  240. var _handStapelKarteBezeichnung = handStapelKarteBezeichnung.ToString();
  241. var _erwartet = erwartet;
  242. //act
  243. UnoRegeln.AblageKartenStapel.KartenModels = new();
  244. UnoRegeln.AblageKartenStapel.KartenModels.Add(
  245. BeispielKarte(_ablegeStapelKarteBezeichnung, Farbe.Blau.ToString(), false)
  246. );
  247. var erhalten = UnoRegeln.IstAblageStapelZahlGleichZuLegendeKarte(_handStapelKarteBezeichnung);
  248. //assert
  249. Assert.Equal(_erwartet, erhalten);
  250. }
  251. [Fact]
  252. private void ZiehEineKarteTest()
  253. {
  254. //arrange
  255. UnoRegeln.ZiehKartenStapelZusammenstellen();
  256. UnoRegeln.SpielerErstellen("Andrej");
  257. var erwartet = UnoRegeln.ZiehKartenStapel.KartenModels.FirstOrDefault();
  258. //act
  259. UnoRegeln.ZiehEineKarte(1);
  260. var erhalten = UnoRegeln.Spieler[0].KartenModels.LastOrDefault();
  261. //assert
  262. Assert.Equal(erwartet, erhalten);
  263. }
  264. [Theory]
  265. [InlineData(2, 0, 1)]
  266. [InlineData(3, 2, 0)]
  267. [InlineData(4, 2, 3)]
  268. [InlineData(5, 0, 1)]
  269. private void PlusZweiKarteAufStapelLegenTest(int anzahlSpieler, int aktuellerSpielerIndex, int naechsterSpielerIndex)
  270. {
  271. //arrange
  272. UnoRegeln.ZiehKartenStapelZusammenstellen();
  273. BeispielMultipleSpielerModelsFüllen(anzahlSpieler);
  274. foreach (var spieler in SpielerModels)
  275. {
  276. UnoRegeln.SpielerErstellen(spieler.SpielerName);
  277. }
  278. var _aktuellerSpielerIndex = aktuellerSpielerIndex;
  279. var _naechsterSpielerIndex = naechsterSpielerIndex;
  280. var nachstenSpielerKartenAnzahlErwartet = UnoRegeln.Spieler[_naechsterSpielerIndex].KartenModels.Count + 2;
  281. var beispielZuLegendeKarte = BeispielKarte(Kartenbezeichnung.PlusZweiKarte.ToString(), Farbe.Gelb.ToString(), true);
  282. //act
  283. UnoRegeln.KarteAufStapelLegen(UnoRegeln.Spieler[_aktuellerSpielerIndex].SpielerModel.Id, beispielZuLegendeKarte);
  284. //assert
  285. Assert.Equal(nachstenSpielerKartenAnzahlErwartet, UnoRegeln.Spieler[_naechsterSpielerIndex].KartenModels.Count);
  286. Assert.DoesNotContain(UnoRegeln.Spieler[_naechsterSpielerIndex].KartenModels[0], UnoRegeln.ZiehKartenStapel.KartenModels);
  287. Assert.DoesNotContain(UnoRegeln.Spieler[_naechsterSpielerIndex].KartenModels[1], UnoRegeln.ZiehKartenStapel.KartenModels);
  288. }
  289. [Theory]
  290. [InlineData(4, 0, 3, true)]
  291. [InlineData(4, 0, 1, false)]
  292. [InlineData(4, 2, 3, false)]
  293. [InlineData(4, 3, 2, true)]
  294. [InlineData(3, 1, 2, false)]
  295. private void RetoureKarteAufStapelLegenTest(int anzahlSpieler, int aktuellerSpielerIndex, int naechsterSpielerIndex, bool uhrzeigerSinn)
  296. {
  297. //arrange
  298. UnoRegeln.ZiehKartenStapelZusammenstellen();
  299. BeispielMultipleSpielerModelsFüllen(anzahlSpieler);
  300. foreach (var spieler in SpielerModels)
  301. {
  302. UnoRegeln.SpielerErstellen(spieler.SpielerName);
  303. }
  304. var erwartet = !uhrzeigerSinn;
  305. var _aktuellerSpielerIndex = aktuellerSpielerIndex;
  306. var beispielZuLegendeKarte = BeispielKarte(Kartenbezeichnung.RetoureKarte.ToString(), Farbe.Gelb.ToString(), true);
  307. //act
  308. UnoRegeln.Uhrzeigersinn = uhrzeigerSinn;
  309. UnoRegeln.KarteAufStapelLegen(UnoRegeln.Spieler[_aktuellerSpielerIndex].SpielerModel.Id, beispielZuLegendeKarte);
  310. //assert
  311. Assert.Equal(naechsterSpielerIndex, UnoRegeln.Spieler.FindIndex(x => x.SpielerModel.Id == UnoRegeln.NaechsterSpielerId));
  312. }
  313. [Theory]
  314. [InlineData(4, 1, 3, true)]
  315. [InlineData(4, 1, 3, false)]
  316. [InlineData(4, 2, 4, true)]
  317. [InlineData(4, 2, 4, false)]
  318. [InlineData(4, 3, 1, true)]
  319. [InlineData(4, 3, 1, false)]
  320. [InlineData(6, 1, 3, true)]
  321. [InlineData(6, 1, 5, false)]
  322. [InlineData(6, 2, 4, true)]
  323. [InlineData(6, 2, 6, false)]
  324. [InlineData(6, 3, 5, true)]
  325. [InlineData(6, 3, 1, false)]
  326. [InlineData(6, 4, 6, true)]
  327. [InlineData(6, 4, 2, false)]
  328. [InlineData(6, 5, 1, true)]
  329. [InlineData(6, 5, 3, false)]
  330. [InlineData(6, 6, 2, true)]
  331. [InlineData(6, 6, 4, false)]
  332. private void AussetzenKarteAufStapelLegenTest(int anzahlSpieler, int aktuellerSpielerId, int naechsterSpielerId, bool uhrzeigerSinn)
  333. {
  334. //arrange
  335. UnoRegeln.ZiehKartenStapelZusammenstellen();
  336. BeispielMultipleSpielerModelsFüllen(anzahlSpieler);
  337. foreach (var spieler in SpielerModels)
  338. {
  339. UnoRegeln.SpielerErstellen(spieler.SpielerName);
  340. }
  341. var erwartetNaechsterSpielerId = naechsterSpielerId;
  342. var _aktuellerSpielerId = aktuellerSpielerId;
  343. var beispielZuLegendeKarte = BeispielKarte(Kartenbezeichnung.AussetzenKarte.ToString(), Farbe.Rot.ToString(), true);
  344. UnoRegeln.Uhrzeigersinn = uhrzeigerSinn;
  345. //act
  346. UnoRegeln.KarteAufStapelLegen(_aktuellerSpielerId, beispielZuLegendeKarte);
  347. //assert
  348. Assert.Equal(erwartetNaechsterSpielerId, UnoRegeln.NaechsterSpielerId);
  349. }
  350. #region Stapel erstellen
  351. [Theory]
  352. [InlineData((Kartenbezeichnung)0, Farbe.Rot, false, 19)]
  353. [InlineData((Kartenbezeichnung)1, Farbe.Rot, false, 19)]
  354. [InlineData((Kartenbezeichnung)2, Farbe.Gelb, false, 19)]
  355. [InlineData((Kartenbezeichnung)3, Farbe.Gruen, false, 19)]
  356. [InlineData((Kartenbezeichnung)4, Farbe.Rot, false, 19)]
  357. [InlineData((Kartenbezeichnung)5, Farbe.Blau, false, 19)]
  358. [InlineData((Kartenbezeichnung)6, Farbe.Gruen, false, 19)]
  359. [InlineData((Kartenbezeichnung)7, Farbe.Blau, false, 19)]
  360. [InlineData((Kartenbezeichnung)8, Farbe.Gruen, false, 19)]
  361. [InlineData((Kartenbezeichnung)9, Farbe.Gelb, false, 19)]
  362. private void ErstelleStandardKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
  363. {
  364. //arrange
  365. var _kartenbezeichnung = kartenbezeichnung.ToString();
  366. var _farbe = farbe.ToString();
  367. var _spezial = spezial;
  368. var _anzahl = anzahl;
  369. var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
  370. //act
  371. var neuesDeck = Uno.ErstelleStandardKarten();
  372. var anzahlBlau = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Blau.ToString())).Count();
  373. var anzahlRot = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Rot.ToString())).Count();
  374. var anzahlGruen = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gruen.ToString())).Count();
  375. var anzahlGelb = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gelb.ToString())).Count();
  376. //assert
  377. Assert.Equal(_anzahl, anzahlBlau);
  378. Assert.Equal(_anzahl, anzahlRot);
  379. Assert.Equal(_anzahl, anzahlGruen);
  380. Assert.Equal(_anzahl, anzahlGelb);
  381. Assert.Contains(neuesDeck.KartenModels, n =>
  382. n.Name.Equals(erwartet.Name) &&
  383. n.Farbe.Equals(erwartet.Farbe) &&
  384. n.Spezial == erwartet.Spezial
  385. );
  386. }
  387. [Theory]
  388. [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gelb, true, 6)]
  389. [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Blau, true, 6)]
  390. [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Gruen, true, 6)]
  391. [InlineData(Kartenbezeichnung.PlusZweiKarte, Farbe.Rot, true, 6)]
  392. [InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Gelb, true, 6)]
  393. [InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Blau, true, 6)]
  394. [InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Gruen, true, 6)]
  395. [InlineData(Kartenbezeichnung.RetoureKarte, Farbe.Rot, true, 6)]
  396. [InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Gelb, true, 6)]
  397. [InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Blau, true, 6)]
  398. [InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Gruen, true, 6)]
  399. [InlineData(Kartenbezeichnung.AussetzenKarte, Farbe.Rot, true, 6)]
  400. private void ErstelleFarbigeSpezialKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
  401. {
  402. //arrange
  403. var _kartenbezeichnung = kartenbezeichnung.ToString();
  404. var _farbe = farbe.ToString();
  405. var _spezial = spezial;
  406. var _anzahl = anzahl;
  407. var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
  408. //act
  409. var neuesDeck = Uno.ErstelleFarbigeSpezialKarten();
  410. var anzahlBlau = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Blau.ToString())).Count();
  411. var anzahlRot = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Rot.ToString())).Count();
  412. var anzahlGruen = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gruen.ToString())).Count();
  413. var anzahlGelb = neuesDeck.KartenModels.Where(x => x.Farbe.Equals(Farbe.Gelb.ToString())).Count();
  414. //assert
  415. Assert.Equal(_anzahl, anzahlBlau);
  416. Assert.Equal(_anzahl, anzahlRot);
  417. Assert.Equal(_anzahl, anzahlGruen);
  418. Assert.Equal(_anzahl, anzahlGelb);
  419. Assert.Contains(neuesDeck.KartenModels, n =>
  420. n.Name.Equals(erwartet.Name) &&
  421. n.Farbe.Equals(erwartet.Farbe) &&
  422. n.Spezial == erwartet.Spezial
  423. );
  424. }
  425. [Theory]
  426. [InlineData(Kartenbezeichnung.FarbwahlKarte, Farbe.Keine, true, 4)]
  427. [InlineData(Kartenbezeichnung.ZiehVierFarbenwahlkarte, Farbe.Keine, true, 4)]
  428. private void ErstelleJokerKartenTest(Kartenbezeichnung kartenbezeichnung, Farbe farbe, bool spezial, int anzahl)
  429. {
  430. //arrange
  431. var _kartenbezeichnung = kartenbezeichnung.ToString();
  432. var _farbe = farbe.ToString();
  433. var _spezial = spezial;
  434. var _anzahl = anzahl;
  435. var erwartet = BeispielKarte(_kartenbezeichnung, _farbe, _spezial);
  436. //act
  437. var neuesDeck = Uno.ErstelleJokerKarten();
  438. var ergebnisAnzahl = neuesDeck.KartenModels.Where(x => x.Name.Equals(kartenbezeichnung.ToString())).Count();
  439. //assert
  440. Assert.Equal(_anzahl, ergebnisAnzahl);
  441. Assert.Contains(neuesDeck.KartenModels, n =>
  442. n.Name.Equals(erwartet.Name) &&
  443. n.Farbe.Equals(erwartet.Farbe) &&
  444. n.Spezial == erwartet.Spezial
  445. );
  446. }
  447. [Fact]
  448. private void AblagestapelZusammenstellenTest()
  449. {
  450. UnoRegeln.ZiehKartenStapelZusammenstellen();
  451. var ergebnis = UnoRegeln.ZiehKartenStapel;
  452. Assert.Equal(108, ergebnis.KartenModels.Count());
  453. }
  454. #endregion
  455. }
  456. }