Пример #1
0
 public virtual void Test10()
 {
     NeoDatis.Odb.ODB odb = null;
     try
     {
         odb = Open("inplcae-transaction");
         NeoDatis.Odb.OID oid = odb.Store(new Function("function1"
                                                       ));
         odb.Close();
         odb = Open("inplcae-transaction");
         Function f = (Function)odb.
                      GetObjectFromId(oid);
         f.SetName("function2");
         odb.Store(f);
         odb.Rollback();
         odb.Close();
         odb = Open("inplcae-transaction");
         f   = (Function)odb.GetObjectFromId(oid);
         odb.Close();
         AssertEquals("function1", f.GetName());
     }
     catch (System.Exception)
     {
     }
 }
Пример #2
0
 public virtual void Test1()
 {
     DeleteBase("getid.neodatis");
     NeoDatis.Odb.Test.VO.Login.Function function1 = new NeoDatis.Odb.Test.VO.Login.Function
                                                         ("f1");
     NeoDatis.Odb.Test.VO.Login.Function function2 = new NeoDatis.Odb.Test.VO.Login.Function
                                                         ("f2");
     NeoDatis.Odb.ODB odb = Open("getid.neodatis");
     odb.Store(function1);
     odb.Store(function2);
     NeoDatis.Odb.OID id1 = odb.GetObjectId(function1);
     NeoDatis.Odb.OID id2 = odb.GetObjectId(function2);
     odb.Close();
     odb = Open("getid.neodatis");
     NeoDatis.Odb.Test.VO.Login.Function function1bis = (NeoDatis.Odb.Test.VO.Login.Function
                                                         )odb.GetObjectFromId(id1);
     AssertEquals(function1.GetName(), function1bis.GetName());
     NeoDatis.Odb.Test.VO.Login.Function function2bis = (NeoDatis.Odb.Test.VO.Login.Function
                                                         )odb.GetObjectFromId(id2);
     function2bis.SetName("function 2");
     odb.Store(function2bis);
     NeoDatis.Odb.OID id2bis = odb.GetObjectId(function2bis);
     odb.Close();
     odb = Open("getid.neodatis");
     NeoDatis.Odb.Test.VO.Login.Function function2ter = (NeoDatis.Odb.Test.VO.Login.Function
                                                         )odb.GetObjectFromId(id2);
     AssertEquals("function 2", function2ter.GetName());
     odb.Close();
     DeleteBase("getid.neodatis");
 }
Пример #3
0
        public virtual void Test13()
        {
            if (!isLocal)
            {
                return;
            }
            string baseName = GetBaseName();

            NeoDatis.Odb.ODB odb = null;
            DeleteBase(baseName);
            odb = Open(baseName);
            Function f1 = new Function(
                "function1");
            Function f2 = new Function(
                "function2");
            Function f3 = new Function(
                "function3");

            odb.Store(f1);
            odb.Store(f2);
            odb.Store(f3);
            NeoDatis.Odb.OID idf1 = odb.GetObjectId(f1);
            NeoDatis.Odb.OID idf2 = odb.GetObjectId(f2);
            NeoDatis.Odb.OID idf3 = odb.GetObjectId(f3);
            long             p1   = NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.Dummy.GetEngine(odb).GetObjectReader
                                        ().GetObjectPositionFromItsOid(idf1, true, false);
            long p2 = NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.Dummy.GetEngine(odb).GetObjectReader
                          ().GetObjectPositionFromItsOid(idf2, true, false);
            long p3 = NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.Dummy.GetEngine(odb).GetObjectReader
                          ().GetObjectPositionFromItsOid(idf3, true, false);

            odb.Close();
            try
            {
                odb = Open(baseName);
                f1  = (Function)odb.GetObjectFromId(idf1);
                f2  = (Function)odb.GetObjectFromId(idf2);
                f3  = (Function)odb.GetObjectFromId(idf3);
                odb.Delete(f3);
                odb.Delete(f2);
                odb.Close();
                odb = Open(baseName);
                NeoDatis.Odb.Objects <Function> l = odb.GetObjects <Function>();
                odb.Close();
                AssertEquals(1, l.Count);
            }
            catch (NeoDatis.Odb.ODBRuntimeException e)
            {
                DeleteBase(baseName);
                throw;
            }
            DeleteBase(baseName);
        }
Пример #4
0
        public virtual void Test9()
        {
            string baseName = GetBaseName();

            NeoDatis.Odb.ODB odb = null;
            odb = Open(baseName);
            Function f1 = new Function(
                "function1");
            Function f2 = new Function(
                "function2");
            Function f3 = new Function(
                "function3");

            odb.Store(f1);
            odb.Store(f2);
            odb.Store(f3);
            NeoDatis.Odb.OID id = odb.GetObjectId(f3);
            odb.Close();
            odb = Open(baseName);
            Function f3bis = (Function)
                             odb.GetObjectFromId(id);

            odb.Delete(f3bis);
            odb.Close();
            odb = Open(baseName);
            odb.Store(new Function("last function"));
            odb.Close();
            odb = Open(baseName);
            NeoDatis.Odb.Objects <Function> l = odb.GetObjects <Function>();
            odb.Close();
            AssertEquals(3, l.Count);
        }
