Пример #1
0
        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);
        }
Пример #2
0
        /// <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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }