Пример #1
0
 public void SubmitEval(Client.EvalServiceReference.Eval eval)
 {
     base.Channel.SubmitEval(eval);
 }
Пример #2
0
 public System.Threading.Tasks.Task SubmitEvalAsync(Client.EvalServiceReference.Eval eval)
 {
     return(base.Channel.SubmitEvalAsync(eval));
 }
Пример #3
0
        public void TestNullableWithDictionary()
        {
            string Name      = "GetEvalsResult";
            string Wrapper   = "GetEvalsResponse";
            string Namespace = "http://tempuri.org/";

            Type type = typeof(Client.EvalServiceReference.Eval[]);
            IEnumerable <Type> know_types = new List <Type>();

            // This is the XML generated by WCF Server
            string xml = "<GetEvalsResponse xmlns=\"http://tempuri.org/\">      <GetEvalsResult xmlns:a=\"http://schemas.datacontract.org/2004/07/WcfServiceLibrary1\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">        <a:Eval>          <a:Id>8215784f-bf5f-4df8-b239-34a0a029a54e</a:Id>          <a:itemsList>            <a:EvalItem>              <a:Item>Item on List 3</a:Item>              <a:ItemTime>2012-03-04T04:04:00</a:ItemTime>              <a:etype>COMPLEX</a:etype>            </a:EvalItem>            <a:EvalItem i:nil=\"true\" />          </a:itemsList>          <a:itemsMap xmlns:b=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">            <b:KeyValueOfstringEvalItemo8PfwX7N>              <b:Key>Item3</b:Key>              <b:Value>                <a:Item>Item 2 on Map</a:Item>                <a:ItemTime i:nil=\"true\" />                <a:etype>NONE</a:etype>              </b:Value>            </b:KeyValueOfstringEvalItemo8PfwX7N>            <b:KeyValueOfstringEvalItemo8PfwX7N>              <b:Key />              <b:Value i:nil=\"true\" />            </b:KeyValueOfstringEvalItemo8PfwX7N>          </a:itemsMap>        </a:Eval>      </GetEvalsResult>    </GetEvalsResponse>";

            Client.EvalServiceReference.Eval[] evals = null;

            StringBuilder stringBuilder = new StringBuilder();

            var ds = new DataContractSerializer(type, Name, Namespace, know_types);

            using (var xr = XmlDictionaryReader.CreateDictionaryReader(XmlReader.Create(new StringReader(xml))))
            {
                xr.ReadStartElement(Wrapper, Namespace);

                for (xr.MoveToContent(); xr.NodeType == XmlNodeType.Element; xr.MoveToContent())
                {
                    XmlQualifiedName key = new XmlQualifiedName(xr.LocalName, xr.NamespaceURI);

                    if (Name == key.Name && Namespace == key.Namespace)
                    {
                        break;
                    }
                }

                evals = (Client.EvalServiceReference.Eval[])ds.ReadObject(xr, true);
            }

            using (var xw = XmlDictionaryWriter.CreateDictionaryWriter(XmlWriter.Create(new StringWriter(stringBuilder)))) {
                ds.WriteObject(xw, evals);
            }

            string actualXml = stringBuilder.ToString();

            Assert.AreEqual(evals.Length, 1, "evals.Length missmatch");

            Client.EvalServiceReference.Eval eval = evals[0];

            Assert.AreEqual(eval.Id, "8215784f-bf5f-4df8-b239-34a0a029a54e", "eval.Id missmatch");
            Assert.AreEqual(eval.itemsList.Length, 2, "eval.itemsList.Length missmatch");

            Client.EvalServiceReference.EvalItem evalItem = eval.itemsList[0];

            Assert.AreEqual(evalItem.Item, "Item on List 3", "evalItem.Item missmatch");
            Assert.AreEqual(evalItem.ItemTime, DateTime.Parse("2012-03-04T04:04:00"), "evalItem.ItemTime missmatch");
            Assert.AreEqual(evalItem.etype, Client.EvalServiceReference.EvalType.COMPLEX, "evalItem.etype missmatch");

            Client.EvalServiceReference.EvalItem evalItem2 = eval.itemsList[1];

            Assert.IsNull(evalItem2, "evalItem2 missmatch");

            Assert.AreEqual(eval.itemsMap.Count, 2, "eval.itemsMap.Count missmatch");

            Client.EvalServiceReference.EvalItem evalItem3 = eval.itemsMap["Item3"];

            Assert.AreEqual(evalItem3.Item, "Item 2 on Map", "evalItem3.Item missmatch");
            Assert.IsNull(evalItem3.ItemTime, "evalItem3.ItemTime missmatch");
            Assert.AreEqual(evalItem3.etype, Client.EvalServiceReference.EvalType.NONE, "evalItem3.etype missmatch");

            Client.EvalServiceReference.EvalItem evalItem4 = eval.itemsMap[""];

            Assert.IsNull(evalItem4, "Item 2 on Map", "evalItem4");

            Client.EvalServiceReference.Eval[] evals2 = null;

            using (var xr = XmlDictionaryReader.CreateDictionaryReader(XmlReader.Create(new StringReader(actualXml))))
            {
                evals2 = (Client.EvalServiceReference.Eval[])ds.ReadObject(xr, true);
            }

            Assert.AreEqual(evals2.Length, 1, "evals2.Length missmatch");

            Client.EvalServiceReference.Eval eval2 = evals2[0];

            Assert.AreEqual(eval2.Id, "8215784f-bf5f-4df8-b239-34a0a029a54e", "eval2.Id missmatch");
            Assert.AreEqual(eval2.itemsList.Length, 2, "eval2.itemsList.Length missmatch");

            Client.EvalServiceReference.EvalItem eval2Item = eval2.itemsList[0];

            Assert.AreEqual(eval2Item.Item, "Item on List 3", "eval2Item.Item missmatch");
            Assert.AreEqual(eval2Item.ItemTime, DateTime.Parse("2012-03-04T04:04:00"), "eval2Item.ItemTime missmatch");
            Assert.AreEqual(eval2Item.etype, Client.EvalServiceReference.EvalType.COMPLEX, "eval2Item.etype missmatch");

            Client.EvalServiceReference.EvalItem eval2Item2 = eval2.itemsList[1];

            Assert.IsNull(eval2Item2, "eval2Item2 missmatch");

            Assert.AreEqual(eval2.itemsMap.Count, 2, "eval2.itemsMap.Count missmatch");

            Client.EvalServiceReference.EvalItem eval2Item3 = eval2.itemsMap["Item3"];

            Assert.AreEqual(eval2Item3.Item, "Item 2 on Map", "eval2Item3.Item missmatch");
            Assert.IsNull(eval2Item3.ItemTime, "eval2Item3.ItemTime missmatch");
            Assert.AreEqual(eval2Item3.etype, Client.EvalServiceReference.EvalType.NONE, "eval2Item3.etype missmatch");

            Client.EvalServiceReference.EvalItem eval2Item4 = eval.itemsMap[""];

            Assert.IsNull(eval2Item4, "eval2Item4 missmatch");
        }