//[Fact] public void ShouldDeserializeWholeStructure() { /* * The whole record is structured in three main segments +---------------+------------------+---------------+-------------+ | version:byte | className:string | header:byte[] | data:byte[] | +---------------+------------------+---------------+-------------+ */ //byte version = 0; byte[] className = Encoding.UTF8.GetBytes("TestClass"); byte[] header = new byte[0]; byte[] data = new byte[0]; //string serString = "ABJUZXN0Q2xhc3MpAAAAEQDI/wE="; string serString1 = "AAxQZXJzb24EaWQAAABEBwhuYW1lAAAAaQcOc3VybmFtZQAAAHAHEGJpcnRoZGF5AAAAdwYQY2hpbGRyZW4AAAB9AQBIZjk1M2VjNmMtNGYyMC00NDlhLWE2ODQtYjQ2ODkxNmU4NmM3DEJpbGx5MQxNYXllczGUlfWVo1IC/wE="; var document = new ODocument(); document.OClassName = "TestClass"; document.SetField <DateTime>("_date", DateTime.Now); var createdDocument = database .Create .Document(document) .Run(); Assert.Equal(document.GetField <DateTime>("_date").Date, createdDocument.GetField <DateTime>("eeee")); var serBytes1 = Convert.FromBase64String(serString1); var doc = serializer.Deserialize(serBytes1, new ODocument()); }
public WalEntry <T> Deserialize(string line) { var parts = line.Split(Delimiter); Enum.TryParse(parts[0], out CsvDbAction action); var hashCode = int.Parse(parts[1]); var socket = _serializer.Deserialize(parts[2]); return(new WalEntry <T>(action, hashCode, socket)); }
public void TestSerializeArray() { string recordString = "TestArray@values:[1,2,3,4,5]"; var rawRecord = Encoding.UTF8.GetBytes(recordString); ODocument document = serializer.Deserialize(rawRecord, new ODocument()); TypeMapper <TestArray> tm = TypeMapper <TestArray> .Instance; var t = new TestArray(); tm.ToObject(document, t); Assert.NotNull(t.values); Assert.Equal(5, t.values.Length); Assert.Equal(3, t.values[2]); ODocument newODocument = ODocument.ToDocument(t); var serialized = Encoding.UTF8.GetString(serializer.Serialize(newODocument)); Assert.Equal(recordString, serialized); }
public void ShouldSerializeByteArray() { string recordString = "TestClass@data:_AQIDBAU=_"; ODocument document = new ODocument() .SetField("@OClassName", "TestClass") .SetField("data", new byte[] { 1, 2, 3, 4, 5 }); string serializedString = Encoding.UTF8.GetString(serializer.Serialize(document)); Assert.Equal(serializedString, recordString); var deserialized = serializer.Deserialize(Encoding.UTF8.GetBytes(serializedString), new ODocument()); byte[] data = deserialized.GetField <byte[]>("data"); Assert.True(data.SequenceEqual(new byte[] { 1, 2, 3, 4, 5 })); }
public void ShouldDeserializeDocSimpleExample() { string recordString = "Profile@nick:\"ThePresident\",follows:[],followers:[#10:5,#10:6],name:\"Barack\",surname:\"Obama\",location:#3:2,invitedBy:,salary_cloned:,salary:120.3f"; var rawDocument = Encoding.UTF8.GetBytes(recordString); //ODocument document = ODocument.Deserialize(recordString); ODocument document = serializer.Deserialize(rawDocument, new ODocument()); Assert.Equal(document.OClassName, "Profile"); // check for fields existence Assert.Equal(document.HasField("nick"), true); Assert.Equal(document.HasField("follows"), true); Assert.Equal(document.HasField("followers"), true); Assert.Equal(document.HasField("name"), true); Assert.Equal(document.HasField("surname"), true); Assert.Equal(document.HasField("location"), true); Assert.Equal(document.HasField("invitedBy"), true); Assert.Equal(document.HasField("salary_cloned"), true); Assert.Equal(document.HasField("salary"), true); // check for fields values Assert.Equal(document.GetField <string>("nick"), "ThePresident"); Assert.Equal(document.GetField <List <object> >("follows").Count, new List <object>().Count); List <ORID> recordFollowers = document.GetField <List <ORID> >("followers"); List <ORID> followers = new List <ORID> { new ORID("#10:5"), new ORID("#10:6") }; Assert.Equal(recordFollowers.Count, followers.Count); Assert.Equal(recordFollowers[0], followers[0]); Assert.Equal(recordFollowers[1], followers[1]); Assert.Equal(document.GetField <string>("name"), "Barack"); Assert.Equal(document.GetField <string>("surname"), "Obama"); Assert.Equal(document.GetField <ORID>("location"), new ORID("#3:2")); Assert.Equal(document.GetField <string>("invitedBy"), null); Assert.Equal(document.GetField <string>("salary_cloned"), null); Assert.Equal(document.GetField <float>("salary"), 120.3f); }