コード例 #1
0
ファイル: DevelopmentCardTest.cs プロジェクト: Corne/VOC
        public void ExpectCardNotToBePlayableIfTurnNotEnded(DevelopmentCardType type)
        {
            var turn = new Mock<ITurn>();
            var card = new DevelopmentCard(type, turn.Object);

            Assert.False(card.Playable);
        }
コード例 #2
0
ファイル: DevelopmentCardTest.cs プロジェクト: Corne/VOC
        public void ExpectCardToBePlayableAfterTurnEnded(DevelopmentCardType type)
        {
            var turn = new Mock<ITurn>();
            var card = new DevelopmentCard(type, turn.Object);
            turn.Raise(t => t.Ended += null, EventArgs.Empty);

            Assert.True(card.Playable);
        }
コード例 #3
0
ファイル: DevelopmentCard.cs プロジェクト: Corne/VOC
        public DevelopmentCard(DevelopmentCardType type, ITurn boughtTurn)
        {
            if (!Enum.IsDefined(typeof(DevelopmentCardType), type))
                throw new ArgumentException("Invalid card type");
            if (boughtTurn == null)
                throw new ArgumentNullException(nameof(boughtTurn));

            Id = Guid.NewGuid();
            Type = type;

            if (type == DevelopmentCardType.VictoryPoint)
                _playable = true;
            else {
                turn = boughtTurn;
                turn.Ended += Turn_Ended;
            }
        }
コード例 #4
0
ファイル: StateProviderTest.cs プロジェクト: Corne/VOC
        public void InvalidCardGivesException(DevelopmentCardType type)
        {
            var state1 = new Mock<IFlowSate>();
            var state2 = new Mock<IFlowSate>();
            var flowstates = new IFlowSate[] { state1.Object, state2.Object };
            var factory = CreateFactory();

            var provider = new StateProvider(flowstates, factory);
            Assert.Throws<ArgumentException>(() => provider.Get(type));
        }
コード例 #5
0
ファイル: StateProviderTest.cs プロジェクト: Corne/VOC
        public void TestGetDevelopmentCard(DevelopmentCardType cardType, Type expectedState)
        {
            var state1 = new Mock<IFlowSate>();
            var state2 = new Mock<IFlowSate>();
            var flowstates = new IFlowSate[] { state1.Object, state2.Object };
            var factory = CreateFactory();

            var provider = new StateProvider(flowstates, factory);
            var result = provider.Get(cardType);
            Assert.IsAssignableFrom(expectedState, result);
        }
コード例 #6
0
ファイル: DevelopmentCardTest.cs プロジェクト: Corne/VOC
 public void CardCantBeCreatedWithInvalidCardType(DevelopmentCardType type)
 {
     var turn = new Mock<ITurn>();
     Assert.Throws<ArgumentException>(() => new DevelopmentCard(type, turn.Object));
 }
コード例 #7
0
ファイル: TurnTest.cs プロジェクト: Corne/VOC
        public void ExpectPlayDevelopmentCardToSetDevelomentCardState(DevelopmentCardType type)
        {
            var player = new Mock<IPlayer>();
            var state1 = new Mock<ITurnState>();
            var provider = new Mock<IStateProvider>();
            provider.Setup(p => p.HasNext()).Returns(true);
            provider.Setup(p => p.GetNext()).Returns(state1.Object);
            state1.Setup(s => s.Commands).Returns(new GameCommand[] { GameCommand.PlayDevelopmentCard });

            var card = new Mock<IDevelopmentCard>();
            card.Setup(c => c.Type).Returns(type);
            var turn = new Turn(player.Object, provider.Object);
            turn.NextFlowState();

            bool changed = false;
            turn.StateChanged += (sender, args) => { changed = true; };

            turn.PlayDevelopmentCard(card.Object);

            provider.Verify(p => p.Get(type));
            Assert.True(changed);
        }
コード例 #8
0
ファイル: PlayerTest.cs プロジェクト: Corne/VOC
 public static IDevelopmentCard CreateCard(DevelopmentCardType type, bool played)
 {
     var mock = new Mock<IDevelopmentCard>();
     mock.Setup(m => m.Type).Returns(type);
     mock.Setup(m => m.Played).Returns(played);
     return mock.Object;
 }