Exemple #1
0
        public void Combine_ShouldHasRightOrder()
        {
            // normal:  B->A
            var normalA = new MiCakeModuleDescriptor(typeof(DepencyModuleA), (MiCakeModule)Activator.CreateInstance(typeof(DepencyModuleA)));
            var normalB = new MiCakeModuleDescriptor(typeof(DepencyModuleB), (MiCakeModule)Activator.CreateInstance(typeof(DepencyModuleB)));

            normalB.AddDependency(normalA);

            IMiCakeModuleCollection normalModules = new MiCakeModuleCollection()
            {
                normalA,
                normalB
            };

            // feature: B(before) -> A(after)
            var featureA = new MiCakeModuleDescriptor(typeof(FeatureModuleA), (MiCakeModule)Activator.CreateInstance(typeof(FeatureModuleA)));
            var featureB = new MiCakeModuleDescriptor(typeof(FeatureModuleBDepencyModuleA), (MiCakeModule)Activator.CreateInstance(typeof(FeatureModuleBDepencyModuleA)));

            featureB.AddDependency(featureA);

            IMiCakeModuleCollection featureModules = new MiCakeModuleCollection()
            {
                featureA,
                featureB
            };

            // expected: normalA <- normalB <- featureA <- featureB
            // Although the order of B shows the flag to start at the beginning, the A it depends on starts later, so it must start after A
            var modules = MiCakeModuleHelper.CombineNormalAndFeatureModules(normalModules, featureModules);

            var first = modules[0];

            Assert.Equal(typeof(DepencyModuleA), first.ModuleType);

            var last = modules[^ 1];
        public IMiCakeModuleCollection BuildCurrentModule()
        {
            IMiCakeModuleCollection miCakeModules = new MiCakeModuleCollection();

            var moduleType = typeof(CurrentMiCakeModule);

            miCakeModules.Add(new MiCakeModuleDescriptor(moduleType, (MiCakeModule)Activator.CreateInstance(moduleType)));

            return(miCakeModules);
        }
 public MiCakeModuleContext()
 {
     AllModules     = new MiCakeModuleCollection();
     MiCakeModules  = new MiCakeModuleCollection();
     FeatureModules = new MiCakeModuleCollection();
 }