コード例 #1
0
 public ParameterSave(PickOutFunction yourFunction, string yourName, string yourFindVaule, string yourAdditon)
 {
     parameterFunction        = yourFunction;
     parameterFindVaule       = yourFindVaule;
     parameterName            = yourName;
     parameterAdditionalVaule = yourAdditon;
 }
コード例 #2
0
 public void addParameterSave(string yourName, string yourFindVaule, PickOutFunction yourFunction)
 {
     if (myParameterSaves == null)
     {
         myParameterSaves = new List <ParameterSave>();
     }
     myParameterSaves.Add(new ParameterSave(yourFunction, yourName, yourFindVaule));
 }
コード例 #3
0
 public ParameterSave(PickOutFunction yourFunction, string yourName, string yourFindVaule)
 {
     parameterFunction  = yourFunction;
     parameterFindVaule = yourFindVaule;
     parameterName      = yourName;
 }
コード例 #4
0
        /// <summary>
        /// i will get a myRunCaseData that will give caseActionActuator from XmlNode
        /// </summary>
        /// <param name="yourRunNode">your XmlNode</param>
        /// <returns>myRunCaseData you want</returns>
        public static MyRunCaseData <ICaseExecutionContent> GetCaseRunData(XmlNode sourceNode)
        {
            MyRunCaseData <ICaseExecutionContent> myCaseData = new MyRunCaseData <ICaseExecutionContent>();
            CaseProtocol contentProtocol = CaseProtocol.unknownProtocol;

            if (sourceNode == null)
            {
                myCaseData.AddErrorMessage("Error :source data is null");
            }
            else
            {
                if (sourceNode.Name == "Case")
                {
                    #region Basic information
                    if (sourceNode.Attributes["id"] == null)
                    {
                        myCaseData.AddErrorMessage("Error :not find the ID");
                    }
                    else
                    {
                        try
                        {
                            myCaseData.id = int.Parse(sourceNode.Attributes["id"].Value);
                        }
                        catch (Exception)
                        {
                            myCaseData.AddErrorMessage("Error :find the error ID");
                        }
                    }
                    myCaseData.name = CaseTool.GetXmlAttributeVauleEx(sourceNode, "remark", "NULL");
                    #endregion

                    #region Content
                    //XmlNode tempCaseContent = sourceNode.SelectSingleNode("Content"); //sourceNode["Content"] 具有同样的功能
                    XmlNode tempCaseContent = sourceNode["Content"];
                    if (tempCaseContent == null)
                    {
                        myCaseData.AddErrorMessage("Error :can not find Content");
                    }
                    else
                    {
                        if (tempCaseContent.Attributes["protocol"] != null && tempCaseContent.Attributes["actuator"] != null)
                        {
                            try
                            {
                                contentProtocol            = (CaseProtocol)Enum.Parse(typeof(CaseProtocol), tempCaseContent.Attributes["protocol"].Value);
                                myCaseData.contentProtocol = contentProtocol;
                            }
                            catch
                            {
                                myCaseData.AddErrorMessage("Error :error protocol in Content");
                            }
                            switch (contentProtocol)
                            {
                            case CaseProtocol.console:
                                myCaseData.testContent = CaseProtocolExecutionForConsole.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.activeMQ:
                                myCaseData.testContent = CaseProtocolExecutionForActiveMQ.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.mysql:
                                myCaseData.testContent = CaseProtocolExecutionForMysql.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.ssh:
                                myCaseData.testContent = CaseProtocolExecutionForSsh.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.vanelife_http:
                                myCaseData.testContent = CaseProtocolExecutionForVanelife_http.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.http:
                                myCaseData.testContent = CaseProtocolExecutionForHttp.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.tcp:
                                myCaseData.testContent = CaseProtocolExecutionForTcp.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.telnet:
                                myCaseData.testContent = CaseProtocolExecutionForTelnet.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.com:
                                myCaseData.testContent = CaseProtocolExecutionForCom.GetRunContent(tempCaseContent);
                                break;

                            case CaseProtocol.vanelife_comm:
                                myCaseData.AddErrorMessage("Error :this protocol not supported for now");
                                break;

                            case CaseProtocol.vanelife_tcp:
                                myCaseData.AddErrorMessage("Error :this protocol not supported for now");
                                break;

                            case CaseProtocol.vanelife_telnet:
                                myCaseData.AddErrorMessage("Error :this protocol not supported for now");
                                break;

                            case CaseProtocol.defaultProtocol:
                                myCaseData.AddErrorMessage("Error :this protocol not supported for now");
                                break;

                            default:
                                myCaseData.AddErrorMessage("Error :this protocol not supported for now");
                                break;
                            }
                            if (myCaseData.testContent != null)
                            {
                                if (myCaseData.testContent.MyErrorMessage != null)  //将testContent错误移入MyRunCaseData,执行case时会检查MyRunCaseData中的错误
                                {
                                    myCaseData.AddErrorMessage("Error :the Content not analyticaled Because:" + myCaseData.testContent.MyErrorMessage);
                                    //return myCaseData;
                                }
                            }
                        }
                        else
                        {
                            myCaseData.AddErrorMessage("Error :can not find protocol or actuator in Content");
                        }
                    }
                    #endregion

                    #region Expect
                    XmlNode tempCaseExpect = sourceNode["Expect"];
                    if (tempCaseExpect == null)
                    {
                        myCaseData.caseExpectInfo.myExpectType = CaseExpectType.judge_default;
                    }
                    else
                    {
                        if (tempCaseExpect.Attributes["method"] != null)
                        {
                            try
                            {
                                myCaseData.caseExpectInfo.myExpectType = (CaseExpectType)Enum.Parse(typeof(CaseExpectType), "judge_" + tempCaseExpect.Attributes["method"].Value);
                            }
                            catch
                            {
                                myCaseData.AddErrorMessage("Error :find error CaseExpectType in Expect");
                                myCaseData.caseExpectInfo.myExpectType = CaseExpectType.judge_default;
                            }
                        }
                        else
                        {
                            myCaseData.caseExpectInfo.myExpectType = CaseExpectType.judge_is;
                        }
                        myCaseData.caseExpectInfo.myExpectContent = CaseTool.GetXmlParametContent(tempCaseExpect);
                    }
                    #endregion

                    #region Action
                    XmlNode tempCaseAction = sourceNode["Action"];
                    if (tempCaseAction != null)
                    {
                        if (tempCaseAction.HasChildNodes)
                        {
                            foreach (XmlNode tempNode in tempCaseAction.ChildNodes)
                            {
                                CaseResult tempResult = CaseResult.Unknow;
                                CaseAction tempAction = CaseAction.action_unknow;
                                try
                                {
                                    tempResult = (CaseResult)Enum.Parse(typeof(CaseResult), tempNode.Name);
                                }
                                catch
                                {
                                    myCaseData.AddErrorMessage(string.Format("Error :find error CaseAction in Action with [{0}] in [{1}]", tempNode.InnerXml, tempNode.Name));
                                    continue;
                                }
                                try
                                {
                                    tempAction = (CaseAction)Enum.Parse(typeof(CaseAction), "action_" + CaseTool.GetXmlAttributeVauleWithEmpty(tempNode, "action"));
                                }
                                catch
                                {
                                    myCaseData.AddErrorMessage(string.Format("Error :find error CaseAction in Action with [{0}] in [{1}]", tempNode.InnerXml, CaseTool.GetXmlAttributeVauleWithEmpty(tempNode, "action")));
                                    continue;
                                }
                                if (tempNode.InnerText != "")
                                {
                                    myCaseData.AddCaseAction(tempResult, new CaseActionDescription(tempAction, tempNode.InnerText));
                                }
                                else
                                {
                                    myCaseData.AddCaseAction(tempResult, new CaseActionDescription(tempAction, null));
                                }
                            }
                        }
                    }
                    #endregion

                    #region Attribute
                    XmlNode tempCaseAttribute = sourceNode["Attribute"];
                    if (tempCaseAttribute != null)
                    {
                        if (tempCaseAttribute.HasChildNodes)
                        {
                            if (tempCaseAttribute["Delay"] != null)
                            {
                                try
                                {
                                    myCaseData.caseAttribute.attributeDelay = int.Parse(tempCaseAttribute["Delay"].InnerText);
                                }
                                catch
                                {
                                    myCaseData.AddErrorMessage("Error :find error Delay data in Attribute");
                                }
                            }
                            if (tempCaseAttribute["Level"] != null)
                            {
                                try
                                {
                                    myCaseData.caseAttribute.attributeLevel = int.Parse(tempCaseAttribute["Level"].InnerText);
                                }
                                catch
                                {
                                    myCaseData.AddErrorMessage("Error :find error Level data in Attribute");
                                }
                            }
                            if (tempCaseAttribute["ParameterSave"] != null)
                            {
                                if (tempCaseAttribute["ParameterSave"].HasChildNodes)
                                {
                                    foreach (XmlNode tempNode in tempCaseAttribute["ParameterSave"].ChildNodes)
                                    {
                                        if (tempNode.Name == "NewParameter")
                                        {
                                            string          tempParameterName       = CaseTool.GetXmlAttributeVaule(tempNode, "name");
                                            string          tempParameterMode       = CaseTool.GetXmlAttributeVaule(tempNode, "mode");
                                            string          tempParameterAdditional = CaseTool.GetXmlAttributeVaule(tempNode, "additional");
                                            string          tempFindVaule           = tempNode.InnerText;
                                            PickOutFunction tempPickOutFunction     = PickOutFunction.pick_str;
                                            if (tempParameterName == null)
                                            {
                                                myCaseData.AddErrorMessage("Error :can not find name data in NewParameter in Attribute");
                                                continue;
                                            }
                                            if (tempParameterName == "")
                                            {
                                                myCaseData.AddErrorMessage("Error :the name data in NewParameter is empty in Attribute");
                                                continue;
                                            }
                                            if (tempParameterMode == null)
                                            {
                                                myCaseData.AddErrorMessage("Error :can not find mode data in NewParameter in Attribute");
                                                continue;
                                            }
                                            if (tempFindVaule == "")
                                            {
                                                myCaseData.AddErrorMessage("Error :the NewParameter vaule is empty in Attribute");
                                                continue;
                                            }
                                            try
                                            {
                                                tempPickOutFunction = (PickOutFunction)Enum.Parse(typeof(PickOutFunction), "pick_" + tempParameterMode);
                                            }
                                            catch
                                            {
                                                myCaseData.AddErrorMessage("Error :find error ParameterSave mode in Attribute");
                                                continue;
                                            }
                                            myCaseData.caseAttribute.addParameterSave(tempParameterName, tempFindVaule, tempPickOutFunction, tempParameterAdditional);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                }
                else
                {
                    myCaseData.AddErrorMessage("Error :source data is error");
                }
            }
            return(myCaseData);
        }