Пример #5
0
        public virtual void Test1()
        {
            if (!isLocal && !testNewFeature)
            {
                return;
            }
            NeoDatis.Odb.ODB odb      = null;
            string           baseName = GetBaseName();

            DeleteBase(baseName);
            NeoDatis.Odb.Test.Trigger.MyTriggerBefore myTrigger = new NeoDatis.Odb.Test.Trigger.MyTriggerBefore
                                                                      ();
            try
            {
                odb = Open(baseName);
                odb.AddInsertTrigger(typeof(NeoDatis.Odb.Test.Trigger.SimpleObject), myTrigger);
                NeoDatis.Odb.Test.Trigger.SimpleObject so = new NeoDatis.Odb.Test.Trigger.SimpleObject
                                                                (5);
                NeoDatis.Odb.OID oid = odb.Store(so);
                AssertEquals(6, so.GetId());
                odb.Close();
                odb = Open(baseName);
                NeoDatis.Odb.Test.Trigger.SimpleObject so2 = (NeoDatis.Odb.Test.Trigger.SimpleObject
                                                              )odb.GetObjectFromId(oid);
                AssertEquals(6, so2.GetId());
            }
            finally
            {
                if (odb != null)
                {
                    odb.Close();
                }
            }
            DeleteBase(baseName);
        }
Пример #6
0
 public virtual void TestAndy1()
 {
     NeoDatis.Odb.ODB        odb = Open("test-oid");
     NeoDatis.Odb.Test.Oid.B b1  = new NeoDatis.Odb.Test.Oid.B("b");
     NeoDatis.Odb.Test.Oid.A a1  = new NeoDatis.Odb.Test.Oid.A("a", b1);
     odb.Store(a1);
     NeoDatis.Odb.OID oida = odb.GetObjectId(a1);
     NeoDatis.Odb.OID oidb = odb.GetObjectId(b1);
     odb.Close();
     odb = Open("test-oid");
     NeoDatis.Odb.Test.Oid.A a2 = (NeoDatis.Odb.Test.Oid.A)odb.GetObjectFromId(oida);
     NeoDatis.Odb.Test.Oid.B b2 = (NeoDatis.Odb.Test.Oid.B)odb.GetObjectFromId(oidb);
     odb.Close();
     AssertNotNull(a2);
     AssertNotNull(b2);
     AssertNotNull(a2.GetB());
 }
Пример #7
0
        public virtual void TestAndy2()
        {
            // LogUtil.allOn(true);
            NeoDatis.Odb.ODB        odb = Open("test-oid");
            NeoDatis.Odb.Test.Oid.B b1  = new NeoDatis.Odb.Test.Oid.B("b");
            NeoDatis.Odb.Test.Oid.A a1  = new NeoDatis.Odb.Test.Oid.A("a", b1);
            odb.Store(a1);
            long oida = ((NeoDatis.Odb.OID)odb.GetObjectId(a1)).GetObjectId();
            long oidb = ((NeoDatis.Odb.OID)odb.GetObjectId(b1)).GetObjectId();

            odb.Close();
            odb = Open("test-oid");
            NeoDatis.Odb.Test.Oid.A a2 = (NeoDatis.Odb.Test.Oid.A)odb.GetObjectFromId(new NeoDatis.Odb.Impl.Core.Oid.OdbObjectOID
                                                                                          (oida));
            NeoDatis.Odb.Test.Oid.B b2 = (NeoDatis.Odb.Test.Oid.B)odb.GetObjectFromId(new NeoDatis.Odb.Impl.Core.Oid.OdbObjectOID
                                                                                          (oidb));
            odb.Close();
            AssertNotNull(a2);
            AssertNotNull(b2);
            AssertNotNull(a2.GetB());
        }
Пример #8
0
 public virtual void TestAndy3()
 {
     NeoDatis.Odb.ODB odb = Open("test-oid");
     try
     {
         NeoDatis.Odb.Test.Oid.A a2 = (NeoDatis.Odb.Test.Oid.A)odb.GetObjectFromId(new NeoDatis.Odb.Impl.Core.Oid.OdbObjectOID
                                                                                       (34));
         Fail("Should have thrown Exception");
     }
     catch (System.Exception)
     {
     }
 }
Пример #9
0
        /// <exception cref="System.Exception"></exception>
        public virtual void T1estK1()
        {
            test.DeleteBase("acid1");
            NeoDatis.Odb.ODB odb = test.Open("acid1");
            odb.Store(GetInstance("f1"));
            odb.Store(GetInstance("f2"));
            NeoDatis.Odb.OID oid = odb.Store(GetInstance("f3"));
            odb.Commit();
            object o = odb.GetObjectFromId(oid);

            odb.Delete(o);
            odb.Rollback();
        }
