public void TestGetPoker()
        {
            var factory = new PokerFactory();
            var p1      = factory.Create(10, SuitOptions.Heart);
            var p2      = factory.Create(10, SuitOptions.Heart);
            var p3      = factory.Create(10, SuitOptions.Spade);
            var p4      = factory.Create(11, SuitOptions.Heart);

            Assert.AreEqual <Poker>(p1, p2); // 都是红桃10
            Assert.AreNotEqual <Poker>(p1, p3);
            Assert.AreNotEqual <Poker>(p1, p4);

            Assert.AreEqual <Rank>(p1.Rank, p3.Rank); // 都是10点
            Assert.AreEqual <Suit>(p1.Suit, p4.Suit); // 都是红桃
        }
        public void TestGetPoker()
        {
            var factory = new PokerFactory();

            var p1 = factory.CreatePoker(10, Suit.Heart);
            var p2 = factory.CreatePoker(10, Suit.Heart);

            var p3 = factory.CreatePoker(10, Suit.Spade);
            var p4 = factory.CreatePoker(11, Suit.Heart);

            //验证整体享元特性
            Assert.AreEqual <Poker>(p1, p2);
            Assert.AreNotEqual <Poker>(p1, p3);
            Assert.AreNotEqual <Poker>(p1, p4);

            //验证局部享元特性
            //都是10点
            Assert.AreEqual <PointBase>(p1.Point, p3.Point);
            //都是红桃
            Assert.AreEqual <SuitBase>(p1.Suit, p4.Suit);
        }
        private void SetMockRules()
        {
            //TODO: FP-implement db lookup of Rules
            //Get all poker rules from the database and build the Poker Rules from data this method simulates the data from the database
            //The HandTypes table contains all the rules. We will build our rules against the data in the Hand Types
            //We will build a collection of the Rules from the PokerRuleFactory

            List <HandType> rules = new List <HandType>();
            HandType        ht    = new HandType(null)
            {
                Value = 9, TypeId = 0
            };
            HandType ht2 = new HandType(null)
            {
                Value = 8, TypeId = 1
            };
            HandType ht3 = new HandType(null)
            {
                Value = 7, TypeId = 2
            };
            HandType ht4 = new HandType(null)
            {
                Value = 6, TypeId = 3
            };
            HandType ht5 = new HandType(null)
            {
                Value = 5, TypeId = 4
            };
            HandType ht6 = new HandType(null)
            {
                Value = 4, TypeId = 5
            };
            HandType ht7 = new HandType(null)
            {
                Value = 3, TypeId = 6
            };
            HandType ht8 = new HandType(null)
            {
                Value = 2, TypeId = 7
            };
            HandType ht9 = new HandType(null)
            {
                Value = 1, TypeId = 8
            };

            rules.Add(ht);
            rules.Add(ht2);
            rules.Add(ht3);
            rules.Add(ht4);
            rules.Add(ht5);
            rules.Add(ht6);
            rules.Add(ht7);
            rules.Add(ht8);
            rules.Add(ht9);


            foreach (HandType h in rules)
            {
                Quicken.Poker.Core.PokerRuleType pokerRuleType = (PokerRuleType)h.TypeId;
                h.Rule       = PokerFactory.Create(pokerRuleType);
                h.Rule.Value = h.Value;
            }

            PokerRuleService.Rules = rules;
        }