//[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());
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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);
        }