Beispiel #1
0
        private void Remove([NotNull] ScenarioBaseModel scenario)
        {
            foreach (var set in scenario.ScenarioSetRefs.References)
            {
                var index = set.Members.FindIndex(m => m.Model.Id == scenario.Id);
                if (index >= 0)
                {
                    set.Members.RemoveAt(index);
                }
            }

            foreach (var suite in scenario.SuiteRefs.References)
            {
                var index = suite.Statements.FindIndex(s => s.Id == scenario.Id);
                if (index >= 0)
                {
                    suite.Statements.RemoveAt(index);
                }
            }

            if (scenario is ScenarioModel scenarioModel)
            {
                scenarioModel.Deployment.Model.ScenarioRefs.Remove(scenarioModel);
            }

            RemoveFromModule(scenario.Module, scenario);
        }
Beispiel #2
0
 public static void ReplaceDuplicateScenarios([NotNull] ScenarioBaseModel replacement, [ItemNotNull, NotNull] IEnumerable <ScenarioBaseModel> duplicates)
 {
     foreach (var dup in duplicates)
     {
         ReplaceDuplicateScenario(replacement, dup);
     }
 }
Beispiel #3
0
        private static void ReplaceInSuite(
            [NotNull] SuiteDefModel suite,
            [NotNull] ScenarioBaseModel replaced,
            [NotNull] ScenarioBaseModel replacement)
        {
            var oldIndex = suite.Statements.FindIndex(ind => ind.Id == replaced.Id);

            if (oldIndex >= 0)
            {
                Logger.Info($"replacing {replaced.Name} in suite {suite.Name} to {replacement.Name}");
                suite.Statements[oldIndex] = replacement;
            }
        }
Beispiel #4
0
        private static void RemoveFromModule(
            [NotNull] ModuleModel module,
            [NotNull] ScenarioBaseModel replaced)
        {
            // we need to remove scenario from module, because it is already defined in another module
            var oldIndex = module.Items.FindIndex(ind => ind.Id == replaced.Id);

            if (oldIndex >= 0)
            {
                Logger.Info($"removing {replaced.Name} in module {module.Path}");
                module.Items.RemoveAt(oldIndex);
            }
        }
Beispiel #5
0
        private void UpdateReference([NotNull] ScenarioBaseModel scenario)
        {
            foreach (var set in scenario.ScenarioSetRefs.References)
            {
                set.Members.Add(new ReferenceModel <ScenarioBaseModel>(scenario));
            }

            foreach (var suite in scenario.SuiteRefs.References)
            {
                suite.Statements.Add(scenario);
            }

            scenario.Module.Items.Add(scenario);
        }
Beispiel #6
0
        private static void ReplaceDuplicateScenario(
            [NotNull] ScenarioBaseModel replacement,
            [NotNull] ScenarioBaseModel replaced)
        {
            foreach (var set in replaced.ScenarioSetRefs.References)
            {
                ReplaceScenarioInSet(set, replaced, replacement);
            }

            foreach (var suite in replaced.SuiteRefs.References)
            {
                ReplaceInSuite(suite, replaced, replacement);
            }

            RemoveFromModule(replaced.Module, replaced);
        }
Beispiel #7
0
        private static void ReplaceScenarioInSet(
            [NotNull] ScenarioSetModel set,
            [NotNull] ScenarioBaseModel replaced,
            [NotNull] ScenarioBaseModel replacement)
        {
            var oldIndex = set.Members.FindIndex(ind => ind.Model.Id == replaced.Id);

            if (oldIndex >= 0)
            {
                var replacementIsPresent = set.Members.FindIndex(ind => ind.Model.Id == replacement.Id) >= 0;
                if (replacementIsPresent)
                {
                    Logger.Info($"removing {replaced.Name} from set {set.Name} because original already present");
                    set.Members.RemoveAt(oldIndex);
                }
                else
                {
                    Logger.Info($"replacing {replaced.Name} in set {set.Name} to {replacement.Name}");
                    set.Members[oldIndex] = new ReferenceModel <ScenarioBaseModel>(replacement);
                }
            }
        }