public static EventAggregator Create(ILogger logger)
        {
            var msgsToIgnoreTraceOn = new List <Type>
            {
                typeof(InitializationOfUnitTestHarnessClientEvent),
                typeof(TestExecutionClassCompletedClientEvent),
                typeof(TestExecutionClassBeginClientEvent),
                typeof(SignalTestCompleteClientEvent),
            };

            var config = new EventAggregator.Config
            {
                HoldReferences = true,
                OnMessageNotPublishedBecauseZeroListeners = msgNotHandled =>
                {
                    var msgType = msgNotHandled.GetType();

                    if (msgsToIgnoreTraceOn.Contains(msgType))
                    {
                        return;
                    }

                    logger.Debug("No event listener objects were defined to listen to message of type({0})".FormatWith(msgType.FullName));
                }
            };

            return(new EventAggregator(config));
        }
        public EventAggregator Create()
        {
            var msgsToIgnoreTraceOn = new List<Type>
            {
                typeof (InitializationOfUnitTestHarnessClientEvent),
                typeof (TestExecutionClassCompletedClientEvent),
                typeof (TestExecutionClassBeginClientEvent),
                typeof (SignalTestCompleteClientEvent),
            };

            var config = new EventAggregator.Config
            {
                HoldReferences = true,
                OnMessageNotPublishedBecauseZeroListeners = msgNotHandled =>
                {
                    var msgType = msgNotHandled.GetType();

                    if (msgsToIgnoreTraceOn.Contains(msgType))
                        return;

                    _logger.Debug("No event listener objects were defined to listen to message of type({0})".FormatWith(msgType.FullName));
                }
            };

            return new EventAggregator(config);
        }
        public void When_no_subscribers_can_detect_nothing_was_published()
        {
            var  config           = new EventAggregator.Config();
            bool warningWasCalled = false;

            config.OnMessageNotPublishedBecauseZeroListeners = msg => { warningWasCalled = true; };
            var eventAggregator = new EventAggregator(config);

            eventAggregator.SendMessage <SomeMessage>();

            warningWasCalled.ShouldBeTrue();
        }
        public void When_instructed_to_hold_a_strong_reference_and_the_listener_is_attempted__been_garbage_collected_and_an_event_is_published_the_zombied_handler_should_be_removed()
        {
            var config = new EventAggregator.Config
            {
                HoldReferences = true
            };
            var eventAggregator = new EventAggregator(config);

            AddHandlerInScopeThatWillRemoveInstanceWhenGarbageCollected(eventAggregator, true);
            GC.Collect();

            eventAggregator.SendMessage <SomeMessage>();

            eventAggregator.GetListeners().Count().ShouldEqual(1);
        }
		public void When_instructed_to_hold_a_strong_reference_and_the_listener_is_attempted__been_garbage_collected_and_an_event_is_published_the_zombied_handler_should_be_removed()
		{
			var config = new EventAggregator.Config
			{
				HoldReferences = true
			};
			var eventAggregator = new EventAggregator(config);

			AddHandlerInScopeThatWillRemoveInstanceWhenGarbageCollected(eventAggregator, true);
			GC.Collect();

			eventAggregator.SendMessage<SomeMessage>();

			eventAggregator.GetListeners().Count().ShouldEqual(1);
		}
Beispiel #6
0
        public static void Run()
        {
            var config = new EventAggregator.Config
            {
                // Make the marshaler run in the background thread
                DefaultThreadMarshaler = action => Task.Factory.StartNew(action),
            };

            var eventAggregationManager = new EventAggregator(config);

            eventAggregationManager.AddListener(new LongRunningHandler());

            "EventAggregator setup complete".Log();

            eventAggregationManager.SendMessage <SampleEventMessage>();
        }
        protected override void Load(ContainerBuilder builder)
        {
            EventAggregator.Config config = new EventAggregator.Config
            {
                OnMessageNotPublishedBecauseZeroListeners = delegate(object o)
                {
                    string message = string.Format("{0} was not handled", o);
                    MessageBox.Show(message, @"EventAggregator - Not Handled");
                }
                ,
                SupportMessageInheritance = true
            };
            EventAggregator eventAggregator = new EventAggregator(config);

            builder.RegisterInstance(eventAggregator).As<IEventAggregator>().ExternallyOwned();
            base.Load(builder);
        }
        protected override void Load(ContainerBuilder builder)
        {
            EventAggregator.Config config = new EventAggregator.Config
            {
                OnMessageNotPublishedBecauseZeroListeners = delegate(object o)
                {
                    string message = string.Format("{0} was not handled", o);
                    MessageBox.Show(message, @"EventAggregator - Not Handled");
                }
                ,
                SupportMessageInheritance = true
            };
            EventAggregator eventAggregator = new EventAggregator(config);

            builder.RegisterInstance(eventAggregator).As <IEventAggregator>().ExternallyOwned();
            base.Load(builder);
        }
		public void When_no_subscribers_can_detect_nothing_was_published()
		{
			var config = new EventAggregator.Config();
			bool warningWasCalled = false;
			config.OnMessageNotPublishedBecauseZeroListeners = msg => { warningWasCalled = true; };
			var eventAggregator = new EventAggregator(config);

			eventAggregator.SendMessage<SomeMessage>();

			warningWasCalled.ShouldBeTrue();
		}