Пример #1
0
        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);
        }
Пример #2
0
        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);
        }