コード例 #1
0
 public virtual void TestComplexInstance()
 {
     DeleteBase("t-complex-instance.ndb");
     var odb = Open("t-complex-instance.ndb");
     var login = new VO.Login.Function("login");
     var logout = new VO.Login.Function("logout");
     var functions = new List<VO.Login.Function>();
     functions.Add(login);
     functions.Add(logout);
     var profile = new Profile("profile1", functions);
     var user = new User("oliver", "*****@*****.**", profile);
     var user22 = new User("oliver2", "*****@*****.**", profile);
     odb.Store(user);
     odb.Store(user22);
     odb.Close();
     odb = Open("t-complex-instance.ndb");
     var query = odb.Query<User>();
     var l = query.Execute<User>(true);
     var user2 = l.GetFirst();
     // println("#### " + l.size() + " : " + l);
     AssertEquals(user.GetName(), user2.GetName());
     AssertEquals(user.GetEmail(), user2.GetEmail());
     AssertEquals(user.GetProfile().GetName(), user2.GetProfile().GetName());
     AssertEquals(user.GetProfile().GetFunctions()[0].ToString(), user2.GetProfile().GetFunctions()[0].ToString());
     odb.Close();
     DeleteBase("t-complex-instance.ndb");
 }
コード例 #2
0
ファイル: TestCriteriaQuery3.cs プロジェクト: danfma/NDB
        public virtual void TestCriteriaQueryQueryWithObject()
        {
            var baseName = GetBaseName();
            Init(baseName);
            var odb = Open(baseName);
            var p0 = new Profile("profileCust0");
            p0.AddFunction(null);
            p0.AddFunction(new VO.Login.Function("f1"));
            p0.AddFunction(new VO.Login.Function("f2"));
            var p1 = new Profile("profileCust1");
            p1.AddFunction(null);
            p1.AddFunction(new VO.Login.Function("f12"));
            p1.AddFunction(new VO.Login.Function("f22"));
            var user = new User("The user", "themail", p0);
            var user2 = new User("The user2", "themail2", p1);
            odb.Store(user);
            odb.Store(user2);
            odb.Close();
            odb = Open(baseName);
            var criteriaQuery = odb.Query<Profile>();
            criteriaQuery.Descend("name").Constrain((object) "profileCust0").Equal();
            var pp = criteriaQuery.Execute<Profile>().GetFirst();

            var query = odb.Query<User>();
            query.Descend("profile").Constrain(pp).Identity();
            var l = query.Execute<User>();
            AssertEquals(1, l.Count());
            user = l.GetFirst();
            AssertEquals("The user", user.GetName());
            odb.Close();
        }
コード例 #3
0
ファイル: TestNullObject.cs プロジェクト: spolnik/ndatabase
 public virtual void Test1()
 {
     DeleteBase("null.ndb");
     var odb = Open("null.ndb");
     var user1 = new User("oli", "oli@sdsadf", null);
     var user2 = new User("karine", "karine@sdsadf", null);
     var user3 = new User(null, null, null);
     odb.Store(user1);
     odb.Store(user2);
     odb.Store(user3);
     odb.Close();
     odb = Open("null.ndb");
     var query = odb.Query<User>();
     var l = query.Execute<User>(true);
     AssertEquals(3, l.Count);
     user1 = l.Next();
     AssertEquals("oli", user1.GetName());
     AssertEquals("oli@sdsadf", user1.GetEmail());
     AssertEquals(null, user1.GetProfile());
     user2 = l.Next();
     AssertEquals("karine", user2.GetName());
     AssertEquals("karine@sdsadf", user2.GetEmail());
     AssertEquals(null, user2.GetProfile());
     user3 = l.Next();
     AssertEquals(null, user3.GetName());
     AssertEquals(null, user3.GetEmail());
     AssertEquals(null, user3.GetProfile());
     odb.Close();
     DeleteBase("null.ndb");
 }