Пример #10
0
        public virtual void Test5()
        {
            DeleteBase("getid.neodatis");
            NeoDatis.Odb.Test.VO.Login.Function function1 = new NeoDatis.Odb.Test.VO.Login.Function
                                                                ("f1");
            NeoDatis.Odb.Test.VO.Login.Function function2 = new NeoDatis.Odb.Test.VO.Login.Function
                                                                ("f2");
            NeoDatis.Odb.ODB odb = Open("getid.neodatis");
            odb.Store(function1);
            odb.Store(function2);
            NeoDatis.Odb.OID id1 = odb.GetObjectId(function1);
            NeoDatis.Odb.OID id2 = odb.GetObjectId(function2);
            odb.Close();
            odb = Open("getid.neodatis");
            long t1 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            NeoDatis.Odb.Test.VO.Login.Function function1bis = (NeoDatis.Odb.Test.VO.Login.Function
                                                                )odb.GetObjectFromId(id1);
            NeoDatis.Odb.Test.VO.Login.Function function2bis = (NeoDatis.Odb.Test.VO.Login.Function
                                                                )odb.GetObjectFromId(id2);
            long t2 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            odb.Close();
            DeleteBase("getid.neodatis");
            AssertEquals(function1.GetName(), function1bis.GetName());
            AssertEquals(function2.GetName(), function2bis.GetName());
            long time = t2 - t1;

            Println(time);
            long acceptableTime = isLocal ? 1 : 17;

            if (time > acceptableTime)
            {
                // ms
                Fail("Getting two objects by oid lasted more than " + acceptableTime + "ms : " +
                     time);
            }
        }
Пример #11
0
 /// <exception cref="System.Exception"></exception>
 public virtual void Test1()
 {
     DeleteBase("test-object-with-oid");
     NeoDatis.Odb.ODB odb = Open("test-object-with-oid");
     NeoDatis.Odb.Test.Other.ObjectWithOid o = new NeoDatis.Odb.Test.Other.ObjectWithOid
                                                   ("15", "test");
     NeoDatis.Odb.OID oid = odb.Store(o);
     odb.Close();
     odb = Open("test-object-with-oid");
     NeoDatis.Odb.Test.Other.ObjectWithOid o2 = (NeoDatis.Odb.Test.Other.ObjectWithOid
                                                 )odb.GetObjectFromId(oid);
     odb.Close();
     AssertEquals(o.GetOid(), o2.GetOid());
     AssertEquals(o.GetName(), o2.GetName());
 }
Пример #12
0
 /// <exception cref="System.Exception"></exception>
 public virtual void Test1()
 {
     DeleteBase("test-nested");
     NeoDatis.Odb.ODB odb = Open("test-nested");
     NeoDatis.Odb.Test.Intropector.Class1 c1 = new NeoDatis.Odb.Test.Intropector.Class1
                                                   ("name1", "name2", "name3");
     NeoDatis.Odb.OID oid = odb.Store(c1);
     odb.Close();
     odb = Open("test-nested");
     NeoDatis.Odb.Test.Intropector.Class1 c11 = (NeoDatis.Odb.Test.Intropector.Class1)
                                                odb.GetObjectFromId(oid);
     AssertEquals(c1.GetName1(), c11.GetName1());
     AssertEquals(c1.GetClass2().GetClass3().GetName3(), c11.GetClass2().GetClass3().GetName3
                      ());
 }
Пример #13
0
 public virtual void TestGetOIDThatDoesNotExist()
 {
     DeleteBase("getid.neodatis");
     NeoDatis.Odb.Test.VO.Login.Function function2 = new NeoDatis.Odb.Test.VO.Login.Function
                                                         ("f2");
     NeoDatis.Odb.ODB odb = Open("getid.neodatis");
     NeoDatis.Odb.OID oid = NeoDatis.Odb.Core.Oid.OIDFactory.BuildObjectOID(49);
     try
     {
         object o = odb.GetObjectFromId(oid);
     }
     catch (System.Exception e)
     {
         odb.Close();
         AssertFalse(e.Message.IndexOf(" does not exist in the database") == -1);
     }
 }
Пример #14
0
        /// <exception cref="System.Exception"></exception>
        public virtual void T1estH1()
        {
            test.DeleteBase("acid1");
            NeoDatis.Odb.ODB odb = test.Open("acid1");
            int size             = 1000;

            NeoDatis.Odb.OID[] oids = new NeoDatis.Odb.OID[size];
            for (int i = 0; i < size; i++)
            {
                oids[i] = odb.Store(GetInstance("f" + i));
                if (simpleObject)
                {
                    NeoDatis.Odb.Test.VO.Login.Function f = (NeoDatis.Odb.Test.VO.Login.Function)odb.
                                                            GetObjectFromId(oids[i]);
                    f.SetName("function " + i);
                    odb.Store(f);
                    odb.Delete(f);
                    oids[i] = odb.Store(f);
                    odb.Delete(f);
                    oids[i] = odb.Store(f);
                    odb.Delete(f);
                    oids[i] = odb.Store(f);
                }
                else
                {
                    NeoDatis.Odb.Test.VO.Login.User f = (NeoDatis.Odb.Test.VO.Login.User)odb.GetObjectFromId
                                                            (oids[i]);
                    f.SetName("function " + i);
                    odb.Store(f);
                    odb.Delete(f);
                    oids[i] = odb.Store(f);
                    odb.Delete(f);
                    oids[i] = odb.Store(f);
                    odb.Delete(f);
                    oids[i] = odb.Store(f);
                }
            }
            for (int i = 0; i < size; i++)
            {
                object o = odb.GetObjectFromId(oids[i]);
                odb.Delete(o);
            }
        }
