root/lang/csharp/DominionEngine/DominionEngine.CardInfo.Test/Base/MoneylenderTest.cs @ 37703

Revision 37703, 2.6 kB (checked in by isaisstillalive, 3 years ago)
  • CardInfoのシングルトンインスタンスをCardInfoアセンブリとCoreアセンブリで別々に作るという意味のわからないことをしてしまっていたため、一元化
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using NUnit.Framework;
6
7namespace DominionEngine.CardInfo.Test.BaseTest
8{
9    [TestFixture]
10    public class MoneylenderTest
11    {
12        [TearDown]
13        public void TearDown()
14        {
15            TurnPlayer.ClearEvent();
16            AnyPlayer.ClearEvent();
17            Card.ClearEvent();
18        }
19
20        [Test]
21        public void Action()
22        {
23            Global.TurnPlayer = 0;
24
25            AnyPlayer.ChoosingEventArgs choosingArgs = null;
26            AnyPlayer.Choosing += (sender, e) =>
27            {
28                choosingArgs = e;
29                e.Result = new Card[] { new Card<Copper>(CardPosition.Hand(0)) };
30            };
31            Card.MovingEventArgs movingArgs = null;
32            Card.Moving += (sender, e) => movingArgs = e;
33
34            int coin = 0;
35            TurnPlayer.CoinChanged += (sender, e) => coin = e.Value;
36
37            IAction card = new Base.Moneylender();
38
39            card.Action();
40
41            Assert.That(choosingArgs.From, Is.EqualTo(CardPosition.Hand(0)));
42            Assert.That(choosingArgs.MinQuantity, Is.EqualTo(1));
43            Assert.That(choosingArgs.MaxQuantity, Is.EqualTo(1));
44            Assert.That(choosingArgs.Filter(CardInfo<Copper>.Instance), Is.True);
45            Assert.That(choosingArgs.Filter(CardInfo<Silver>.Instance), Is.False);
46
47            Assert.That(coin, Is.EqualTo(3));
48        }
49
50        [Test]
51        public void Action_NoCopper()
52        {
53            Global.TurnPlayer = 0;
54
55            AnyPlayer.ChoosingEventArgs choosingArgs = null;
56            AnyPlayer.Choosing += (sender, e) =>
57            {
58                choosingArgs = e;
59                e.Result = new Card[] {};
60                e.Force = true;
61            };
62            Card.MovingEventArgs movingArgs = null;
63            Card.Moving += (sender, e) => movingArgs = e;
64
65            int coin = 0;
66            TurnPlayer.CoinChanged += (sender, e) => coin = e.Value;
67
68            IAction card = new Base.Moneylender();
69
70            card.Action();
71
72            Assert.That(choosingArgs.From, Is.EqualTo(CardPosition.Hand(0)));
73            Assert.That(choosingArgs.MinQuantity, Is.EqualTo(1));
74            Assert.That(choosingArgs.MaxQuantity, Is.EqualTo(1));
75            Assert.That(choosingArgs.Filter(CardInfo<Copper>.Instance), Is.True);
76            Assert.That(choosingArgs.Filter(CardInfo<Silver>.Instance), Is.False);
77
78            Assert.That(coin, Is.EqualTo(0));
79        }
80    }
81}
Note: See TracBrowser for help on using the browser.