public void NoTokens_Zero()
        {
            var tokens = new List <Token>();

            var cost = new TokenSetCostCalculation(tokens).Get();

            Assert.Equal(0, cost);
        }
        public void MultipleTactics_CostGoesUp(int tactics, int expectedTacticsCost)
        {
            var tokens = Enumerable.Range(0, tactics).Select(x =>
                                                             new Token {
                FaceUp = TokenSideType.Tactics
            }).ToList();

            var cost = new TokenSetCostCalculation(tokens).Get();

            Assert.Equal(expectedTacticsCost + tactics * 2, cost);
        }
        public void OneSidedInitiate_CostGoesUp(int initiatives, int expectedInitiativeCost)
        {
            var tokens = Enumerable.Range(0, initiatives).Select(x =>
                                                                 new Token {
                FaceUp = new TokenSide {
                    HasInitiative = true
                }
            }).ToList();

            var cost = new TokenSetCostCalculation(tokens).Get();

            Assert.Equal(expectedInitiativeCost + initiatives * 2, cost);
        }
        public void OneTokenWithOneSideBlank_CostIsExpected(TokenSideType type, int quantity, int tokenTypeCost)
        {
            var tokens = new List <Token> {
                new Token {
                    FaceUp = new TokenSide {
                        Type = type, Quantity = quantity
                    }
                }
            };

            var cost = new TokenSetCostCalculation(tokens).Get();

            Assert.Equal(tokenTypeCost + 2, cost);
        }
        public void FiveBlankTokens_TenCost()
        {
            var tokens = new List <Token>
            {
                new Token(),
                new Token(),
                new Token(),
                new Token(),
                new Token()
            };

            var cost = new TokenSetCostCalculation(tokens).Get();

            Assert.Equal(10, cost);
        }
        public void TwoSidedInitiative_DoubleSidedPenalty(int doubleSidedInitiatives, int expectedInitiativeCost)
        {
            var tokens = Enumerable.Range(0, doubleSidedInitiatives).Select(x =>
                                                                            new Token
            {
                FaceUp = new TokenSide {
                    HasInitiative = true
                },
                FaceDown = new TokenSide {
                    HasInitiative = true
                }
            }).ToList();

            var cost = new TokenSetCostCalculation(tokens).Get();

            Assert.Equal(expectedInitiativeCost + doubleSidedInitiatives * 2, cost);
        }