コード例 #1
0
ファイル: AllTests.cs プロジェクト: vlad-zapp/Mice
        public void VirtualCallTest()
        {
            Soldier s0 = new Soldier();
            s0.Rank = Rank.Captain;
            s0.Kill();
            Assert.That(s0.Rank, Is.EqualTo(Rank.General));
            Assert.That(s0.IsAlive, Is.EqualTo(false));

            Soldier s1 = new Soldier();
            s1.Rank = Rank.Captain;
            s1.SoldierPrototype.Kill = delegate { };
            s1.Kill();
            Assert.That(s1.Rank, Is.EqualTo(Rank.Captain));
            Assert.That(s1.IsAlive, Is.EqualTo(true));

            Soldier s2 = new Soldier();
            s2.Rank = Rank.Captain;
            s2.SoldierPrototype.Kill = self =>
                                       (self as Person).xKill();
            s2.Kill();
            Assert.That(s2.Rank, Is.EqualTo(Rank.Captain));
            Assert.That(s2.IsAlive, Is.EqualTo(false));
        }