Пример #15
0
        public virtual void Test7()
        {
            DeleteBase("getid.neodatis");
            int size = isLocal ? 10001 : 1000;

            NeoDatis.Odb.ODB   odb  = Open("getid.neodatis");
            NeoDatis.Odb.OID[] oids = new NeoDatis.Odb.OID[size];
            for (int i = 0; i < size; i++)
            {
                oids[i] = odb.Store(GetInstance(i));
            }
            odb.Close();
            odb = Open("getid.neodatis");
            long t1 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            for (int i = 0; i < size; i++)
            {
                NeoDatis.Odb.Test.VO.Login.User u = (NeoDatis.Odb.Test.VO.Login.User)odb.GetObjectFromId
                                                        (oids[i]);
                AssertEquals("kiko" + i, u.GetName());
            }
            long t2 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            odb.Close();
            DeleteBase("getid.neodatis");
            long   time           = t2 - t1;
            double timeForEachGet = (double)time / (double)size;
            double acceptableTime = isLocal ? 0.086 : 1.6;

            // 0.1561843815618438
            Println("time for each get = " + timeForEachGet + " - Total time for " + size + " objects = "
                    + time);
            if (testPerformance && timeForEachGet > acceptableTime)
            {
                // ms
                Println("time for each get = " + timeForEachGet + " - Total time for " + size + " objects = "
                        + time);
                Fail("Getting " + size + " complex objects by oid lasted more than " + acceptableTime
                     + "ms : " + timeForEachGet);
            }
        }
Пример #16
0
        /// <exception cref="System.IO.IOException"></exception>
        /// <exception cref="System.Exception"></exception>
        public virtual void Test2()
        {
            DeleteBase("valuesSubList2");
            NeoDatis.Odb.ODB odb = Open("valuesSubList2");
            NeoDatis.Odb.Test.Query.Values.Handler handler = new NeoDatis.Odb.Test.Query.Values.Handler
                                                                 ();
            for (int i = 0; i < 500; i++)
            {
                handler.AddParameter(new NeoDatis.Odb.Test.Query.Values.Parameter("test " + i, "value "
                                                                                  + i));
            }
            NeoDatis.Odb.OID oid = odb.Store(handler);
            odb.Close();
            odb = Open("valuesSubList2");
            NeoDatis.Odb.Test.Query.Values.Handler h = (NeoDatis.Odb.Test.Query.Values.Handler
                                                        )odb.GetObjectFromId(oid);
            Println("size of list = " + h.GetListOfParameters().Count);
            long start = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            NeoDatis.Odb.Values values = odb.GetValues(new NeoDatis.Odb.Impl.Core.Query.Values.ValuesCriteriaQuery
                                                           (typeof(NeoDatis.Odb.Test.Query.Values.Handler)).Sublist("parameters", "sub", 490
                                                                                                                    , 5, true).Size("parameters", "size"));
            long end = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            Println("time to load sublist of 5 itens from 40000 : " + (end - start));
            Println(values);
            NeoDatis.Odb.ObjectValues ov      = values.NextValues();
            System.Collections.IList  sublist = (System.Collections.IList)ov.GetByAlias("sub");
            AssertEquals(5, sublist.Count);
            long size = (long)ov.GetByAlias("size");

            AssertEquals(500, size);
            NeoDatis.Odb.Test.Query.Values.Parameter p = (NeoDatis.Odb.Test.Query.Values.Parameter
                                                          )sublist[0];
            AssertEquals("value 490", p.GetValue());
            NeoDatis.Odb.Test.Query.Values.Parameter p2 = (NeoDatis.Odb.Test.Query.Values.Parameter
                                                           )sublist[4];
            AssertEquals("value 494", p2.GetValue());
            odb.Close();
        }
Пример #17
0
        /// <exception cref="System.Exception"></exception>
        public virtual void Test6()
        {
            NeoDatis.Odb.ODB odb      = null;
            string           baseName = GetBaseName();

            odb = Open(baseName);
            NeoDatis.Odb.Test.VO.Login.Function f = new NeoDatis.Odb.Test.VO.Login.Function("function1"
                                                                                            );
            odb.Store(f);
            NeoDatis.Odb.OID id = odb.GetObjectId(f);
            odb.Commit();
            try
            {
                odb.Delete(f);
                odb.GetObjectFromId(id);
                Fail("The object has been deleted, the id should have been marked as deleted");
            }
            catch (NeoDatis.Odb.ODBRuntimeException)
            {
                odb.Close();
                DeleteBase("t-delete1.neodatis");
            }
        }
Пример #18
0
        public virtual void Test7()
        {
            string baseName = GetBaseName();

            NeoDatis.Odb.ODB odb = null;
            odb = Open(baseName);
            Function f1 = new Function(
                "function1");
            Function f2 = new Function(
                "function2");
            Function f3 = new Function(
                "function3");

            odb.Store(f1);
            odb.Store(f2);
            odb.Store(f3);
            NeoDatis.Odb.OID id = odb.GetObjectId(f3);
            odb.Close();
            try
            {
                odb = Open(baseName);
                Function f3bis = (Function)
                                 odb.GetObjectFromId(id);
                odb.Delete(f3bis);
                odb.Close();
                odb = Open(baseName);
                NeoDatis.Odb.Objects <Function> l = odb.GetObjects <Function>();
                odb.Close();
                AssertEquals(2, l.Count);
            }
            catch (NeoDatis.Odb.ODBRuntimeException)
            {
                odb.Close();
                DeleteBase(baseName);
            }
        }
