/*============================================================================*/
		/* Public Functions                                                           */
		/*============================================================================*/

		public void Execute(SupportEvent evt)
		{
			callback(evt);
		}
		public SupportEvent (SupportEvent.Type type)
		{
			_type = type;
		}
		[Test] //TODO: Make this test pass
		public void event_is_injected_into_guard()
		{
			IEvent injectedEvent = null;
			injector.Map(typeof(Action<EventInjectedCallbackGuard>), "ApproveCallback").ToValue((Action<EventInjectedCallbackGuard>)delegate(EventInjectedCallbackGuard guard)
			{
				injectedEvent = guard.evt;
			});
			subject
				.Map(SupportEvent.Type.TYPE1, typeof(IEvent))
				.ToCommand<NullCommand>()
				.WithGuards<EventInjectedCallbackGuard>();
			SupportEvent  evt = new SupportEvent(SupportEvent.Type.TYPE1);
			dispatcher.Dispatch(evt);
			Assert.That(injectedEvent, Is.EqualTo(evt));
		}
		public void unspecified_typed_event_is_injected_into_command_as_typed_event()
		{
			SupportEvent injectedEvent = null;
			injector.Map(typeof(Action<SupportEventTriggeredSelfReportingCallbackCommand>), "ExecuteCallback").ToValue((Action<SupportEventTriggeredSelfReportingCallbackCommand>)delegate(SupportEventTriggeredSelfReportingCallbackCommand command)
			{
				injectedEvent = command.typedEvent;
			});
			subject.Map(SupportEvent.Type.TYPE1)
				.ToCommand<SupportEventTriggeredSelfReportingCallbackCommand>();
			SupportEvent supportEvent = new SupportEvent(SupportEvent.Type.TYPE1);
			dispatcher.Dispatch(supportEvent);
			Assert.That(injectedEvent, Is.EqualTo(supportEvent));
		}
		public void event_is_passed_to_execute_method()
		{
			SupportEvent actualEvent = null;
			injector.Map(typeof(Action<SupportEvent>), "ExecuteCallback").ToValue((Action<SupportEvent>)delegate(SupportEvent evt)
			{
				actualEvent = evt;
			});
			subject.Map(SupportEvent.Type.TYPE1, typeof(SupportEvent))
				.ToCommand<EventParametersCommand>();
			SupportEvent supportEvent = new SupportEvent(SupportEvent.Type.TYPE1);
			dispatcher.Dispatch(supportEvent);
			Assert.That(actualEvent, Is.EqualTo(supportEvent));
		}
		[Test] //TODO: Make this unit test work
		public void event_is_injected_into_command()
		{
			IEvent injectedEvent = null;
			injector.Map(typeof(Action<EventInjectedCallbackCommand>), "ExecuteCallback").ToValue((Action<EventInjectedCallbackCommand>)delegate(EventInjectedCallbackCommand command)
			{
				injectedEvent = command.evt;
			});
			subject.Map(SupportEvent.Type.TYPE1, typeof(IEvent))
				.ToCommand<EventInjectedCallbackCommand>();
			SupportEvent evt = new SupportEvent(SupportEvent.Type.TYPE1);
			dispatcher.Dispatch(evt);
			Assert.That(injectedEvent, Is.EqualTo(evt));
		}
        /*============================================================================*/
        /* Public Functions                                                           */
        /*============================================================================*/

        public void Execute(SupportEvent evt)
        {
            callback(evt);
        }