Example #1
0
        protected override void OnEnable()
        {
            var xml        = Resources.Load(unityEngineClassXmlPath) as TextAsset;
            var serializer = new XmlSerializer(typeof(TypeDataCollection));

            using (var reader = new StringReader(xml.text)) {
                types_ = serializer.Deserialize(reader) as TypeDataCollection;
            }

            base.OnEnable();
        }
Example #2
0
 private bool VerifyVariableInSequenceStep(ISequenceStep sequenceStep, IVariable variable, TypeDataCollection typeDatas)
 {
     if ((null != sequenceStep.LoopCounter && variable.Name.Equals(sequenceStep.LoopCounter.CounterVariable)) ||
         (null != sequenceStep.RetryCounter) && variable.Name.Equals(sequenceStep.RetryCounter.CounterVariable))
     {
         Type      varType  = typeof(int);
         ITypeData typeData = typeDatas.GetTypeData(varType.Name);
         if (null == typeData)
         {
             variable.Type = _comInterfaceManager.GetTypeByName(varType.Name, varType.Namespace);
         }
         return(true);
     }
     if (null != sequenceStep.Function)
     {
         IFunctionData functionData = sequenceStep.Function;
         if (variable.Name.Equals(functionData.Instance))
         {
             variable.Type = functionData.ClassType;
             return(true);
         }
         if (variable.Name.Equals(functionData.Return))
         {
             variable.Type = functionData.ReturnType.Type;
             return(true);
         }
         IParameterData parameter = functionData.Parameters.FirstOrDefault
                                        (item => item.ParameterType == ParameterType.Variable && variable.Name.Equals(item.Value));
         if (null != parameter)
         {
             variable.Type = functionData.ParameterType[parameter.Index].Type;
             return(true);
         }
     }
     if (sequenceStep.HasSubSteps)
     {
         foreach (ISequenceStep subStep in sequenceStep.SubSteps)
         {
             bool verified = VerifyVariableInSequenceStep(subStep, variable, typeDatas);
             if (verified)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Example #3
0
 private bool VerifyVariableInSequence(ISequence sequence, IVariable variable, TypeDataCollection typeDatas)
 {
     if (sequence.Variables.Any(var => var.Name.Equals(variable.Name)))
     {
         return(false);
     }
     foreach (ISequenceStep sequenceStep in sequence.Steps)
     {
         bool verified = VerifyVariableInSequenceStep(sequenceStep, variable, typeDatas);
         if (verified)
         {
             return(true);
         }
     }
     return(false);
 }
Example #4
0
 /// <summary>
 /// 初始化变量和参数的类型数据
 /// </summary>
 public bool VerifyVariableType(ISequenceFlowContainer flowContainer, IVariable variable, TypeDataCollection typeDatas)
 {
     if (flowContainer is ITestProject)
     {
         ITestProject testProject = flowContainer as ITestProject;
         return(VerifyVariableInSequence(testProject.SetUp, variable, typeDatas) ||
                VerifyVariableInSequence(testProject.TearDown, variable, typeDatas));
     }
     else if (flowContainer is ISequenceGroup)
     {
         ISequenceGroup sequenceGroup = flowContainer as ISequenceGroup;
         if (VerifyVariableInSequence(sequenceGroup.SetUp, variable, typeDatas) ||
             VerifyVariableInSequence(sequenceGroup.TearDown, variable, typeDatas))
         {
             return(true);
         }
         return(sequenceGroup.Sequences.Any(sequence => VerifyVariableInSequence(sequence, variable, typeDatas)));
     }
     else if (flowContainer is ISequence)
     {
         return(VerifyVariableInSequence(flowContainer as ISequence, variable, typeDatas));
     }
     else if (flowContainer is ISequenceStep)
     {
         return(VerifyVariableInSequenceStep(flowContainer as ISequenceStep, variable, typeDatas));
     }
     return(false);
 }