Пример #19
0
        /// <exception cref="System.Exception"></exception>
        public virtual void T1estL1()
        {
            test.DeleteBase("acid1");
            NeoDatis.Odb.ODB odb = test.Open("acid1");
            odb.Store(GetInstance("f1"));
            odb.Store(GetInstance("f2"));
            NeoDatis.Odb.OID oid = odb.Store(GetInstance("f3"));
            odb.Commit();
            object o = odb.GetObjectFromId(oid);

            if (simpleObject)
            {
                NeoDatis.Odb.Test.VO.Login.Function f = (NeoDatis.Odb.Test.VO.Login.Function)o;
                f.SetName("flksjdfjs;dfsljflsjflksjfksjfklsdjfksjfkalsjfklsdjflskd");
                odb.Store(f);
            }
            else
            {
                NeoDatis.Odb.Test.VO.Login.User f = (NeoDatis.Odb.Test.VO.Login.User)o;
                f.SetName("flksjdfjs;dfsljflsjflksjfksjfklsdjfksjfkalsjfklsdjflskd");
                odb.Store(f);
            }
            odb.Rollback();
        }
Пример #20
0
        /// <exception cref="System.Exception"></exception>
        public virtual void TestObjectVersionWithoutClose()
        {
            DeleteBase("extd");
            NeoDatis.Odb.ODB odb = Open("extd");
            int  size            = 1000;
            long updateDate      = 0;
            long creationDate    = 0;

            NeoDatis.Odb.OID oid = odb.Store(new NeoDatis.Odb.Test.VO.Login.Function("f"));
            odb.Close();
            odb = Open("extd");
            Java.Lang.Thread.Sleep(100);
            for (int i = 0; i < size; i++)
            {
                // odb = open("ext");
                NeoDatis.Odb.Test.VO.Login.Function f = (NeoDatis.Odb.Test.VO.Login.Function)odb.
                                                        GetObjectFromId(oid);
                int version = odb.Ext().GetObjectVersion(oid);
                // System.out.println("i="+i + " - v="+ version+ " - oid="+oid);
                AssertEquals(i + 1, version);
                f.SetName("f" + i);
                // update the object, should increase the version number
                odb.Store(f);
                odb.Commit();
            }
            odb.Close();
        }
Пример #21
0
        /// <exception cref="System.Exception"></exception>
        public virtual void TestConcurrentObjectVersion3()
        {
            if (isLocal || (useSameVmOptimization && !testNewFeature))
            {
                return;
            }
            // LogUtil.allOn(true);
            DeleteBase("exta1");
            NeoDatis.Odb.ODB odb = Open("exta1");
            NeoDatis.Odb.OID oid = odb.Store(new NeoDatis.Odb.Test.VO.Login.Function("f1"));
            int version          = odb.Ext().GetObjectVersion(oid);

            Println(version);
            odb.Close();
            int nbThreads = 100;

            NeoDatis.Odb.ODB[] odbs = new NeoDatis.Odb.ODB[nbThreads];
            int[] versions          = new int[nbThreads];
            NeoDatis.Odb.Test.VO.Login.Function[] functions = new NeoDatis.Odb.Test.VO.Login.Function
                                                              [nbThreads];
            // Open all Odbs and get the object
            for (int i = 0; i < nbThreads; i++)
            {
                odbs[i]      = Open("exta1");
                versions[i]  = odbs[i].Ext().GetObjectVersion(oid);
                functions[i] = (NeoDatis.Odb.Test.VO.Login.Function)odbs[i].GetObjectFromId(oid);
                AssertEquals(1, versions[i]);
                AssertEquals("f1", functions[i].GetName());
            }
            // Open all Odbs and get the object
            for (int i = 0; i < nbThreads; i++)
            {
                functions[i].SetName("function " + i);
                odbs[i].Store(functions[i]);
                versions[i] = odbs[i].Ext().GetObjectVersion(oid);
                Println("Function with name " + functions[i].GetName() + " has version " + versions
                        [i]);
                odbs[i].Close();
                AssertEquals(i + 2, versions[i]);
                // Just to check the version number after commit
                odb = Open("exta1");
                int committedVersionNumber = odb.Ext().GetObjectVersion(oid);
                Println("After commit = " + committedVersionNumber);
                AssertEquals(i + 2, committedVersionNumber);
                odb.Close();
            }
            NeoDatis.Odb.ODB odb4 = Open("exta1");
            // Check committed object value
            NeoDatis.Odb.Test.VO.Login.Function f4 = (NeoDatis.Odb.Test.VO.Login.Function)odb4
                                                     .GetObjectFromId(oid);
            AssertEquals("function " + (nbThreads - 1), f4.GetName());
            AssertEquals(nbThreads + 1, odb4.Ext().GetObjectVersion(oid));
            odb4.Close();
        }
