public void Peek_FromEmptyPile_Throws() { var position = _f.Create <PilePosition>(); var pile = new Pile(); var ex = Assert.Catch <InvalidOperationException>(() => pile.Peek(position)); Assert.That(ex.Message, Contains.Substring("is empty").IgnoreCase); }
/// <summary> /// Trump defined by stock. /// </summary> public static Trump LastCard(Pile pile) { if (pile.IsEmpty) { throw new ArgumentException("Can not peek card from empty pile"); } return(new Trump(pile.Peek(PilePosition.Bottom).Suit)); }
public void Peek_Bottom_ReturnsLasstCard() { var source = new[] { RndCard(1), RndCard(2), RndCard(3), RndCard(4) }; var pile = new Pile(source); var result = pile.Peek(PilePosition.Bottom); Assert.AreSame(source[3], result); Assert.AreEqual(source.Count(), pile.Size); }
public void Peek_Top_ReturnsFirstCard() { var source = new[] { RndCard(1), RndCard(2), RndCard(3), RndCard(4) }; var pile = new Pile(source); var result = pile.Peek(PilePosition.Top); Assert.AreSame(source[0], result); Assert.AreEqual(source.Count(), pile.Size); }
public void Peek_Middle_ReturnsRandomCard() { var source = new[] { RndCard(1), RndCard(2), RndCard(3), RndCard(4) }; var dict = new Dictionary <int, int>(); for (var i = 0; i < 50; i++) { var pile = new Pile(source); var result = pile.Peek(PilePosition.Middle); IncValueForKey(dict, result.Rank.Value); Assert.AreEqual(source.Count(), pile.Size); } Assert.That(dict.Select(x => x.Value), Has.All.GreaterThan(1)); Assert.AreEqual(4, dict.Keys.Count); }