public void SubscribeWithArgsTest() { // Arrange string objectId = "objId1"; var expectedRequest = new SubscribeRequest() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnDataChanged)) }; SubscribeRequest actualRequest = null; _clientMock.Setup(o => o.Request(It.IsAny <SubscribeRequest>())).Returns <SubscribeRequest>(req => { actualRequest = req; return(new SubscribeResponse() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnDataChanged)) }); }); var objProxy = RuntimeProxy.Create <IRegisteredObject>(objectId, _clientMock.Object); // Act objProxy.NotifyOnDataChanged += (s, e) => { }; // Assert _clientMock.VerifyAll(); Assert.AreEqual(expectedRequest.objectId, actualRequest.objectId); Assert.AreEqual(expectedRequest.eventId, actualRequest.eventId); }
public void EventNotificationWithArgsTest() { // Arrange string objectId = "objId1"; _clientMock.Setup(o => o.Request(It.IsAny <IRequest>())).Returns <IRequest>((req) => { var resp = new GetBindingDescriptionsResponse(); resp.bindings.Add(objectId, ObjectDescriptor.GetObjectDescription <IRegisteredObject>()); return(resp); }); var sender = new Sender(_clientMock.Object); sender.Register <IRegisteredObject>(); sender.SynchronizeBindings(); _clientMock.Setup(o => o.Request(It.IsAny <SubscribeRequest>())).Returns <SubscribeRequest>(req => { return(new SubscribeResponse() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnDataChanged)) }); }); var objProxy = sender.GetBindingsByType <IRegisteredObject>()[objectId]; bool argsReceived = false; objProxy.NotifyOnDataChanged += (s, e) => { argsReceived = e as DataChangedEventArgs != null; }; var notification = new EventNotification() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnDataChanged)), eventArgs = new DataChangedEventArgs("dataChanged", 2) }; // Act _clientMock.Raise(o => o.NotificationReceived += null, null, new Messages.NotificationEventArgs(notification)); // Assert _clientMock.Verify(); Assert.IsTrue(argsReceived); }
public void UnsubscribeNoArgsWithWrongResponseTypeTest() { // Arrange string objectId = "objId1"; _clientMock.Setup(o => o.Request(It.IsAny <IRequest>())).Returns <IRequest>(req => { return(new SubscribeResponse() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnNonDataChanged)) }); }); var objProxy = RuntimeProxy.Create <IRegisteredObject>(objectId, _clientMock.Object); // Act objProxy.NotifyOnNonDataChanged -= (s, e) => { }; // Assert _clientMock.VerifyAll(); }
public void SubscribeWithArgsTest() { // Arrange var objectId = "objId1"; EventNotification notification = null; _callbackMock.Setup(o => o.Callback(It.IsAny <INotification>())).Callback <INotification>((resp) => { notification = resp as EventNotification; }); var server = new Recipient(); var request = new SubscribeRequest() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnDataChanged)) }; var expectedEventArgs = new DataChangedEventArgs("eventName", 2.0); // Act server.Register(objectId, _regObjectMock.Object); var response = server.Request(request, _callbackMock.Object) as SubscribeResponse; _regObjectMock.Raise(o => o.NotifyOnDataChanged += null, expectedEventArgs); // Assert _callbackMock.Verify(); _regObjectMock.Verify(); Assert.AreEqual(NotificationType.eventInvoked, notification.notificationType); Assert.AreEqual(request.objectId, notification.objectId); Assert.AreEqual(request.eventId, notification.eventId); Assert.IsNotNull(notification.eventArgs as DataChangedEventArgs); Assert.AreEqual("eventName", (notification.eventArgs as DataChangedEventArgs).Name); Assert.AreEqual(2.0, (notification.eventArgs as DataChangedEventArgs).Data); Assert.AreEqual(ResponseType.subscribe, response.responseType); Assert.AreEqual(request.objectId, response.objectId); Assert.AreEqual(request.eventId, response.eventId); }
public void UnsubscribeTest() { // Arrange var objectId = "objId1"; string nullIfPassed = String.Empty; _callbackMock.Setup(o => o.Callback(It.IsAny <INotification>())).Callback <INotification>((resp) => { nullIfPassed = null; }); var server = new Recipient(); var subscribeRequestObj = new SubscribeRequest() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnNonDataChanged)) }; var unsubscribeRequest = new UnsubscribeRequest() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnNonDataChanged)) }; // Act server.Register(objectId, _regObjectMock.Object); server.Request(subscribeRequestObj, _callbackMock.Object); var response = server.Request(unsubscribeRequest, _callbackMock.Object) as UnsubscribeResponse; _regObjectMock.Raise(o => o.NotifyOnNonDataChanged += null, EventArgs.Empty); // Assert _callbackMock.Verify(); _regObjectMock.Verify(); Assert.AreEqual(ResponseType.unsubscribe, response.responseType); Assert.AreEqual(unsubscribeRequest.objectId, response.objectId); Assert.AreEqual(unsubscribeRequest.eventId, response.eventId); }
public void SubscribeTest() { // Arrange var objectId = "objId1"; EventNotification actualNotif = null; _callbackMock.Setup(o => o.Callback(It.IsAny <INotification>())).Callback <INotification>((notif) => { actualNotif = notif as EventNotification; }); var server = new Recipient(); var request = new SubscribeRequest() { objectId = objectId, eventId = ObjectDescriptor.GetEventId <IRegisteredObject>(nameof(IRegisteredObject.NotifyOnNonDataChanged)) }; // Act server.Register(objectId, _regObjectMock.Object); var response = server.Request(request, _callbackMock.Object) as SubscribeResponse; _regObjectMock.Raise(o => o.NotifyOnNonDataChanged += null, EventArgs.Empty); // Assert _callbackMock.Verify(); _regObjectMock.Verify(); Assert.AreEqual(NotificationType.eventInvoked, actualNotif.notificationType); Assert.AreEqual(request.objectId, actualNotif.objectId); Assert.AreEqual(request.eventId, actualNotif.eventId); Assert.IsNotNull(actualNotif.eventArgs as EventArgs); Assert.AreEqual(ResponseType.subscribe, response.responseType); Assert.AreEqual(request.objectId, response.objectId); Assert.AreEqual(request.eventId, response.eventId); }