Ejemplo n.º 1
0
        public ActionResult <List <PokerhandApiOutput> > Post([FromBody] List <PokerhandApiInput> hands)
        {
            // Null Check
            if (hands == null)
            {
                return(new BadRequestObjectResult("Null request."));
            }

            try
            {
                Dictionary <string, Hand> pokerHands = new Dictionary <string, Hand>();

                foreach (PokerhandApiInput hand in hands)
                {
                    pokerHands.Add(hand.Name, PokerhandApiParser.ConvertApiInputToPokerHands(hand.Cards));
                }

                List <KeyValuePair <string, Hand> > sortedhands = pokerHands.ToList();
                sortedhands.Sort((pair1, pair2) => pair2.Value.CompareTo(pair1.Value));

                List <PokerhandApiOutput> response;
                response = sortedhands.Select((hand, index) => new PokerhandApiOutput {
                    Name     = hand.Key,
                    HandType = Enum.GetName(typeof(HandRank), hand.Value.Rank),
                    Position = index + 1
                }).ToList();

                return(response);
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult(ex.Message));
            }
        }
Ejemplo n.º 2
0
        public void ParseSingleCard(string test, CardRank expectedRank, CardSuit expectedSuit)
        {
            Card c = PokerhandApiParser.ParseSingleCard(test);

            Assert.AreEqual(expectedRank, c.Rank);
            Assert.AreEqual(expectedSuit, c.Suit);
        }
Ejemplo n.º 3
0
        public void ParseHand()
        {
            List <string> cardStrings = new List <string>(new string[] { "3H", "KS", "JD", "4H", "2S" });

            Hand hand = PokerhandApiParser.ConvertApiInputToPokerHands(cardStrings);

            // 3H
            Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.Three && x.Suit == CardSuit.Heart));

            // KS
            Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.King && x.Suit == CardSuit.Spade));

            // JD
            Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.Jack && x.Suit == CardSuit.Diamond));

            // 4h
            Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.Four && x.Suit == CardSuit.Heart));

            // 2S
            Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.Two && x.Suit == CardSuit.Spade));
        }
Ejemplo n.º 4
0
 public void ParseCardSuit(string test, CardSuit expected)
 {
     Assert.AreEqual(expected, PokerhandApiParser.ParseCardSuit(test));
 }