public void TestRdfXmlCollectionSerialization() { List <ChangeRequest> crListOut = new List <ChangeRequest>(); ChangeRequest changeRequest1 = new ChangeRequest(new Uri("http://com/somewhere/changeRequest1")); changeRequest1.SetFixed(true); changeRequest1.AddAffectedByDefect(new Link(new Uri("http://com/somewhere/changeRequest2"), "Test of links")); crListOut.Add(changeRequest1); ChangeRequest changeRequest2 = new ChangeRequest(new Uri("http://com/somewhere/changeRequest2")); changeRequest2.SetFixed(false); changeRequest2.AddAffectedByDefect(new Link(new Uri("http://com/somewhere/changeRequest1"), "Test of links")); crListOut.Add(changeRequest2); IGraph rdfGraph = DotNetRdfHelper.CreateDotNetRdfGraph("http://com/somewhere/changerequests", "http://com/somewhere/changerequests?page=20", "http://com/somewhere/changerequests?page=21", null, crListOut, null); RdfXmlMediaTypeFormatter formatter = new RdfXmlMediaTypeFormatter(rdfGraph); string rdfXml = SerializeCollection <ChangeRequest>(formatter, crListOut, OslcMediaType.APPLICATION_RDF_XML_TYPE); Debug.WriteLine(rdfXml); List <ChangeRequest> crListIn = DeserializeCollection <ChangeRequest>(formatter, rdfXml, OslcMediaType.APPLICATION_RDF_XML_TYPE).ToList(); Assert.AreEqual(crListOut.Count, crListIn.Count); //No guarantees of order in a collection, use the "about" attribute to identify individual ChangeRequests foreach (ChangeRequest cr in crListIn) { string crAboutUri = cr.GetAbout().AbsoluteUri; if (crAboutUri.Equals("http://com/somewhere/changeRequest1")) { Assert.AreEqual(cr.IsFixed(), changeRequest1.IsFixed()); Assert.AreEqual(cr.GetAffectedByDefects()[0].GetValue(), changeRequest1.GetAffectedByDefects()[0].GetValue()); Assert.AreEqual(cr.GetAffectedByDefects()[0].GetLabel(), changeRequest1.GetAffectedByDefects()[0].GetLabel()); } else if (crAboutUri.Equals("http://com/somewhere/changeRequest2")) { Assert.AreEqual(cr.IsFixed(), changeRequest2.IsFixed()); Assert.AreEqual(cr.GetAffectedByDefects()[0].GetValue(), changeRequest2.GetAffectedByDefects()[0].GetValue()); Assert.AreEqual(cr.GetAffectedByDefects()[0].GetLabel(), changeRequest2.GetAffectedByDefects()[0].GetLabel()); } else { Assert.Fail("Deserialized ChangeRequest about attribute not recognized: " + crAboutUri); } } }
public void TestJsonCollectionSerialization() { List <ChangeRequest> crListOut = new List <ChangeRequest>(); ChangeRequest changeRequest1 = new ChangeRequest(new Uri("http://com/somewhere/changeRequest1")); changeRequest1.SetFixed(true); changeRequest1.AddAffectedByDefect(new Link(new Uri("http://com/somewhere/changeRequest2"), "Test of links")); crListOut.Add(changeRequest1); ChangeRequest changeRequest2 = new ChangeRequest(new Uri("http://com/somewhere/changeRequest2")); changeRequest2.SetFixed(false); changeRequest2.AddAffectedByDefect(new Link(new Uri("http://com/somewhere/changeRequest1"), "Test of links")); crListOut.Add(changeRequest2); JsonValue json = JsonHelper.CreateJson("http://com/somewhere/changerequests", "http://com/somewhere/changerequests?page=20", "http://com/somewhere/changerequests?page=21", null, crListOut, null); OSLC4Net.Core.JsonProvider.JsonMediaTypeFormatter formatter = new OSLC4Net.Core.JsonProvider.JsonMediaTypeFormatter(json, false); string jsonString = SerializeCollection <ChangeRequest>(formatter, crListOut, OslcMediaType.APPLICATION_JSON_TYPE); List <ChangeRequest> crListIn = DeserializeCollection <ChangeRequest>(formatter, jsonString, OslcMediaType.APPLICATION_JSON_TYPE).ToList(); Assert.AreEqual(crListOut.Count, crListIn.Count); //No guarantees of order in a collection, use the "about" attribute to identify individual ChangeRequests foreach (ChangeRequest cr in crListIn) { string crAboutUri = cr.GetAbout().AbsoluteUri; if (crAboutUri.Equals("http://com/somewhere/changeRequest1")) { Assert.AreEqual(cr.IsFixed(), changeRequest1.IsFixed()); Assert.AreEqual(cr.GetAffectedByDefects()[0].GetValue(), changeRequest1.GetAffectedByDefects()[0].GetValue()); Assert.AreEqual(cr.GetAffectedByDefects()[0].GetLabel(), changeRequest1.GetAffectedByDefects()[0].GetLabel()); } else if (crAboutUri.Equals("http://com/somewhere/changeRequest2")) { Assert.AreEqual(cr.IsFixed(), changeRequest2.IsFixed()); Assert.AreEqual(cr.GetAffectedByDefects()[0].GetValue(), changeRequest2.GetAffectedByDefects()[0].GetValue()); Assert.AreEqual(cr.GetAffectedByDefects()[0].GetLabel(), changeRequest2.GetAffectedByDefects()[0].GetLabel()); } else { Assert.Fail("Deserialized ChangeRequest about attribute not recognized: " + crAboutUri); } } }
public void TestJsonSerialization() { ChangeRequest changeRequest1 = new ChangeRequest(new Uri("http://com/somewhere/changeReuest")); changeRequest1.SetFixed(true); changeRequest1.AddAffectedByDefect(new Link(new Uri("http://com/somewhere/changeRequest2"), "Test of links")); OSLC4Net.Core.JsonProvider.JsonMediaTypeFormatter formatter = new OSLC4Net.Core.JsonProvider.JsonMediaTypeFormatter(); string json = Serialize <ChangeRequest>(formatter, changeRequest1, OslcMediaType.APPLICATION_JSON_TYPE); Debug.WriteLine(json); ChangeRequest changeRequest2 = Deserialize <ChangeRequest>(formatter, json, OslcMediaType.APPLICATION_JSON_TYPE); Assert.AreEqual(changeRequest1.GetAbout(), changeRequest2.GetAbout()); Assert.AreEqual(changeRequest1.IsFixed(), changeRequest2.IsFixed()); Assert.AreEqual(changeRequest1.GetAffectedByDefects()[0].GetValue(), changeRequest2.GetAffectedByDefects()[0].GetValue()); Assert.AreEqual(changeRequest1.GetAffectedByDefects()[0].GetLabel(), changeRequest2.GetAffectedByDefects()[0].GetLabel()); }
public void TestRdfXmlSerialization() { ChangeRequest changeRequest1 = new ChangeRequest(new Uri("http://com/somewhere/changeReuest")); changeRequest1.SetFixed(true); changeRequest1.AddAffectedByDefect(new Link(new Uri("http://com/somewhere/changeRequest2"), "Test of links")); RdfXmlMediaTypeFormatter formatter = new RdfXmlMediaTypeFormatter(); string rdfXml = Serialize <ChangeRequest>(formatter, changeRequest1, OslcMediaType.APPLICATION_RDF_XML_TYPE); Debug.WriteLine(rdfXml); ChangeRequest changeRequest2 = Deserialize <ChangeRequest>(formatter, rdfXml, OslcMediaType.APPLICATION_RDF_XML_TYPE); Assert.AreEqual(changeRequest1.GetAbout(), changeRequest2.GetAbout()); Assert.AreEqual(changeRequest1.IsFixed(), changeRequest2.IsFixed()); Assert.AreEqual(changeRequest1.GetAffectedByDefects()[0].GetValue(), changeRequest2.GetAffectedByDefects()[0].GetValue()); Assert.AreEqual(changeRequest1.GetAffectedByDefects()[0].GetLabel(), changeRequest2.GetAffectedByDefects()[0].GetLabel()); }