Пример #22
0
 public virtual void Test1()
 {
     if (!isLocal)
     {
         return;
     }
     DeleteBase("unconnected");
     NeoDatis.Odb.ODB odb = Open("unconnected");
     NeoDatis.Odb.OID oid = odb.Store(new NeoDatis.Odb.Test.VO.Login.Function("f1"));
     odb.Close();
     Println("Oid=" + oid);
     odb = Open("unconnected");
     NeoDatis.Odb.Test.VO.Login.Function f2 = (NeoDatis.Odb.Test.VO.Login.Function)odb
                                              .GetObjectFromId(oid);
     f2.SetName("New Function");
     odb.Store(f2);
     NeoDatis.Odb.Core.Layers.Layer3.IStorageEngine storageEngine = NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.Dummy
                                                                    .GetEngine(odb);
     // retrieve the class info to check connected and unconnected zone
     NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfo ci = storageEngine.GetSession(true
                                                                                  ).GetMetaModel().GetClassInfo(typeof(NeoDatis.Odb.Test.VO.Login.Function).FullName
                                                                                                                , true);
     odb.Close();
     AssertEquals(1, ci.GetCommitedZoneInfo().GetNbObjects());
     AssertNotNull(ci.GetCommitedZoneInfo().first);
     AssertNotNull(ci.GetCommitedZoneInfo().last);
     AssertEquals(0, ci.GetUncommittedZoneInfo().GetNbObjects());
     AssertNull(ci.GetUncommittedZoneInfo().first);
     AssertNull(ci.GetUncommittedZoneInfo().last);
     odb = Open("unconnected");
     AssertEquals(1, odb.GetObjects <Function>().Count
                  );
     odb.Close();
 }
Пример #23
0
        /// <exception cref="System.Exception"></exception>
        public virtual void TestObjectVersionWithoutClose2()
        {
            DeleteBase("ext2");
            NeoDatis.Odb.ODB odb = Open("ext2");
            int  size            = 1000;
            long updateDate      = 0;
            long creationDate    = 0;

            // LogUtil.allOn(true);
            NeoDatis.Odb.OID oid = odb.Store(new NeoDatis.Odb.Test.VO.Login.Function("f"));
            odb.Close();
            odb = Open("ext2");
            Java.Lang.Thread.Sleep(100);
            // LogUtil.allOn(true);
            for (int i = 0; i < size; i++)
            {
                // odb = open("ext");
                NeoDatis.Odb.Test.VO.Login.Function f = (NeoDatis.Odb.Test.VO.Login.Function)odb.
                                                        GetObjectFromId(oid);
                f.SetName("f" + i);
                odb.Store(f);
                odb.Commit();
            }
            odb.Close();
        }
Пример #24
0
        /// <exception cref="System.Exception"></exception>
        public virtual void TestConcurrentObjectVersion2()
        {
            // LogUtil.allOn(true);
            int port = Port + 8;

            NeoDatis.Tool.IOUtil.DeleteFile(Directory + "exta1");
            NeoDatis.Odb.ODBServer server = NeoDatis.Odb.ODBFactory.OpenServer(port);
            server.StartServer(true);
            NeoDatis.Odb.ODB odb = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory
                                                                      + "exta1");
            NeoDatis.Odb.OID oid = odb.Store(new NeoDatis.Odb.Test.VO.Login.Function("f1"));
            int version          = odb.Ext().GetObjectVersion(oid);

            Println(version);
            odb.Close();
            int nbThreads = 100;

            NeoDatis.Odb.ODB[] odbs = new NeoDatis.Odb.ODB[nbThreads];
            int[] versions          = new int[nbThreads];
            NeoDatis.Odb.Test.VO.Login.Function[] functions = new NeoDatis.Odb.Test.VO.Login.Function
                                                              [nbThreads];
            // Open all Odbs and get the object
            for (int i = 0; i < nbThreads; i++)
            {
                odbs[i] = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory + "exta1"
                                                             );
                versions[i]  = odbs[i].Ext().GetObjectVersion(oid);
                functions[i] = (NeoDatis.Odb.Test.VO.Login.Function)odbs[i].GetObjectFromId(oid);
                AssertEquals(1, versions[i]);
                AssertEquals("f1", functions[i].GetName());
            }
            // Open all Odbs and get the object
            for (int i = 0; i < nbThreads; i++)
            {
                functions[i].SetName("function " + i);
                odbs[i].Store(functions[i]);
                versions[i] = odbs[i].Ext().GetObjectVersion(oid);
                Println("Function with name " + functions[i].GetName() + " has version " + versions
                        [i]);
                odbs[i].Close();
                AssertEquals(i + 2, versions[i]);
                // Just to check the version number after commit
                odb = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory + "exta1");
                int committedVersionNumber = odb.Ext().GetObjectVersion(oid);
                Println("After commit = " + committedVersionNumber);
                AssertEquals(i + 2, committedVersionNumber);
                odb.Close();
            }
            NeoDatis.Odb.ODB odb4 = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory
                                                                       + "exta1");
            // Check committed object value
            NeoDatis.Odb.Test.VO.Login.Function f4 = (NeoDatis.Odb.Test.VO.Login.Function)odb4
                                                     .GetObjectFromId(oid);
            AssertEquals("function " + (nbThreads - 1), f4.GetName());
            AssertEquals(nbThreads + 1, odb4.Ext().GetObjectVersion(oid));
            odb4.Close();
            server.Close();
        }
