public static void Send <TMessage>(this TestInstanceConfigurator <LocalRemoteTestScenario> configurator, TMessage message)
            where TMessage : class
        {
            var actionConfigurator = new SendTestActionConfigurator <LocalRemoteTestScenario, TMessage>(x => x.RemoteBus.Endpoint, message);

            configurator.AddActionConfigurator(actionConfigurator);
        }
        public static void Publish <TMessage>(this TestInstanceConfigurator <BusTestScenario> configurator, TMessage message)
            where TMessage : class
        {
            var actionConfigurator = new PublishTestActionConfigurator <BusTestScenario, TMessage>(x => x.Bus, message);

            configurator.AddActionConfigurator(actionConfigurator);
        }
        public static void Send <TMessage>(this TestInstanceConfigurator <LocalRemoteTestScenario> configurator, TMessage message,
                                           Action <ISendContext <TMessage> > callback)
            where TMessage : class
        {
            var actionConfigurator = new SendTestActionConfigurator <LocalRemoteTestScenario, TMessage>(x => x.RemoteBus.Endpoint, message,
                                                                                                        (scenario, context) => callback(context));

            configurator.AddActionConfigurator(actionConfigurator);
        }
        public static void Send <TMessage>(this TestInstanceConfigurator <BusTestScenario> configurator, TMessage message,
                                           Action <BusTestScenario, ISendContext <TMessage> > callback)
            where TMessage : class
        {
            var actionConfigurator = new SendTestActionConfigurator <BusTestScenario, TMessage>(x => x.Bus.Endpoint, message,
                                                                                                callback);

            configurator.AddActionConfigurator(actionConfigurator);
        }
        public static void Publish <TMessage>(this TestInstanceConfigurator <BusTestScenario> configurator, TMessage message,
                                              Action <IPublishContext <TMessage> > callback)
            where TMessage : class
        {
            var actionConfigurator = new PublishTestActionConfigurator <BusTestScenario, TMessage>(x => x.Bus, message,
                                                                                                   (scenario, context) => callback(context));

            configurator.AddActionConfigurator(actionConfigurator);
        }
        public static void Publish <TMessage>(this TestInstanceConfigurator <LocalRemoteTestScenario> configurator,
                                              TMessage message,
                                              Action <LocalRemoteTestScenario, IPublishContext <TMessage> > callback)
            where TMessage : class
        {
            var actionConfigurator = new PublishTestActionConfigurator <LocalRemoteTestScenario, TMessage>(x => x.LocalBus,
                                                                                                           message,
                                                                                                           callback);

            configurator.AddActionConfigurator(actionConfigurator);
        }