public void CtorTest() { Soldier s1 = new Soldier(); Assert.That(s1.IsAlive, Is.EqualTo(true)); Soldier.StaticPrototype.Ctor = delegate { }; Soldier s2 = new Soldier(); Assert.That(s2.IsAlive, Is.EqualTo(false)); Soldier.StaticPrototype.Ctor = self => self.xCtor(); Soldier s3 = new Soldier(); Assert.That(s3.IsAlive, Is.EqualTo(true)); }
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)); }
public void ExperementalTest() { Person p = new Person(); p.Kill(); var isAlive = p.IsAlive; p.PersonPrototype.set_Name = delegate(Person self, string name) { Assert.That(self, Is.SameAs(p)); Assert.That(name, Is.EqualTo("ABC")); self.xName = name; }; p.Name = "ABC"; Assert.That(p.Name, Is.EqualTo("ABC")); Soldier s = new Soldier(); s.Rank = Rank.Captain; Assert.That(s.Rank, Is.EqualTo(Rank.Captain)); Soldier.StaticPrototype.get_Rank = self => Rank.Lieutenant; Assert.That(s.Rank, Is.EqualTo(Rank.Lieutenant)); Assert.That(Person.IsThereTrueLove, Is.EqualTo(false)); Person.StaticPrototype.get_IsThereTrueLove = () => true; Assert.That(Person.IsThereTrueLove, Is.EqualTo(true)); }