public void TestTypeRegistration() { SimplePofContext ctx = new SimplePofContext(); PortableObjectSerializer serializer = new PortableObjectSerializer(1); ctx.RegisterUserType(1, this.GetType(), serializer); ctx.RegisterUserType(2, typeof(IPortableObject), new PortableObjectSerializer(2)); Assert.AreEqual(1, ctx.GetUserTypeIdentifier(this)); Assert.AreEqual(1, ctx.GetUserTypeIdentifier(this.GetType())); Assert.AreEqual(1, ctx.GetUserTypeIdentifier(this.GetType().AssemblyQualifiedName)); Assert.AreEqual(this.GetType(), ctx.GetType(1)); Assert.AreEqual(this.GetType().FullName, ctx.GetTypeName(1)); Assert.AreEqual(serializer, ctx.GetPofSerializer(1)); ctx.UnregisterUserType(1); ctx.UnregisterUserType(2); }
public void TestDataSetSerialization() { DataSet dataSet1 = new DataSet(); SimplePofContext ctx = new SimplePofContext(); BinaryPofSerializer serializer = new BinaryPofSerializer(1); ctx.RegisterUserType(1, dataSet1.GetType(), serializer); Assert.AreEqual(1, ctx.GetUserTypeIdentifier(dataSet1)); Assert.AreEqual(1, ctx.GetUserTypeIdentifier(dataSet1.GetType())); Assert.AreEqual(dataSet1.GetType(), ctx.GetType(1)); Assert.AreEqual(dataSet1.GetType().FullName, ctx.GetTypeName(1)); Assert.AreEqual(serializer, ctx.GetPofSerializer(1)); dataSet1.Tables.Add("Order"); dataSet1.Tables["Order"].Columns.Add("Id", typeof(String)); dataSet1.Tables["Order"].Columns.Add("Name", typeof(String)); dataSet1.Tables.Add("OrderDetail"); dataSet1.Tables["OrderDetail"].Columns.Add("Id", typeof(String)); dataSet1.Tables["OrderDetail"].Columns.Add("Sum", typeof(Double)); dataSet1.Tables["OrderDetail"].Columns.Add("OrderId", typeof(String)); DataRelation relation = new DataRelation("Order_OrderDetail", dataSet1.Tables["Order"].Columns["Id"], dataSet1.Tables["OrderDetail"].Columns["OrderId"]); dataSet1.Relations.Add(relation); dataSet1.Tables["Order"].Rows.Add(new object[] { "01/2007", "Comedy books" }); dataSet1.Tables["Order"].Rows.Add(new object[] { "02/2007", "Suite" }); dataSet1.Tables["OrderDetail"].Rows.Add(new object[] { "01/2007-01", 1500, "01/2007" }); dataSet1.Tables["OrderDetail"].Rows.Add(new object[] { "01/2007-02", 1350, "01/2007" }); dataSet1.Tables["OrderDetail"].Rows.Add(new object[] { "02/2007-01", 5500.50, "02/2007" }); Stream stream = new MemoryStream(); ctx.Serialize(new DataWriter(stream), dataSet1); stream.Position = 0; DataSet dataSet2 = (DataSet)ctx.Deserialize(new DataReader(stream)); Assert.AreEqual(dataSet1.Tables["Order"].Columns.Count, dataSet2.Tables["Order"].Columns.Count); Assert.AreEqual(dataSet1.Tables["Order"].Columns["Id"].DataType, dataSet2.Tables["Order"].Columns["Id"].DataType); Assert.AreEqual(dataSet1.Tables["Order"].Columns["Name"].DataType, dataSet2.Tables["Order"].Columns["Name"].DataType); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Columns.Count, dataSet2.Tables["OrderDetail"].Columns.Count); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Columns["Id"].DataType, dataSet2.Tables["OrderDetail"].Columns["Id"].DataType); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Columns["Sum"].DataType, dataSet2.Tables["OrderDetail"].Columns["Sum"].DataType); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Columns["OrderId"].DataType, dataSet2.Tables["OrderDetail"].Columns["OrderId"].DataType); Assert.AreEqual(dataSet1.Tables["Order"].Rows.Count, dataSet2.Tables["Order"].Rows.Count); Assert.AreEqual(dataSet1.Tables["Order"].Rows[0]["Id"], dataSet2.Tables["Order"].Rows[0]["Id"]); Assert.AreEqual(dataSet1.Tables["Order"].Rows[0]["Name"], dataSet2.Tables["Order"].Rows[0]["Name"]); Assert.AreEqual(dataSet1.Tables["Order"].Rows[1]["Id"], dataSet2.Tables["Order"].Rows[1]["Id"]); Assert.AreEqual(dataSet1.Tables["Order"].Rows[1]["Name"], dataSet2.Tables["Order"].Rows[1]["Name"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows.Count, dataSet2.Tables["OrderDetail"].Rows.Count); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[0]["Id"], dataSet2.Tables["OrderDetail"].Rows[0]["Id"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[0]["Sum"], dataSet2.Tables["OrderDetail"].Rows[0]["Sum"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[0]["OrderId"], dataSet2.Tables["OrderDetail"].Rows[0]["OrderId"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[1]["Id"], dataSet2.Tables["OrderDetail"].Rows[1]["Id"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[1]["Sum"], dataSet2.Tables["OrderDetail"].Rows[1]["Sum"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[1]["OrderId"], dataSet2.Tables["OrderDetail"].Rows[1]["OrderId"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[2]["Id"], dataSet2.Tables["OrderDetail"].Rows[2]["Id"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[2]["Sum"], dataSet2.Tables["OrderDetail"].Rows[2]["Sum"]); Assert.AreEqual(dataSet1.Tables["OrderDetail"].Rows[2]["OrderId"], dataSet2.Tables["OrderDetail"].Rows[2]["OrderId"]); ctx.UnregisterUserType(1); }