public void ReceiveTelemetryMessage_ExpectTelemetryMessageStored() { EventAggregatorMock eventAggregatorMock = new EventAggregatorMock(); eventAggregatorMock.AddPubSubEvent <TelemetryUpdateEvent, TelemetryUpdateEventArgs>(); IEventAggregator eventAggregator = eventAggregatorMock; ITelemetryReceiver telemetryReceiver = Substitute.For <ITelemetryReceiver>(); MainViewModel mainViewModel = new MainViewModel(eventAggregator, telemetryReceiver); ActivityLogViewModel activityLogViewModel = mainViewModel.ActivityLogViewModel; ReceivedTelemetryEventArgs eventArgs = new ReceivedTelemetryEventArgs( telemetryType: FAILURE_MESSAGE_TYPE, message: FAILURE_MESSAGE, sender: FAILURE_MESSAGE_SENDER, receiver: FAILURE_MESSAGE_RECEIVER, timestamp: DateTime.Now); mainViewModel.StartReceiveNotificationsCommand.Execute(); telemetryReceiver.NotificationReceived += Raise.EventWith(this, eventArgs); Assert.AreEqual(RECEIVE_MESSAGES_COUNT, activityLogViewModel.Activities.Count); Assert.AreEqual(FAILURE_MESSAGE_TYPE, activityLogViewModel.Activities.First().EventType); Assert.AreEqual(FAILURE_MESSAGE_SENDER, activityLogViewModel.Activities.First().Sender); Assert.AreEqual(FAILURE_MESSAGE, activityLogViewModel.Activities.First().Message); }
private void HandleOnNotificationReceivedTimerTick(object state) { // there should be actual business logic for receiving data from NASA servers, // but that is just testing example application, so just generate messages randomly TelemetryEventType argsType = (TelemetryEventType)(_random.Next() % 4); var args = new ReceivedTelemetryEventArgs( argsType, _perNotificationEventTypeMessages[argsType], MESSAGES_SENDER, MESSAGES_RECEIVER, DateTime.Now); NotificationReceived?.Invoke(this, args); }