Пример #25
0
        /// <exception cref="System.Exception"></exception>
        public virtual void TestConcurrentObjectVersion()
        {
            // LogUtil.allOn(true);
            int port = Port + 8;

            NeoDatis.Tool.IOUtil.DeleteFile(Directory + "exta1");
            NeoDatis.Odb.ODBServer server = NeoDatis.Odb.ODBFactory.OpenServer(port);
            server.StartServer(true);
            NeoDatis.Odb.ODB odb = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory
                                                                      + "exta1");
            NeoDatis.Odb.OID oid = odb.Store(new NeoDatis.Odb.Test.VO.Login.Function("f1"));
            int version          = odb.Ext().GetObjectVersion(oid);

            Println(version);
            odb.Close();
            NeoDatis.Odb.ODB odb1 = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory
                                                                       + "exta1");
            NeoDatis.Odb.ODB odb2 = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory
                                                                       + "exta1");
            int v1 = odb1.Ext().GetObjectVersion(oid);
            int v2 = odb2.Ext().GetObjectVersion(oid);

            AssertEquals(1, v1);
            AssertEquals(1, v2);
            Println("v1=" + v1 + "- v2=" + v2);
            NeoDatis.Odb.Test.VO.Login.Function f1 = (NeoDatis.Odb.Test.VO.Login.Function)odb1
                                                     .GetObjectFromId(oid);
            NeoDatis.Odb.Test.VO.Login.Function f2 = (NeoDatis.Odb.Test.VO.Login.Function)odb2
                                                     .GetObjectFromId(oid);
            f1.SetName("function 1");
            odb1.Store(f1);
            v1 = odb1.Ext().GetObjectVersion(oid);
            Println("after update odb1 , v1=" + v1);
            odb1.Close();
            NeoDatis.Odb.ODB odb3 = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory
                                                                       + "exta1");
            // Check committed object value
            NeoDatis.Odb.Test.VO.Login.Function f3 = (NeoDatis.Odb.Test.VO.Login.Function)odb3
                                                     .GetObjectFromId(oid);
            AssertEquals(f1.GetName(), f3.GetName());
            AssertEquals(2, odb3.Ext().GetObjectVersion(oid));
            odb3.Close();
            AssertEquals(2, v1);
            f2.SetName("function 2");
            odb2.Store(f2);
            v2 = odb2.Ext().GetObjectVersion(oid);
            Println("after update odb2 , v2=" + v2);
            odb2.Close();
            AssertEquals(3, v2);
            NeoDatis.Odb.ODB odb4 = NeoDatis.Odb.ODBFactory.OpenClient("localhost", port, Directory
                                                                       + "exta1");
            // Check committed object value
            NeoDatis.Odb.Test.VO.Login.Function f4 = (NeoDatis.Odb.Test.VO.Login.Function)odb4
                                                     .GetObjectFromId(oid);
            AssertEquals(f2.GetName(), f4.GetName());
            AssertEquals(3, odb4.Ext().GetObjectVersion(oid));
            odb4.Close();
            server.Close();
        }
Пример #26
0
        public virtual void Test6()
        {
            DeleteBase("getid.neodatis");
            int size = isLocal ? 20001 : 2001;

            NeoDatis.Odb.ODB   odb  = Open("getid.neodatis");
            NeoDatis.Odb.OID[] oids = new NeoDatis.Odb.OID[size];
            for (int i = 0; i < size; i++)
            {
                oids[i] = odb.Store(new NeoDatis.Odb.Test.VO.Login.Function("function " + i));
            }
            odb.Close();
            odb = Open("getid.neodatis");
            long t1 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            for (int i = 0; i < size; i++)
            {
                NeoDatis.Odb.Test.VO.Login.Function f = (NeoDatis.Odb.Test.VO.Login.Function)odb.
                                                        GetObjectFromId(oids[i]);
                AssertEquals("function " + i, f.GetName());
                if (i % 3000 == 0)
                {
                    Println(i + "/" + size);
                }
            }
            long t2 = NeoDatis.Tool.Wrappers.OdbTime.GetCurrentTimeInMs();

            odb.Close();
            DeleteBase("getid.neodatis");
            long   time           = t2 - t1;
            double timeForEachGet = (double)time / (double)size;
            double acceptableTime = isLocal ? 0.022 : 0.5;

            // 0.04294785260736963
            Println("time for each get = " + time + "/" + size + " = " + timeForEachGet);
            if (testPerformance && timeForEachGet > acceptableTime)
            {
                // ms
                Fail("Getting " + size + " simple objects by oid lasted more than " + acceptableTime
                     + "ms : " + timeForEachGet);
            }
        }
Пример #27
0
 /// <exception cref="System.Exception"></exception>
 public virtual void TestGetObjectId()
 {
     DeleteBase("extb");
     NeoDatis.Odb.ODB odb = null;
     odb = Open("extb");
     NeoDatis.Odb.Test.VO.Login.Function f = new NeoDatis.Odb.Test.VO.Login.Function("Test Function"
                                                                                     );
     NeoDatis.Odb.OID         oid    = odb.Store(f);
     NeoDatis.Odb.ExternalOID extOid = odb.Ext().GetObjectExternalOID(f);
     AssertEquals(oid.GetObjectId(), extOid.GetObjectId());
     AssertEquals(odb.Ext().GetDatabaseId(), extOid.GetDatabaseId());
     odb.Close();
     odb = Open("extb");
     // Getting object via external oid
     NeoDatis.Odb.Test.VO.Login.Function f2 = (NeoDatis.Odb.Test.VO.Login.Function)odb
                                              .GetObjectFromId(extOid);
     NeoDatis.Odb.OID lastOid = odb.GetObjectId(f2);
     AssertEquals(oid, lastOid);
     AssertEquals(f.GetName(), f2.GetName());
     odb.Close();
 }
