public void TestPocoCreateAndUpdateAndLoadRecord() { using (ODatabase database = new ODatabase(_hostname, _port, _databaseName, ODatabaseType.Document, _username, _password)) { TestClass foo = new TestClass(); // basic types foo.IsBool = true; foo.ByteNumber = 22; foo.ShortNumber = 22222; foo.IntNumber = 12345678; foo.LongNumber = 1234567890123; foo.FloatNumber = 3.14f; foo.DoubleNumber = 12343.23442; foo.DecimalNumber = new Decimal(1234567.890); foo.DateTime = DateTime.Now; foo.String = "Bra\"vo \\ asdf"; // collections foo.StringArray = new string[] { "str elem 1", "str elem 2", "str elem 3" }; foo.StringList = new List<string>() { "str list elem 1", "str list elem 2", "str list elem 3" }; // embedded document foo.NestedClass = new TestNestedClass(); foo.NestedClass.NestedString = "test nested string"; foo.NestedClass.StringArray = new string[] { "str elem 1", "str elem 2", "str elem 3" }; foo.NestedClass.StringList = new List<string>() { "str list elem 1", "str list elem 2", "str list elem 3" }; // collection of embedded documents foo.ObjectList = new List<TestNestedClass>(); foo.ObjectList.Add(new TestNestedClass() { NestedString = "test embedded doc 1 string", StringArray = new string[] { "str elem 1", "str elem 2", "str elem 3" }, StringList = new List<string>() { "str list elem 1", "str list elem 2", "str list elem 3" } }); foo.ObjectList.Add(new TestNestedClass() { NestedString = "test embedded doc2 string", StringArray = new string[] { "str elem 11", "str elem 12", "str elem 13" }, StringList = new List<string>() { "str list elem 11", "str list elem 12", "str list elem 13" } }); // single and collection of ORIDs foo.SingleOrid = new ORID("#10:1334"); foo.OridList = new List<ORID>(); foo.OridList.Add(new ORID("#11:123")); foo.OridList.Add(new ORID("#22:12345")); foo.OridList.Add(new ORID("#33:1234567")); ORecord recordCreated = database.CreateRecord("TestClass", foo); TestClass fooRetrieved = database.LoadRecord<TestClass>(recordCreated.ORID); string newStringValue = "new value of string after update"; fooRetrieved.String = newStringValue; foo.String = newStringValue; int newVersion = database.UpdateRecord(recordCreated.ORID, fooRetrieved); Assert.IsTrue(newVersion == (recordCreated.Version + 1)); fooRetrieved = null; fooRetrieved = database.LoadRecord<TestClass>(recordCreated.ORID); // basic types Assert.IsTrue(fooRetrieved.Null == null); Assert.IsTrue(fooRetrieved.IsBool == foo.IsBool); Assert.IsTrue(fooRetrieved.ByteNumber == foo.ByteNumber); Assert.IsTrue(fooRetrieved.ByteNumber == foo.ByteNumber); Assert.IsTrue(fooRetrieved.IntNumber == foo.IntNumber); Assert.IsTrue(fooRetrieved.LongNumber == foo.LongNumber); Assert.IsTrue(fooRetrieved.FloatNumber == foo.FloatNumber); Assert.IsTrue(fooRetrieved.DoubleNumber == foo.DoubleNumber); Assert.IsTrue(fooRetrieved.DecimalNumber == foo.DecimalNumber); Assert.IsTrue(fooRetrieved.DateTime.ToString() == foo.DateTime.ToString()); Assert.IsTrue(fooRetrieved.String == foo.String); // collections Assert.IsTrue(fooRetrieved.StringArray.Length == foo.StringArray.Length); Assert.IsTrue(fooRetrieved.StringArray[0] == foo.StringArray[0]); Assert.IsTrue(fooRetrieved.StringArray[1] == foo.StringArray[1]); Assert.IsTrue(fooRetrieved.StringArray[2] == foo.StringArray[2]); Assert.IsTrue(fooRetrieved.StringList.Count == foo.StringList.Count); Assert.IsTrue(fooRetrieved.StringList[0] == foo.StringList[0]); Assert.IsTrue(fooRetrieved.StringList[1] == foo.StringList[1]); Assert.IsTrue(fooRetrieved.StringList[2] == foo.StringList[2]); // embedded document Assert.IsTrue(fooRetrieved.NestedClass.NestedString == foo.NestedClass.NestedString); Assert.IsTrue(fooRetrieved.NestedClass.StringArray.Length == foo.NestedClass.StringArray.Length); Assert.IsTrue(fooRetrieved.NestedClass.StringArray[0] == foo.NestedClass.StringArray[0]); Assert.IsTrue(fooRetrieved.NestedClass.StringArray[1] == foo.NestedClass.StringArray[1]); Assert.IsTrue(fooRetrieved.NestedClass.StringArray[2] == foo.NestedClass.StringArray[2]); Assert.IsTrue(fooRetrieved.NestedClass.StringList.Count == foo.NestedClass.StringList.Count); Assert.IsTrue(fooRetrieved.NestedClass.StringList[0] == foo.NestedClass.StringList[0]); Assert.IsTrue(fooRetrieved.NestedClass.StringList[1] == foo.NestedClass.StringList[1]); Assert.IsTrue(fooRetrieved.NestedClass.StringList[2] == foo.NestedClass.StringList[2]); // collection of embedded documents Assert.IsTrue(fooRetrieved.ObjectList.Count == foo.ObjectList.Count); Assert.IsTrue(fooRetrieved.ObjectList[0].NestedString == foo.ObjectList[0].NestedString); Assert.IsTrue(fooRetrieved.ObjectList[0].StringArray.Length == foo.ObjectList[0].StringArray.Length); Assert.IsTrue(fooRetrieved.ObjectList[0].StringArray[0] == foo.ObjectList[0].StringArray[0]); Assert.IsTrue(fooRetrieved.ObjectList[0].StringArray[1] == foo.ObjectList[0].StringArray[1]); Assert.IsTrue(fooRetrieved.ObjectList[0].StringArray[2] == foo.ObjectList[0].StringArray[2]); Assert.IsTrue(fooRetrieved.ObjectList[0].StringList.Count == foo.ObjectList[0].StringList.Count); Assert.IsTrue(fooRetrieved.ObjectList[0].StringList[0] == foo.ObjectList[0].StringList[0]); Assert.IsTrue(fooRetrieved.ObjectList[0].StringList[1] == foo.ObjectList[0].StringList[1]); Assert.IsTrue(fooRetrieved.ObjectList[0].StringList[2] == foo.ObjectList[0].StringList[2]); Assert.IsTrue(fooRetrieved.ObjectList[1].NestedString == foo.ObjectList[1].NestedString); Assert.IsTrue(fooRetrieved.ObjectList[1].StringArray.Length == foo.ObjectList[1].StringArray.Length); Assert.IsTrue(fooRetrieved.ObjectList[1].StringArray[0] == foo.ObjectList[1].StringArray[0]); Assert.IsTrue(fooRetrieved.ObjectList[1].StringArray[1] == foo.ObjectList[1].StringArray[1]); Assert.IsTrue(fooRetrieved.ObjectList[1].StringArray[2] == foo.ObjectList[1].StringArray[2]); Assert.IsTrue(fooRetrieved.ObjectList[1].StringList.Count == foo.ObjectList[1].StringList.Count); Assert.IsTrue(fooRetrieved.ObjectList[1].StringList[0] == foo.ObjectList[1].StringList[0]); Assert.IsTrue(fooRetrieved.ObjectList[1].StringList[1] == foo.ObjectList[1].StringList[1]); Assert.IsTrue(fooRetrieved.ObjectList[1].StringList[2] == foo.ObjectList[1].StringList[2]); Assert.IsTrue(fooRetrieved.SingleOrid.RID == foo.SingleOrid.RID); Assert.IsTrue(fooRetrieved.OridList.Count == foo.OridList.Count); Assert.IsTrue(fooRetrieved.OridList[0].RID == foo.OridList[0].RID); Assert.IsTrue(fooRetrieved.OridList[1].RID == foo.OridList[1].RID); Assert.IsTrue(fooRetrieved.OridList[2].RID == foo.OridList[2].RID); } }