Пример #1
0
        public StrategyA_Test()
        {
            var input = "1";

            ConfigurationSetter = new Mock <IConfigurationSetter>();
            ConfigurationSetter
            .Setup(x => x.Message.chooseAttackCard_3_)
            .Returns("");
            ConfigurationSetter
            .Setup(x => x.Message.youCannotUseCard_5_)
            .Returns("");

            ConsoleReadMock = new Mock <IConsoleReadWrap>();
            ConsoleReadMock
            .Setup(x => x.ConsoleReadKey());

            StrategyA           = new StrategyA(ConfigurationSetter.Object, ConsoleReadMock.Object);
            CardToBeat          = new Card(1, "", "", false);
            CardToBeatTrumpTrue = new Card(1, "", "", true);
            CardListOnHands     = new List <Card>
            {
                new Card(1, "", "", true),
                new Card(2, "", "", false),
                new Card(8, "", "", true),
                new Card(9, "", "", true)
            };
            CardListOnTable = new List <Card>
            {
                new Card(1, "", "", false),
                new Card(2, "", "", false),
                new Card(1, "", "", false),
                new Card(1, "", "", true)
            };
        }
Пример #2
0
        public void StrategyA_DefendShouldReturnCardIfCardToBeatTrumpTrue()
        {
            //Arrange
            //Act
            Card tempCard = StrategyA.Defend(CardListOnTable, CardListOnHands, CardToBeatTrumpTrue);

            //Assert
            Assert.AreEqual(CardListOnHands[2], tempCard);
        }
Пример #3
0
        public void StrategyA_AttackShouldReturnCard()
        {
            //Arrange
            //Act
            Card tempCard = StrategyA.Attack(CardListOnHands, CardListOnTable);

            //Assert
            Assert.AreEqual(CardListOnHands[1], tempCard);
        }
Пример #4
0
        public void StrategyAChooseMinRankCardReturnNull()
        {
            //Arrange
            //Act
            Card actualCard = StrategyA.ChooseMinRankCard(CardListOnHands, true);

            //Assert
            Assert.AreEqual(CardListOnHands[0], actualCard);
        }
Пример #5
0
        public void StrategyA_PossibleAttackCardsShouldReturnListOfCards()
        {
            //Arrange
            //Act
            List <Card> actualCards = StrategyA.PossibleAttackCards(CardListOnHands, CardListOnTable);

            //Assert
            Assert.AreEqual(actualCards[0], CardListOnHands[0]);
            Assert.AreEqual(actualCards.Count, 2);
        }
Пример #6
0
        public void StrategyA_PossibleDefendCardsShouldReturnListOfCards()
        {
            //Arrange
            //Act
            List <Card> actualCards  = StrategyA.PossibleDefendCards(CardListOnHands, CardToBeat);
            List <Card> actualCards2 = StrategyA.PossibleDefendCards(CardListOnHands, CardToBeatTrumpTrue);

            //Assert
            Assert.AreEqual(actualCards[0], CardListOnHands[0]);
            Assert.AreEqual(actualCards.Count, 4);
            Assert.AreEqual(actualCards2.Count, 2);
        }
Пример #7
0
        public void ShouldExecuteDifferentStrategies()
        {
            StrategyA a = new StrategyA();
            StrategyB b = new StrategyB();

            Context context = new Context();

            context.Strategies.Add(a);
            context.Strategies.Add(b);

            context.Process();

            a.Message.Should().BeEquivalentTo("Algorithm A is being called.");
            b.Message.Should().BeEquivalentTo("Algorithm B is being called.");
        }
Пример #8
0
    // Use this for initialization
    void Start()
    {
        StrategyContext strategyContext = new StrategyContext();

        StrategyA strategyA = new StrategyA("strategyA");
        StrategyB strategyB = new StrategyB("strategyB");


        strategyContext.SetStrategy(strategyA);
        strategyContext.RequestStrategy();

        //需求变化时候
        strategyContext.SetStrategy(strategyB);
        strategyContext.RequestStrategy();
    }