Exemple #1
0
        public void TestNullableEnum()
        {
            string Name      = "GetEvalsResult";
            string Wrapper   = "GetEvalsResponse";
            string Namespace = "http://tempuri.org/";

            Type type = typeof(Client2843.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:Comments>Comment 1</a:Comments>          <a:Id>04836718-41a7-45fe-8c0b-ac3fc613b0f8</a:Id>          <a:Submitter>Submitter 1</a:Submitter>          <a:TimeSubmitted i:nil=\"true\" />          <a:etype>SIMPLE</a:etype>          <a:etype2>COMPLEX</a:etype2>        </a:Eval>        <a:Eval>          <a:Comments>Comment 2</a:Comments>          <a:Id>fd17a406-4c2c-41ca-9a5d-1a1019d07535</a:Id>          <a:Submitter>Submitter 2</a:Submitter>          <a:TimeSubmitted>2012-02-26T13:41:00</a:TimeSubmitted>          <a:etype i:nil=\"true\" />          <a:etype2>COMPLEX</a:etype2>        </a:Eval>      </GetEvalsResult>    </GetEvalsResponse>";

            Client2843.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 = (Client2843.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, 2, "Comment 1", "Eval 1 Comment missmatch");

            Client2843.EvalServiceReference.Eval ev1 = evals[0];
            Client2843.EvalServiceReference.Eval ev2 = evals[1];

            // Assert that object deserilized matches each value attribute.
            Assert.AreEqual(ev1.Comments, "Comment 1", "ev1.Comments missmatch");
            Assert.AreEqual(ev1.Submitter, "Submitter 1", "ev1.Submitter missmatch");
            Assert.IsNull(ev1.TimeSubmitted, "ev1.TimeSubmitted missmatch");
            Assert.AreEqual(ev1.etype, Client2843.EvalServiceReference.EvalType.SIMPLE, "ev1.etype missmatch");
            Assert.AreEqual(ev1.etype2, Client2843.EvalServiceReference.EvalType.COMPLEX, "ev1.etype2 missmatch");

            Assert.AreEqual(ev2.Comments, "Comment 2", "ev2.Comments missmatch");
            Assert.AreEqual(ev2.Submitter, "Submitter 2", "ev2.Submitter missmatch");
            Assert.AreEqual(ev2.TimeSubmitted, DateTime.Parse("2012-02-26T13:41:00"), "ev2.TimeSubmitted missmatch");
            Assert.IsNull(ev2.etype, "ev2.etype missmatch");
            Assert.AreEqual(ev2.etype2, Client2843.EvalServiceReference.EvalType.COMPLEX, "ev2.etype2 missmatch");


            Client2843.EvalServiceReference.Eval[] evals2 = null;

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

            Client2843.EvalServiceReference.Eval e1 = evals2[0];
            Client2843.EvalServiceReference.Eval e2 = evals2[1];

            Assert.AreEqual(e1.Comments, "Comment 1", "e1.Comments missmatch");
            Assert.AreEqual(e1.Submitter, "Submitter 1", "e1.Submitter missmatch");
            Assert.IsNull(e1.TimeSubmitted, "e1.TimeSubmitted missmatch");
            Assert.AreEqual(e1.etype, Client2843.EvalServiceReference.EvalType.SIMPLE, "e1.etype missmatch");
            Assert.AreEqual(e1.etype2, Client2843.EvalServiceReference.EvalType.COMPLEX, "e1.etype2 missmatch");

            Assert.AreEqual(e2.Comments, "Comment 2", "e2.Comments missmatch");
            Assert.AreEqual(e2.Submitter, "Submitter 2", "e2.Submitter missmatch");
            Assert.AreEqual(e2.TimeSubmitted, DateTime.Parse("2012-02-26T13:41:00"), "e2.TimeSubmitted missmatch");
            Assert.IsNull(e2.etype, "e2.etype missmatch");
            Assert.AreEqual(e2.etype2, Client2843.EvalServiceReference.EvalType.COMPLEX, "e2.etype2 missmatch");
        }
Exemple #2
0
 public void SubmitEval(Client2843.EvalServiceReference.Eval eval)
 {
     base.Channel.SubmitEval(eval);
 }