public void Test_Initialize_StrategiesLoaded()
        {
            StrategyInitializer initializer = new StrategyInitializer();

            IStrategy    strategy = new MockActionStrategy();
            StrategyInfo info     = StrategyInfo.ExtractInfo(strategy.GetType())[0];

            StrategyInfo[] strategies = new StrategyInfo[] { info };

            StrategySaver saver = new StrategySaver();

            saver.FileNamer = initializer.FileNamer;

            saver.SaveToFile(new StrategyInfo[] { info });

            initializer.Initialize();

            Assert.IsTrue(StrategyState.IsInitialized, "Strategies weren't initialized or initialization wasn't detected.");
            Assert.Greater(StrategyState.Strategies.Count, 0, "Invalid number of strategies initialized.");


            StrategyInfo foundInfo = StrategyState.Strategies[info.Action, info.TypeName];

            Assert.IsNotNull(foundInfo, "The module info wasn't found.");
        }
        public virtual void InitializeMockBusiness()
        {
            using (LogGroup logGroup = LogGroup.StartDebug("Initializing mock business tier."))
            {
                if (EnableBusinessState)
                {
                    string businessAssemblyPath = Assembly.Load("SoftwareMonkeys.SiteStarter.Business").Location;
                    string businessTestsAssemblyPath = Assembly.Load("SoftwareMonkeys.SiteStarter.Business.Tests").Location;

                    string[] assemblyPaths = new String[]
                    {
                        businessAssemblyPath,
                        businessTestsAssemblyPath
                    };

                    // Strategies

                    StrategyInitializer initializer = new StrategyInitializer();

                    // Set the specific assemblies used during testing as it can't do it automatically in the mock environment
                    initializer.Scanner.AssemblyPaths = assemblyPaths;

                    initializer.Initialize(true);

                    // Reactions

                    ReactionInitializer reactionsInitializer = new ReactionInitializer();

                    // Set the specific assemblies used during testing as it can't do it automatically in the mock environment
                    reactionsInitializer.Scanner.AssemblyPaths = assemblyPaths;

                    reactionsInitializer.Initialize(true);
                }
            }
        }
        public void Test_Initialize_StrategiesScanned()
        {
            StrategyInitializer initializer = new StrategyInitializer();

            string[] assemblyPaths = new string[] {
                Assembly.Load("SoftwareMonkeys.SiteStarter.Business").Location
            };

            initializer.Scanner.AssemblyPaths = assemblyPaths;

            initializer.Initialize();

            Assert.IsTrue(StrategyState.IsInitialized, "Strategies weren't initialized or initialization wasn't detected.");
            Assert.Greater(StrategyState.Strategies.Count, 0, "Invalid number of strategies initialized.");
        }
        public void Test_Initialize_StrategiesProvided()
        {
            IStrategy strategy = new MockRetrieveTestUserStrategy();
            StrategyInfo info = StrategyInfo.ExtractInfo(strategy.GetType())[0];

            StrategyInfo[] strategies = new StrategyInfo[]{info};

            StrategyInitializer initializer = new StrategyInitializer();

            initializer.Initialize(strategies);

            Assert.IsTrue(StrategyState.IsInitialized, "Strategies weren't initialized or initialization wasn't detected.");
            Assert.Greater(StrategyState.Strategies.Count, 0, "Invalid number of strategies initialized.");

            StrategyInfo foundInfo = StrategyState.Strategies[info.Action, info.TypeName];

            Assert.IsNotNull(foundInfo, "The module info wasn't found.");
        }
        public virtual void InitializeMockBusiness()
        {
            using (LogGroup logGroup = LogGroup.StartDebug("Initializing mock business tier."))
            {
                if (EnableBusinessState)
                {
                    string businessAssemblyPath      = Assembly.Load("SoftwareMonkeys.SiteStarter.Business").Location;
                    string businessTestsAssemblyPath = Assembly.Load("SoftwareMonkeys.SiteStarter.Business.Tests").Location;

                    string[] assemblyPaths = new String[]
                    {
                        businessAssemblyPath,
                        businessTestsAssemblyPath
                    };

                    // Strategies

                    StrategyInitializer initializer = new StrategyInitializer();

                    // Set the specific assemblies used during testing as it can't do it automatically in the mock environment
                    initializer.Scanner.AssemblyPaths = assemblyPaths;

                    initializer.Initialize(true);


                    // Reactions

                    ReactionInitializer reactionsInitializer = new ReactionInitializer();

                    // Set the specific assemblies used during testing as it can't do it automatically in the mock environment
                    reactionsInitializer.Scanner.AssemblyPaths = assemblyPaths;

                    reactionsInitializer.Initialize(true);
                }
            }
        }
        public void Test_Initialize_StrategiesScanned()
        {
            StrategyInitializer initializer = new StrategyInitializer();

            string[] assemblyPaths = new string[] {
                Assembly.Load("SoftwareMonkeys.SiteStarter.Business").Location
            };

            initializer.Scanner.AssemblyPaths = assemblyPaths;

            initializer.Initialize();

            Assert.IsTrue(StrategyState.IsInitialized, "Strategies weren't initialized or initialization wasn't detected.");
            Assert.Greater(StrategyState.Strategies.Count, 0, "Invalid number of strategies initialized.");
        }