コード例 #1
0
ファイル: SequenceGroup.cs プロジェクト: spartajet/Testflow
        ISequenceFlowContainer ICloneableClass <ISequenceFlowContainer> .Clone()
        {
            AssemblyInfoCollection assemblies = new AssemblyInfoCollection();

            foreach (IAssemblyInfo assemblyInfo in this.Assemblies)
            {
                assemblies.Add(assemblyInfo);
            }

            TypeDataCollection typeDatas = new TypeDataCollection();

            foreach (ITypeData typeData in TypeDatas)
            {
                typeDatas.Add(typeData);
            }

            ArgumentCollection arguments = new ArgumentCollection();

            ModuleUtils.CloneCollection(this.Arguments, arguments);

            VariableCollection variables = new VariableCollection();

            ModuleUtils.CloneFlowCollection(this.Variables, variables);

            // SequenceGroupParameter只在序列化时使用
            // Parameters只有在序列化时才会生成,在加载完成后会被删除
            ISequenceGroupParameter parameters = (null == Parameters) ?
                                                 null : this.Parameters.Clone() as ISequenceGroupParameter;

            SequenceCollection sequenceCollection = new SequenceCollection();

            ModuleUtils.CloneFlowCollection(this.Sequences, sequenceCollection);

            SequenceGroup sequenceGroup = new SequenceGroup()
            {
                Name           = this.Name + Constants.CopyPostfix,
                Description    = this.Description,
                Parent         = this.Parent,
                Info           = this.Info.Clone(),
                Assemblies     = assemblies,
                TypeDatas      = typeDatas,
                Arguments      = arguments,
                Variables      = variables,
                Parameters     = parameters,
                ExecutionModel = this.ExecutionModel,
                SetUp          = this.SetUp.Clone() as ISequence,
                Sequences      = sequenceCollection,
                TearDown       = this.TearDown.Clone() as ISequence
            };

            sequenceGroup.SetUp.Index    = CommonConst.SetupIndex;
            sequenceGroup.TearDown.Index = CommonConst.TeardownIndex;
            sequenceGroup.RefreshSignature();
            return(sequenceGroup);
        }
コード例 #2
0
        private static void SetParameterToSequenceData(ISequenceGroup sequenecGroup, ISequenceGroupParameter parameter)
        {
            for (int i = 0; i < sequenecGroup.Variables.Count; i++)
            {
                IVariable variable = sequenecGroup.Variables[i];
                if (!variable.Name.Equals(parameter.VariableValues[i].Value))
                {
                    ILogService logService = TestflowRunner.GetInstance().LogService;
                    logService.Print(LogLevel.Warn, CommonConst.PlatformLogSession, 0,
                                     $"Variable{variable.Name} {sequenecGroup.Name} value in parameter data is invalid.");
                    I18N i18N = I18N.GetInstance(Constants.I18nName);
                    throw new TestflowDataException(ModuleErrorCode.UnmatchedParameter, i18N.GetStr("UnmatchedData"));
                }
                variable.Value = parameter.VariableValues[i].Value;
            }

            SetParameterToSequenceData(sequenecGroup.SetUp, parameter.SetUpParameters);
            for (int i = 0; i < sequenecGroup.Sequences.Count; i++)
            {
                SetParameterToSequenceData(sequenecGroup.Sequences[i], parameter.SequenceParameters[i]);
            }
            SetParameterToSequenceData(sequenecGroup.TearDown, parameter.TearDownParameters);
        }
コード例 #3
0
 private static void FillParameterDataToSequenceData(ISequenceGroup sequenceGroup, ISequenceGroupParameter parameter)
 {
     for (int i = 0; i < sequenceGroup.Variables.Count; i++)
     {
         parameter.VariableValues[i].Value = sequenceGroup.Variables[i].Value;
     }
     FillParameterDataToSequenceData(sequenceGroup.SetUp, parameter.SetUpParameters);
     for (int i = 0; i < sequenceGroup.Sequences.Count; i++)
     {
         FillParameterDataToSequenceData(sequenceGroup.Sequences[i], parameter.SequenceParameters[i]);
     }
     FillParameterDataToSequenceData(sequenceGroup.TearDown, parameter.TearDownParameters);
 }