Пример #28
0
        /// <exception cref="System.Exception"></exception>
        public virtual void TestObjectVersion()
        {
            DeleteBase("extc");
            NeoDatis.Odb.ODB odb = Open("extc");
            int  size            = 1000;
            long updateDate      = 0;
            long creationDate    = 0;

            NeoDatis.Odb.OID oid = odb.Store(new NeoDatis.Odb.Test.VO.Login.Function("f"));
            odb.Close();
            Java.Lang.Thread.Sleep(100);
            // LogUtil.allOn(true);
            for (int i = 0; i < size; i++)
            {
                odb = Open("extc");
                NeoDatis.Odb.Test.VO.Login.Function f = (NeoDatis.Odb.Test.VO.Login.Function)odb.
                                                        GetObjectFromId(oid);
                int version = odb.Ext().GetObjectVersion(oid);
                // System.out.println("i="+i + " - v="+ version+ " - oid="+oid);
                updateDate   = odb.Ext().GetObjectUpdateDate(oid);
                creationDate = odb.Ext().GetObjectCreationDate(oid);
                f.SetName(f.GetName() + "-" + i);
                // update the object, should increase the version number
                odb.Store(f);
                odb.Close();
                AssertEquals(i + 1, version);
                // System.out.println(creationDate + " - "+ updateDate+ "- "+
                // OdbTime.getCurrentTimeInMs());
                // in first iteration, creation & update date may be equal
                if (i > 0)
                {
                    AssertTrue(creationDate < updateDate);
                }
            }
        }
Пример #29
0
        public virtual void Test1()
        {
            string baseName = GetBaseName();

            Println(baseName);
            string currentEncoding = NeoDatis.Odb.OdbConfiguration.GetDatabaseCharacterEncoding
                                         ();

            NeoDatis.Odb.OdbConfiguration.SetDatabaseCharacterEncoding("ISO8859-5");
            NeoDatis.Odb.ODB odb = null;
            try
            {
                odb = Open(baseName);
                string nameWithCyrillicCharacters     = "\u0410 \u0430 \u0431 \u0448 \u0429";
                NeoDatis.Odb.Test.VO.Login.Function f = new NeoDatis.Odb.Test.VO.Login.Function(nameWithCyrillicCharacters
                                                                                                );
                NeoDatis.Odb.OID oid = odb.Store(f);
                odb.Close();
                Println(f);
                odb = Open(baseName);
                NeoDatis.Odb.Test.VO.Login.Function f2 = (NeoDatis.Odb.Test.VO.Login.Function)odb
                                                         .GetObjectFromId(oid);
                odb.Close();
                AssertEquals(nameWithCyrillicCharacters, f2.GetName());
                AssertEquals('\u0410', f2.GetName()[0]);
                AssertEquals('\u0430', f2.GetName()[2]);
                AssertEquals('\u0431', f2.GetName()[4]);
                AssertEquals('\u0448', f2.GetName()[6]);
                AssertEquals('\u0429', f2.GetName()[8]);
            }
            finally
            {
                NeoDatis.Odb.OdbConfiguration.SetDatabaseCharacterEncoding(currentEncoding);
            }
        }
Пример #30
0
        public virtual void Test2_ClientServer()
        {
            string baseName = GetBaseName();

            Println(baseName);
            string currentEncoding = NeoDatis.Odb.OdbConfiguration.GetDatabaseCharacterEncoding
                                         ();

            NeoDatis.Odb.OdbConfiguration.SetDatabaseCharacterEncoding("ISO8859-5");
            NeoDatis.Odb.ODBServer server = null;
            try
            {
                server = NeoDatis.Odb.ODBFactory.OpenServer(NeoDatis.Odb.Test.ODBTest.PORT + 1);
                server.AddBase(baseName, baseName);
                server.StartServer(true);
                Thread.Sleep(200);
                NeoDatis.Odb.ODB odb = NeoDatis.Odb.ODBFactory.OpenClient("localhost", NeoDatis.Odb.Test.ODBTest
                                                                          .PORT + 1, baseName);
                string nameWithCyrillicCharacters     = "\u0410 \u0430 \u0431 \u0448 \u0429";
                NeoDatis.Odb.Test.VO.Login.Function f = new NeoDatis.Odb.Test.VO.Login.Function(nameWithCyrillicCharacters
                                                                                                );
                NeoDatis.Odb.OID oid = odb.Store(f);
                odb.Close();
                Println(f);
                odb = NeoDatis.Odb.ODBFactory.OpenClient("localhost", NeoDatis.Odb.Test.ODBTest.PORT
                                                         + 1, baseName);
                NeoDatis.Odb.Test.VO.Login.Function f2 = (NeoDatis.Odb.Test.VO.Login.Function)odb
                                                         .GetObjectFromId(oid);
                odb.Close();
                AssertEquals(nameWithCyrillicCharacters, f2.GetName());
                AssertEquals('\u0410', f2.GetName()[0]);
                AssertEquals('\u0430', f2.GetName()[2]);
                AssertEquals('\u0431', f2.GetName()[4]);
                AssertEquals('\u0448', f2.GetName()[6]);
                AssertEquals('\u0429', f2.GetName()[8]);
            }
            finally
            {
                NeoDatis.Odb.OdbConfiguration.SetDatabaseCharacterEncoding(currentEncoding);
                if (server != null)
                {
                    server.Close();
                }
            }
        }