コード例 #4
0
ファイル: TestResistance1.cs プロジェクト: danfma/NDB
 public virtual void Test1WithoutCommit()
 {
     var stopWatch = new StopWatch();
     stopWatch.Start();
     var size = 10000;
     var size2 = 5000;
     var nbFunctions = 10;
     DeleteBase(FileName);
     var odb = Open(FileName);
     var f1 = new VO.Login.Function("function 1");
     // Create Objects
     for (var i = 0; i < size; i++)
     {
         var p = new Profile("profile number " + i, f1);
         for (var j = 0; j < nbFunctions; j++)
             p.AddFunction(new VO.Login.Function(" inner function of profile : number " + i + " - " + j));
         var user = new User("user name " + i, "user email " + i, p);
         odb.Store(user);
     }
     Println("created");
     // Updates 10 times the objects
     var query = odb.Query<User>();
     var objects = query.Execute<User>();
     for (var k = 0; k < 10; k++)
     {
         objects.Reset();
         for (var i = 0; i < size2; i++)
         {
             var user = objects.Next();
             user.GetProfile().SetName(user.GetProfile().GetName() + "-updated");
             odb.Store(user);
         }
     }
     Println("updated");
     // Delete the rest of the objects
     for (var i = size2; i < size; i++)
         odb.Delete(objects.Next());
     Println("deleted");
     // Check object count
     var query1 = odb.Query<User>();
     objects = query1.Execute<User>();
     AssertEquals(size2, objects.Count);
     // Check data of the objects
     var a = 0;
     while (objects.HasNext())
     {
         var user = objects.Next();
         AssertEquals("user name " + a, user.GetName());
         AssertEquals("user email " + a, user.GetEmail());
         AssertEquals(
             "profile number " + a +
             "-updated-updated-updated-updated-updated-updated-updated-updated-updated-updated",
             user.GetProfile().GetName());
         a++;
     }
     Println("checked");
     for (var k = 0; k < 10; k++)
     {
         objects.Reset();
         for (var i = 0; i < size2; i++)
         {
             var user = objects.Next();
             user.GetProfile().SetName(user.GetProfile().GetName() + "-updated" + "-");
             odb.Store(user);
         }
     }
     Println("re-updated");
     var query2 = odb.Query<User>();
     objects = query2.Execute<User>();
     var engine = ((global::NDatabase.Odb)odb).GetStorageEngine();
     var uncommited =
         engine.GetSession().GetMetaModel().GetClassInfo(typeof (User).FullName, true).UncommittedZoneInfo;
     CIZoneInfo commited =
         engine.GetSession().GetMetaModel().GetClassInfo(typeof (User).FullName, true).CommitedZoneInfo;
     Println("Before commit : uncommited=" + uncommited);
     Println("Before commit : commited=" + commited);
     a = 0;
     while (objects.HasNext())
     {
         // println("a="+a);
         odb.Delete(objects.Next());
         a++;
     }
     AssertEquals(size2, a);
     var query3 = odb.Query<User>();
     AssertEquals(0, query3.Execute<User>().Count);
     AssertEquals(0, odb.Query<User>().Count());
     Println("deleted");
     odb.Close();
     stopWatch.End();
     Println("Total time 2 = " + stopWatch.GetDurationInMiliseconds());
     if (stopWatch.GetDurationInMiliseconds() > 108438)
         Fail("time is > than " + 108438 + " = " + stopWatch.GetDurationInMiliseconds());
 }
