Exemple #1
0
        public void hashCodeComparerStringTest()
        {
            Oid id;

            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                Placement place = new Placement(223, 1, 1, UInt16.MaxValue, UInt16.MaxValue);
                session.Compact();
                session.BeginUpdate();
                HashCodeComparer <string> hashCodeComparer = new HashCodeComparer <string>();
                BTreeSet <string>         bTree            = new BTreeSet <string>(hashCodeComparer, session);
                bTree.Persist(place, session);
                id = bTree.Oid;
                for (int i = 0; i < 100000; i++)
                {
                    bTree.Add(i.ToString());
                }
                session.Commit();
            }
            using (var session = new SessionNoServerShared(systemDir))
            {
                session.BeginRead();
                BTreeSet <string> bTree = (BTreeSet <string>)session.Open(id);
                int count = 0;
                foreach (string str in bTree)
                {
                    count++;
                }
                Assert.True(100000 == count);
                session.Commit();
            }
        }
Exemple #2
0
        public void zeroSizeByInterface()
        {
            UInt64 id = 0;

            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                for (int i = 0; i < 100000; i++)
                {
                    var o = new EFTPOSMachineParent();
                    session.Persist(o);
                    if (i % 25000 == 0)
                    {
                        id = o.Id;
                    }
                }
                var o2 = (EFTPOSMachineParent)session.Open(id);
                session.Commit();
            }
            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginRead();
                var o2 = (EFTPOSMachineParent)session.Open(id);
                Assert.NotNull(o2);
                Assert.NotNull(o2.TransactionFacilitator);
                session.Commit();
            }
            using (var session = new SessionNoServerShared(systemDir))
            {
                session.BeginUpdate();
                var o2 = (EFTPOSMachineParent)session.Open(id);
                Assert.NotNull(o2);
                Assert.NotNull(o2.TransactionFacilitator);
                o2.Unpersist(session);
                session.Commit();
            }
            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginRead();
                var o2 = (EFTPOSMachineParent)session.Open(id);
                Assert.Null(o2);
                id++;
                o2 = (EFTPOSMachineParent)session.Open(id);
                Assert.NotNull(o2);
                Assert.NotNull(o2.TransactionFacilitator);
                session.Commit();
            }
        }
Exemple #3
0
        public void LazyLoadDepth()
        {
            UInt64 id;

            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                LazyLoadByDepth lazy = null;
                for (uint i = 1; i <= 100; i++)
                {
                    lazy = new LazyLoadByDepth(i, lazy);
                }
                session.Persist(lazy);
                id = lazy.Id;
                session.Commit();
            }

            using (var session = new SessionNoServerShared(systemDir))
            {
                UInt32 ct = 100;
                session.BeginRead();
                LazyLoadByDepth lazy = (LazyLoadByDepth)session.Open(id, false, false, 0); // load only the root of the object graph
                Assert.AreEqual(ct--, lazy.MyCt);
                Assert.IsNull(lazy.MyRefPeek);
                Assert.NotNull(lazy.MyRef);
                Assert.NotNull(lazy.MyRefPeek);
                lazy = lazy.MyRef;
                Assert.AreEqual(ct--, lazy.MyCt);
                Assert.IsNull(lazy.MyRefPeek);
                Assert.NotNull(lazy.MyRef);
                Assert.NotNull(lazy.MyRefPeek);
                lazy = lazy.MyRef;
                Assert.AreEqual(ct--, lazy.MyCt);
                Assert.IsNull(lazy.MyRefPeek);
                Assert.NotNull(lazy.MyRef);
                Assert.NotNull(lazy.MyRefPeek);
                lazy = lazy.MyRef;
                Assert.AreEqual(ct--, lazy.MyCt);
                Assert.IsNull(lazy.MyRefPeek);
                Assert.NotNull(lazy.MyRef);
                Assert.NotNull(lazy.MyRefPeek);
                session.Commit();
            }
        }
        public void SingleReaderSingleUpdater2()
        {
            UInt64 id;

            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                Man man = new Man();
                man.Persist(session, man);
                id = man.Id;
                session.Commit();
                session.BeginUpdate();
                man.Age = ++man.Age;
                using (var session2 = new SessionNoServerShared(systemDir))
                {
                    session2.BeginRead();
                    Man man2 = (Man)session2.Open(id);
                    Assert.Less(man2.Age, man.Age);
                    session2.Commit();
                }
                session.Commit();
            }
            System.GC.Collect();
        }
