示例#1
0
        public static XmlElement TestCaseResonseToNode(TestCaseResponse tcResponse, XmlDocument doc)
        {
            XmlElement tcrElement = doc.CreateElement("testCaseResponse");

            XmlElement code = doc.CreateElement("code");

            code.InnerText = tcResponse.Code;
            tcrElement.AppendChild(code);

            XmlElement messageTypeElement = doc.CreateElement("messageType");

            messageTypeElement.InnerText = tcResponse.MessageType;
            tcrElement.AppendChild(messageTypeElement);

            if (tcResponse.PayLoad != null)
            {
                XmlElement payLoadElement = doc.CreateElement("payLoad");
                payLoadElement.InnerText = tcResponse.PayLoad;
                tcrElement.AppendChild(payLoadElement);
            }

            if (tcResponse.Token != null)
            {
                XmlElement tokenElement = doc.CreateElement("token");
                tokenElement.InnerText = tcResponse.Token;
                tcrElement.AppendChild(tokenElement);
            }

            if (tcResponse.SameMID != null)
            {
                XmlElement sameIDElement = doc.CreateElement("sameMID");
                sameIDElement.InnerText = tcResponse.SameMID;
                tcrElement.AppendChild(sameIDElement);
            }

            //OptionTypesToNode(tcResponse.OptionType, doc, tcrElement);

            XmlElement optionType = doc.CreateElement("optionType");

            tcrElement.AppendChild(optionType);

            OptionTypesToNode(tcResponse.OptionType, doc, optionType);

            return(tcrElement);
        }
示例#2
0
        public static TestCaseResponse StepToTestCaseResponse(ResponseCheckStep step)
        {
            TestCaseResponse tcResponse = new TestCaseResponse();

            tcResponse.IsRequest = false;
            ICheck check = step.ResponseCheck;

            if (check is GroupCheck)
            {
                foreach (ICheck ck in check as GroupCheck)
                {
                    BuildTestCaseResponse(ck, tcResponse);
                }
            }
            else
            {
                BuildTestCaseResponse(check, tcResponse);
            }
            return(tcResponse);
        }
示例#3
0
        public static void BuildTestCaseResponse(ICheck check, TestCaseResponse tcResponse)
        {
            if (check is CodeCheck)
            {
                tcResponse.Code = (check as CodeCheck).Expected.ToString();
            }
            else if (check is MessageTypeCheck)
            {
                tcResponse.MessageType = (check as MessageTypeCheck).Expected.ToString();
            }
            else if (check is MessageIDCheck)
            {
                tcResponse.SameMID = "true".ToUpper();
            }
            else if (check is PayLoadStringCheck)
            {
                tcResponse.PayLoad = (check as PayLoadStringCheck).Expected.ToString();
            }
            else if (check is PayLoadByteCheck)
            {
                tcResponse.PayLoad = Utils.ToHexString((check as PayLoadByteCheck).Expected);
            }
            else if (check is TokenByteCheck)
            {
                tcResponse.Token = Utils.ToHexString((check as TokenByteCheck).Expected);
            }
            else if (check is TokenStringCheck)
            {
                tcResponse.Token = (check as TokenStringCheck).Expected.ToString();
            }
            else if (check is TokenExistCheck)
            {
                tcResponse.Token = "";
            }
            else if (check is PayLoadExistCheck)
            {
                tcResponse.PayLoad = "";
            }
            else if (check is OptionCheck)
            {
                OptionCheck oc = check as OptionCheck;
                switch (oc.OptionType)
                {
                case OptionType.LocationPath:

                    tcResponse.OptionType.Location_Path = oc.StringValue == null ? "" : oc.StringValue;
                    break;

                case OptionType.LocationQuery:
                    tcResponse.OptionType.Location_Query = oc.StringValue == null ? "" : oc.StringValue;
                    break;

                case OptionType.Observe:
                    tcResponse.OptionType.Observe = oc.IntValue == null ? (oc.StringValue == null ? "" : oc.StringValue) : oc.IntValue.ToString();
                    break;

                //case OptionType.Token:
                //    tcResponse.Token = oc.RawValue == null ? (oc.StringValue == null ? "" : oc.StringValue) : Utils.ToHexString(oc.RawValue);
                //    break;
                case OptionType.Accept:
                    tcResponse.OptionType.Accept = oc.IntValue.ToString();
                    break;

                case OptionType.Block1:
                    tcResponse.OptionType.Block1 = oc.IntValue == null ? (oc.StringValue == null ? "" : oc.StringValue) : oc.IntValue.ToString();
                    break;

                case OptionType.Block2:
                    tcResponse.OptionType.Block2 = oc.IntValue == null ? (oc.StringValue == null ? "" : oc.StringValue) : oc.IntValue.ToString();
                    break;

                case OptionType.ContentType:
                    tcResponse.OptionType.Content_Format = oc.IntValue == null ? (oc.StringValue == null ? "" : oc.StringValue) : oc.IntValue.ToString();
                    break;

                case OptionType.ETag:
                    tcResponse.OptionType.ETag = oc.RawValue == null ? (oc.StringValue == null ? "" : oc.StringValue) : Utils.ToHexString(oc.RawValue);
                    break;

                case OptionType.IfMatch:
                    tcResponse.OptionType.If_Match = oc.StringValue == null ? "" : oc.StringValue;
                    break;

                case OptionType.IfNoneMatch:
                    tcResponse.OptionType.If_None_Match = "TRUE";
                    break;

                case OptionType.MaxAge:
                    tcResponse.OptionType.Max_Age = oc.IntValue == null ? (oc.StringValue == null ? "" : oc.StringValue) : oc.IntValue.ToString();
                    break;

                case OptionType.ProxyScheme:
                    tcResponse.OptionType.Proxy_Scheme = "TRUE";
                    break;

                case OptionType.ProxyUri:
                    tcResponse.OptionType.Proxy_Uri = oc.StringValue == null ? "" : oc.StringValue;
                    break;

                case OptionType.UriHost:
                    tcResponse.OptionType.Uri_Host = oc.StringValue == null ? "" : oc.StringValue;
                    break;

                case OptionType.UriPath:
                    tcResponse.OptionType.UriPath = oc.StringValue == null ? "" : oc.StringValue;
                    break;

                case OptionType.UriPort:
                    tcResponse.OptionType.Uri_Port = oc.IntValue == null ? (oc.StringValue == null ? "" : oc.StringValue) : oc.IntValue.ToString();
                    break;

                case OptionType.UriQuery:
                    tcResponse.OptionType.UriQuery = oc.StringValue == null ? "" : oc.StringValue;
                    break;
                }
            }
        }