コード例 #5
0
ファイル: TestResistance1.cs プロジェクト: danfma/NDB
 public virtual void Test1WithCommit()
 {
     var stopWatch = new StopWatch();
     stopWatch.Start();
     var size = 10000;
     var size2 = 5000;
     var nbFunctions = 2;
     DeleteBase(FileName);
     var odb = Open(FileName);
     var f1 = new VO.Login.Function("function 1");
     // Create Objects
     for (var i = 0; i < size; i++)
     {
         var p = new Profile("profile number " + i, f1);
         for (var j = 0; j < nbFunctions; j++)
             p.AddFunction(new VO.Login.Function(" inner function of profile : number " + i + " - " + j));
         var user = new User("user name " + i, "user email " + i, p);
         odb.Store(user);
         if (i % 100 == 0)
         {
         }
     }
     // println("insert " + i);
     odb.Close();
     Println("created");
     // Updates 10 times the objects
     odb = Open(FileName);
     var query = odb.Query<User>();
     var objects = query.Execute<User>();
     Println("got the object " + objects.Count);
     for (var k = 0; k < 10; k++)
     {
         objects.Reset();
         var start = OdbTime.GetCurrentTimeInMs();
         for (var i = 0; i < size2; i++)
         {
             var user = objects.Next();
             user.GetProfile().SetName(user.GetProfile().GetName() + "-updated");
             odb.Store(user);
             if (i % 100 == 0)
             {
             }
         }
         // println("update " + i + " - " + k);
         Println("Update " + k + " - " + (OdbTime.GetCurrentTimeInMs() - start) + " ms");
     }
     Println("updated");
     // Delete the rest of the objects
     for (var i = size2; i < size; i++)
     {
         odb.Delete(objects.Next());
         if (i % 100 == 0)
             Println("delete " + i);
     }
     Println("deleted");
     odb.Close();
     // Check object count
     odb = Open(FileName);
     var query1 = odb.Query<User>();
     objects = query1.Execute<User>();
     AssertEquals(size2, objects.Count);
     // Check data of the objects
     var a = 0;
     while (objects.HasNext())
     {
         var user = objects.Next();
         AssertEquals("user name " + a, user.GetName());
         AssertEquals("user email " + a, user.GetEmail());
         AssertEquals(
             "profile number " + a +
             "-updated-updated-updated-updated-updated-updated-updated-updated-updated-updated",
             user.GetProfile().GetName());
         a++;
     }
     Println("checked");
     for (var k = 0; k < 10; k++)
     {
         objects.Reset();
         for (var i = 0; i < size2; i++)
         {
             var user = objects.Next();
             user.GetProfile().SetName(user.GetProfile().GetName() + "-updated" + "-");
             odb.Store(user);
         }
     }
     Println("re-updated");
     odb.Close();
     // delete objects
     odb = Open(FileName);
     var query2 = odb.Query<User>();
     objects = query2.Execute<User>();
     a = 0;
     while (objects.HasNext())
     {
         odb.Delete(objects.Next());
         a++;
     }
     AssertEquals(size2, a);
     odb.Close();
     odb = Open(FileName);
     var query3 = odb.Query<User>();
     AssertEquals(0, query3.Execute<User>().Count);
     AssertEquals(0, odb.Query<User>().Count());
     Println("deleted");
     odb.Close();
     stopWatch.End();
     Println("Total time 1 = " + stopWatch.GetDurationInMiliseconds());
     if (stopWatch.GetDurationInMiliseconds() > 90700)
         Fail("time is > than " + 90700 + " = " + stopWatch.GetDurationInMiliseconds());
 }
コード例 #6
0
ファイル: TestCriteriaQuery3.cs プロジェクト: danfma/NDB
 public virtual void TestCriteriaQueryQueryWithValueInList3()
 {
     var baseName = GetBaseName();
     Init(baseName);
     var odb = Open(baseName);
     var p0 = new Profile("profile0");
     p0.AddFunction(null);
     p0.AddFunction(null);
     p0.AddFunction(null);
     var p1 = new Profile("profile1");
     p1.AddFunction(null);
     p1.AddFunction(null);
     p1.AddFunction(new VO.Login.Function("f22"));
     var user = new User("The user", "themail", p0);
     var user2 = new User("The user2", "themail2", p1);
     odb.Store(user);
     odb.Store(user2);
     odb.Close();
     odb = Open(baseName);
     var criteriaQuery = odb.Query<VO.Login.Function>();
     criteriaQuery.Descend("name").Constrain((object) "f22").Equal();
     var f2bis = criteriaQuery.Execute<VO.Login.Function>().GetFirst();
     var query = odb.Query<User>();
     query.Descend("profile.functions").Constrain(f2bis).Contains();
     var l = query.Execute<User>();
     AssertEquals(1, l.Count());
     user = l.GetFirst();
     AssertEquals("The user2", user.GetName());
     odb.Close();
 }