Exemple #5
0
        public void AllSupported()
        {
            UInt64          id;
            AllSupported    allSuported, allSupported2;
            AllSuportedSub1 allSuportedSub1, allSuportedSub2;
            AllSuportedSub2 allSuportedSub2_1, allSuportedSub2_2;
            AllSuportedSub3 allSuportedSub3_1, allSuportedSub3_2;
            AllSuportedSub4 allSuportedSub4;

            AllSupported[,] a1              = new AllSupported[10, 5];
            AllSupported[,,] a2             = new AllSupported[8, 4, 3];
            AllSupported[,,,] a3            = new AllSupported[7, 6, 2, 1];
            Dictionary <int, string>[,,] a4 = new Dictionary <int, string> [2, 4, 33];
            string s1str = DataMember.TypeToString(a1.GetType());
            string s2str = DataMember.TypeToString(a2.GetType());
            string s3str = DataMember.TypeToString(a3.GetType());
            string s4str = DataMember.TypeToString(a4.GetType());
            bool   typeUpdated;

            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                Type t1 = DataMember.StringToType(s1str, session, out typeUpdated);
                Type t2 = DataMember.StringToType(s2str, session, out typeUpdated);
                Type t3 = DataMember.StringToType(s3str, session, out typeUpdated);
                Type t4 = DataMember.StringToType(s4str, session, out typeUpdated);
                Assert.AreEqual(t1, a1.GetType());
                Assert.AreEqual(t2, a2.GetType());
                Assert.AreEqual(t3, a3.GetType());
                Assert.AreEqual(t4, a4.GetType());
                allSuportedSub4 = new AllSuportedSub4();
                session.Persist(allSuportedSub4);
                id = allSuportedSub4.Id;
                session.Commit();
            }
            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginRead();
                allSuportedSub4 = (AllSuportedSub4)session.Open(id);
                Assert.NotNull(allSuportedSub4);
                session.Commit();
            }
            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                allSuportedSub1 = new AllSuportedSub1(3);
                allSuportedSub1.Persist(session, allSuportedSub1);
                foreach (var o in allSuportedSub1.PetListOidShort)
                {
                    session.Persist(o, allSuportedSub1);
                }
                id = allSuportedSub1.Id;
                session.Commit();
            }
            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginRead();
                allSuportedSub2 = (AllSuportedSub1)session.Open(id);
                Assert.NotNull(allSuportedSub2);
                Assert.AreEqual(allSuportedSub2.m_type[0], typeof(Pet));
                session.Commit();
            }
            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                allSuportedSub2_1 = new AllSuportedSub2(3);
                allSuportedSub2_1.Persist(session, allSuportedSub2_1);
                id = allSuportedSub2_1.Id;
                session.Commit();
            }
            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginRead();
                allSuportedSub2_2 = (AllSuportedSub2)session.Open(id);
                Assert.NotNull(allSuportedSub2_2);
                session.Commit();
            }
            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                allSuportedSub3_1 = new AllSuportedSub3(3);
                allSuportedSub3_1.Persist(session, allSuportedSub3_1);
                id = allSuportedSub3_1.Id;
                session.Commit();
            }
            using (var session = new SessionNoServerShared(systemDir))
            {
                session.BeginRead();
                allSuportedSub3_2 = (AllSuportedSub3)session.Open(id);
                Assert.NotNull(allSuportedSub3_2);
                session.Commit();
            }

            using (var session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                var x = new AllSuportedSub5();
                session.Persist(x);
                id = x.Id;
                session.Commit();
            }

            using (var session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                var x = (AllSuportedSub5)session.Open(id);
                x.Update();
                x.nullableaDouble = 0.5;
                session.Commit();
            }
            using (var session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                var x = new AllSuportedSub6();
                session.Persist(x);
                id = x.Id;
                session.Commit();
            }

            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                var x = (AllSuportedSub6)session.Open(id);
                x.Update();
                session.Commit();
            }

            using (var session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                allSuported = new AllSupported(3, session);
                allSuported.Persist(session, allSuported);
                allSuported.m_weakRefArray[0] = new WeakIOptimizedPersistableReference <IOptimizedPersistable>(allSuported);
                allSuported.m_objectArray[0]  = new WeakIOptimizedPersistableReference <IOptimizedPersistable>(allSuported);
                id = allSuported.Id;
                session.Commit();
            }

            using (SessionNoServer session = new SessionNoServer(systemDir))
            {
                session.BeginUpdate();
                allSupported2 = (AllSupported)session.Open(id);
                allSupported2.Update();
                allSupported2.nullableaDouble  = 0.5;
                allSupported2.NullableDateTime = DateTime.MaxValue;
                allSupported2 = null;
                session.Commit();
            }

            using (var session = new SessionNoServer(systemDir))
            {
                session.BeginRead();
                allSupported2 = (AllSupported)session.Open(id);
                Assert.NotNull(allSupported2);
                Assert.AreEqual(allSupported2.nullableaDouble, 0.5);
                Assert.AreEqual(allSupported2.NullableDateTime, DateTime.MaxValue);
                session.Commit();
                session.BeginUpdate();
                allSupported2.NullableDateTime = DateTime.UtcNow;

                session.Commit();
                session.BeginRead();
                allSupported2 = (AllSupported)session.Open(id);
                Assert.AreEqual(DateTimeKind.Utc, allSupported2.NullableDateTime.Value.Kind);
                session.Commit();
            }
        }