示例#4
0
        public static TestCaseBase NodeToTestCaseBase(XmlNode reNode)
        {
            TestCaseBase tcb;

            if (reNode.Name == "testCaseRequest")
            {
                TestCaseRequest tcrq = new TestCaseRequest();
                tcb           = tcrq;
                tcb.IsRequest = true;

                XmlNodeList xnMethod = ((XmlElement)reNode).GetElementsByTagName("method");
                if (xnMethod != null)
                {
                    tcrq.Method = xnMethod.Item(0).InnerText;
                }
            }
            else
            {
                TestCaseResponse tcrs = new TestCaseResponse();
                tcb           = tcrs;
                tcb.IsRequest = false;

                XmlNodeList xnCode = ((XmlElement)reNode).GetElementsByTagName("code");
                if (xnCode != null)
                {
                    tcrs.Code = xnCode.Item(0).InnerText;
                }
                XmlNodeList xnSameMID = ((XmlElement)reNode).GetElementsByTagName("sameMID");
                if (xnSameMID != null && xnSameMID.Count > 0)
                {
                    tcrs.SameMID = xnSameMID.Item(0).InnerText;
                }
            }

            XmlNodeList xnMessageType = ((XmlElement)reNode).GetElementsByTagName("messageType");

            if (xnMessageType != null && xnMessageType.Count > 0)
            {
                tcb.MessageType = xnMessageType.Item(0).InnerText;
            }

            XmlNodeList xnPayLoad = ((XmlElement)reNode).GetElementsByTagName("payLoad");

            if (xnPayLoad != null && xnPayLoad.Count > 0)
            {
                tcb.PayLoad = xnPayLoad.Item(0).InnerText;
            }

            XmlNodeList xnToken = ((XmlElement)reNode).GetElementsByTagName("token");

            if (xnToken != null && xnToken.Count > 0)
            {
                tcb.Token = xnToken.Item(0).InnerText;
            }

            OptionTypes ots = new OptionTypes();

            XmlNodeList xnlOptionTypeList = ((XmlElement)reNode).GetElementsByTagName("optionType");

            if (xnlOptionTypeList != null && xnlOptionTypeList.Count > 0)
            {
                XmlNode xnlOptionType = xnlOptionTypeList.Item(0);
                ots = NodeToOptionTypes(xnlOptionType);
            }
            tcb.OptionType = ots;

            return(tcb);
        }