public void BehaviorsFunctionalTest() { IActor actor = new BaseActor(); IBehaviors behaviors = new Behaviors(); behaviors.LinkToActor(actor); Assert.AreEqual(actor, behaviors.LinkedActor); behaviors .AddBehavior(new Behavior <string>()) .AddBehavior(new Behavior <int>()); Assert.AreEqual(2, behaviors.AllBehaviors().Count()); Assert.IsTrue(behaviors.AllBehaviors().Any(b => b is IBehavior <string>)); Assert.IsTrue(behaviors.AllBehaviors().Any(b => b is IBehavior <int>)); foreach (var bhv in behaviors.AllBehaviors()) { Assert.IsTrue(bhv.LinkedTo == behaviors); } IBehavior bhvString = behaviors.AllBehaviors().First(b => b is IBehavior <string>); behaviors.RemoveBehavior(bhvString); Assert.IsFalse(behaviors.FindBehavior(bhvString)); Assert.IsTrue(behaviors.AllBehaviors().Count() == 1); Assert.IsFalse(bhvString.LinkedTo == behaviors); Assert.IsTrue(bhvString.LinkedActor == null); }
public void BehaviorsSimpleTest() { var actor = new BaseActor(); var behaviors = new Behaviors(); behaviors.LinkToActor(actor); Assert.AreEqual(actor, behaviors.LinkedActor); var behavior1 = new Behavior <string>(); var behavior2 = new Behavior <int>(); behaviors.AddBehavior(behavior1); behaviors.AddBehavior(behavior2); behaviors.AddBehavior(null); var allBehaviors = behaviors.AllBehaviors(); Assert.AreEqual(2, allBehaviors.Count()); Assert.IsTrue(allBehaviors.Contains(behavior1)); Assert.IsTrue(allBehaviors.Contains(behavior2)); Assert.IsTrue(behaviors.FindBehavior(behavior1)); Assert.IsTrue(behaviors.FindBehavior(behavior2)); var behavior3 = new Behavior <object>(); Assert.IsFalse(behaviors.FindBehavior(behavior3)); Assert.IsFalse(behaviors.FindBehavior(null)); Assert.IsTrue(behavior1.LinkedTo == behaviors); Assert.IsTrue(behavior2.LinkedTo == behaviors); behaviors.RemoveBehavior(behavior2); Assert.IsFalse(behaviors.FindBehavior(behavior2)); Assert.IsTrue(behaviors.FindBehavior(behavior1)); Assert.IsTrue(behavior1.LinkedTo == behaviors); Assert.IsFalse(behavior2.LinkedTo == behaviors); Assert.IsTrue(behavior1.LinkedActor == actor); Assert.IsTrue(behavior2.LinkedActor == null); }