public void Register7() { var gpi = new GPI(); var testNotifier = new TestNotifier <IGPI>(); var assigner = new Assigner <IGPI>(testNotifier); testNotifier.Add(gpi); var obj1 = new UnityEngine.GameObject(); var testAdsorber1 = new TestAdsorber(); assigner.Register(testAdsorber1); assigner.Unregister(testAdsorber1); var obj2 = new UnityEngine.GameObject(); var testAdsorber2 = new TestAdsorber(); assigner.Register(testAdsorber2); assigner.Unregister(testAdsorber2); testNotifier.Remove(gpi); Assert.AreEqual(1, testAdsorber1.SupplyCount); Assert.AreEqual(1, testAdsorber1.UnsupplyCount); Assert.AreEqual(1, testAdsorber2.SupplyCount); Assert.AreEqual(1, testAdsorber2.UnsupplyCount); }
private Assigner _QueryNotifier <T>(INotifier <T> notifier) { var hash = notifier.GetHashCode(); Assigner outAssigner; if (_Notifiers.TryGetValue(hash, out outAssigner)) { return(outAssigner); } outAssigner = new Assigner <T>(notifier); _Notifiers.Add(hash, outAssigner); return(outAssigner); }
public void Register1() { var gpi = new GPI(); var testNotifier = new TestNotifier <IGPI>(); var assigner = new Assigner <IGPI>(testNotifier); var obj = new UnityEngine.GameObject(); var testAdsorber = new TestAdsorber(); assigner.Register(testAdsorber); testNotifier.Add(gpi); Assert.AreEqual(1, testAdsorber.SupplyCount); }