public void TestPartialParametersRestriction() { var testHub = new MessagesHub(); Assert.Throws <MessagesUtils.MessageHandlerSignatureException>(() => { var instance = new HandlerObject2(); MessagesUtils.AutoSubscribe(instance, testHub); }); }
public void TestAutoSubscription() { var testHub = new MessagesHub(); var instance = new HandlerObject(); var subscriptions = MessagesUtils.AutoSubscribe(instance, testHub); using (Disposable.FromAction(() => { foreach (var s in subscriptions) { s.Subscription.Dispose(); } })) { string str1 = "value1"; string str2 = "value2"; int ival1 = 77; Assert.AreEqual(instance.StrValue, string.Empty); Assert.AreEqual(instance.IntValue, 0); NotificationMessage1.Broadcast(str1, testHub); Assert.AreEqual(instance.StrValue, str1); NotificationMessage2.Broadcast(str2, ival1, testHub); Assert.AreEqual(instance.StrValue, str2); Assert.AreEqual(instance.IntValue, ival1); } Assert.Throws <Exception>(() => { // all subscriptions must gone after using (...) block NotificationMessage1.Broadcast(string.Empty, testHub); }); }