예제 #1
0
        public void SubscriberInheritenceTest()
        {
            B   v        = new V();
            int testData = 1;
            var obj      = new ObjectClass {
                SubData = testData
            };
            var supObj = new SuperClass {
                SuperData = testData
            };

            EventHub.Instance.Deregister(a);
            EventHub.Instance.Deregister(b);
            EventHub.Instance.Register(v);
            EventHub.Instance.Post(obj);
            EventHub.Instance.Post(supObj);
            Task.Delay(100).Wait();
            Assert.That(((V)v).NewMethodHit, Is.EqualTo(true), $"'{obj.GetType().FullName}' subscriber wasn't hit in '{v.GetType().FullName}'");
            Assert.That(((V)v).VirtualMethodHit, Is.EqualTo(true), $"'{supObj.GetType().FullName}' subscriber wasn't hit in '{v.GetType().FullName}'");

            Assert.That(((V)v).SupMethodHit, Is.Not.EqualTo(true), $"'{obj.GetType().FullName}' subscriber was hit in '{typeof(B).FullName}'");
            Assert.That(((V)v).UlMethodHit, Is.Not.EqualTo(true), $"'{supObj.GetType().FullName}' subscriber was hit in '{typeof(B).FullName}'");
            EventHub.Instance.Deregister(v);
        }
예제 #2
0
 public void Subscriber(ObjectClass objectClass)
 {
 }
예제 #3
0
 public new void Subscriber(ObjectClass objectClass)
 {
     objNew       = objectClass;
     NewMethodHit = true;
 }
예제 #4
0
 public new void Subscriber(ObjectClass objectClass)
 {
     Task.Delay(1500).Wait();
     obj          = objectClass;
     SubMethodHit = true;
 }
예제 #5
0
 public virtual void Subscriber(ObjectClass objectClass)
 {
     supObj       = objectClass;
     SupMethodHit = true;
 }
예제 #6
0
 public void Subscriber(ObjectClass objectClass, string str)
 {
 }
예제 #7
0
 public override void Subscriber(ObjectClass objectClass)
 {
     obj          = objectClass;
     SubMethodHit = true;
 }