Example #1
0
        ISequenceFlowContainer ICloneableClass <ISequenceFlowContainer> .Clone()
        {
            SequenceStepCollection subStepCollection = null;

            if (null != this.SubSteps)
            {
                subStepCollection = new SequenceStepCollection();
                ModuleUtils.CloneFlowCollection(SubSteps, subStepCollection);
            }

            SequenceStep sequenceStep = new SequenceStep()
            {
                Name          = this.Name + Constants.CopyPostfix,
                Description   = this.Description,
                Parent        = null,
                SubSteps      = subStepCollection,
                Index         = Constants.UnverifiedIndex,
                Function      = this.Function?.Clone(),
                BreakIfFailed = this.BreakIfFailed,
                Behavior      = this.Behavior,
                LoopCounter   = this.LoopCounter?.Clone(),
                RetryCounter  = this.RetryCounter?.Clone(),
            };

            return(sequenceStep);
        }
Example #2
0
        ISequenceFlowContainer ICloneableClass <ISequenceFlowContainer> .Clone()
        {
            SequenceStepCollection subStepCollection = null;

            if (null != this.SubSteps)
            {
                subStepCollection = new SequenceStepCollection();
                ModuleUtils.CloneFlowCollection(SubSteps, subStepCollection);
            }

            SequenceStep sequenceStep = new SequenceStep()
            {
                Name               = this.Name + Constants.CopyPostfix,
                Description        = this.Description,
                Parent             = null,
                SubSteps           = subStepCollection,
                Index              = Constants.UnverifiedIndex,
                Function           = this.Function?.Clone(),
                Behavior           = this.Behavior,
                RecordStatus       = this.RecordStatus,
                StepType           = this.StepType,
                AssertFailedAction = this.AssertFailedAction,
                InvokeErrorAction  = this.InvokeErrorAction,
                LoopCounter        = this.LoopCounter?.Clone(),
                RetryCounter       = this.RetryCounter?.Clone(),
                Tag = this.Tag
            };

            return(sequenceStep);
        }
Example #3
0
        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);
        }
Example #4
0
        ISequenceFlowContainer ICloneableClass <ISequenceFlowContainer> .Clone()
        {
            VariableCollection variables = new VariableCollection();

            ModuleUtils.CloneFlowCollection(this.Variables, variables);

            SequenceStepCollection stepCollection = new SequenceStepCollection();

            ModuleUtils.CloneFlowCollection(this.Steps, stepCollection);

            Sequence sequence = new Sequence()
            {
                Name        = this.Name + Constants.CopyPostfix,
                Description = this.Description,
                Parent      = null,
                Index       = Constants.UnverifiedIndex,
                Variables   = variables,
                Steps       = stepCollection,
                Behavior    = this.Behavior
            };

            return(sequence);
        }