/// <summary>
        /// Creates an activity test harness
        /// </summary>
        /// <typeparam name="TActivity"></typeparam>
        /// <typeparam name="TArguments"></typeparam>
        /// <typeparam name="TLog"></typeparam>
        /// <param name="harness"></param>
        /// <returns></returns>
        public static ActivityTestHarness <TActivity, TArguments, TLog> Activity <TActivity, TArguments, TLog>(this BusTestHarness harness)
            where TActivity : class, Activity <TArguments, TLog>, new()
            where TArguments : class
            where TLog : class
        {
            var activityFactory = new FactoryMethodActivityFactory <TActivity, TArguments, TLog>(x => new TActivity(), x => new TActivity());

            return(new ActivityTestHarness <TActivity, TArguments, TLog>(harness, activityFactory, x =>
            {
            }, x =>
            {
            }));
        }
        /// <summary>
        /// Creates an activity test harness
        /// </summary>
        /// <typeparam name="TActivity"></typeparam>
        /// <typeparam name="TArguments"></typeparam>
        /// <typeparam name="TLog"></typeparam>
        /// <param name="harness"></param>
        /// <param name="executeFactoryMethod"></param>
        /// <param name="compensateFactoryMethod"></param>
        /// <returns></returns>
        public static ActivityTestHarness <TActivity, TArguments, TLog> Activity <TActivity, TArguments, TLog>(this BusTestHarness harness,
                                                                                                               Func <TArguments, TActivity> executeFactoryMethod, Func <TLog, TActivity> compensateFactoryMethod)
            where TActivity : class, Activity <TArguments, TLog>
            where TArguments : class
            where TLog : class
        {
            var activityFactory = new FactoryMethodActivityFactory <TActivity, TArguments, TLog>(executeFactoryMethod, compensateFactoryMethod);

            return(new ActivityTestHarness <TActivity, TArguments, TLog>(harness, activityFactory, x =>
            {
            }, x =>
            {
            }));
        }