コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }