Beispiel #1
0
 public void TestGuidMultiKey()
 {
     DbEntry.Create(typeof(GuidMultiKey));
     Assert.AreEqual("CREATE TABLE [Guid_Multi_Key] (\n\t[RoleId] UNIQUEIDENTIFIER NOT NULL ,\n\t[UserId] UNIQUEIDENTIFIER NOT NULL ,\n\tPRIMARY KEY([RoleId], [UserId])\n);\n<Text><30>()", StaticRecorder.LastMessage);
 }
Beispiel #2
0
        public void TestNotIn()
        {
            DbEntry.From <SinglePersonSqlite>().Where(CK.K["Id"].NotIn(1, 3, 5, 7)).Select();
            AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE [Id] NOT IN (@in_0,@in_1,@in_2,@in_3);
<Text><60>(@in_0=1:Int32,@in_1=3:Int32,@in_2=5:Int32,@in_3=7:Int32)");
        }
Beispiel #3
0
 public void TestTransactionWithoutUpdate()
 {
     DbEntry.UsingTransaction(() => Book.FindById(1));
 }
 public void RepStart(ref DbEntry cdata, RepStartMode mode) {
   DbRetVal ret;
   lock (rscLock) {
     DB_ENV* evp = CheckDisposed();
     ret = evp->RepStart(evp, ref cdata.dbt, unchecked((uint)mode));
   }
   Util.CheckRetVal(ret);
 }
Beispiel #5
0
        public void TestUpperForLike()
        {
            DbEntry.From <SinglePersonSqlite>().Where(CK.K["Name"].ToUpper().Like("%tom%")).Select();
            AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE UPPER([Name]) LIKE @Name_0;
<Text><60>(@Name_0=%tom%:String)");
        }
Beispiel #6
0
 public void TestUnsigned()
 {
     DbEntry.Create(typeof(UnsignedTestTable));
     Assert.AreEqual("CREATE TABLE [Unsigned_Test_Table] (\n\t[Name] NTEXT NOT NULL ,\n\t[Age] INT UNSIGNED NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage);
 }
Beispiel #7
0
 public virtual T FindObject(Condition c)
 {
     return(DbEntry.GetObject <T>(c));
 }
 public void Open(Txn txn, ref DbEntry key, OpenFlags flags) {
   DbRetVal ret;
   if (txn != null) {
     lock (txn.rscLock) {
       DB_TXN* txp = txn.CheckDisposed();
       ret = Open(txp, ref key, flags);
     }
   }
   else
     ret = Open((DB_TXN*)null, ref key, flags);
   Util.CheckRetVal(ret);
 }
Beispiel #9
0
        public void TestPage()
        {
            DbEntry.Create(typeof(User));
            var name = new TextBox();

            name.ID       = "user_name";
            name.Text     = "tom";
            name.CssClass = "test";
            var age = new TextBox();

            age.ID       = "user_age";
            age.Text     = "18";
            age.CssClass = "test";
            var label = new Label();

            label.CssClass = "msg";
            var page = new MyPage(name, age);

            page.Controls.Add(label);
            var msg = new NoticeLabelAdapter(label, "notice", "warning");
            var ctx = ModelContext.GetInstance(typeof(User));
            var vh  = new ValidateHandler();
            var obj = ctx.GetObject <User>(page, "parse error");

            ctx.ValidateSave(page, vh, obj, msg, "hello", "inWarning", () => obj.Save());
            Assert.AreEqual("test inWarning", name.CssClass);
            Assert.AreEqual("test", age.CssClass);
            Assert.AreEqual("msg warning", label.CssClass);
            Assert.AreEqual("<ul>\r\n<li>Invalid Field Name The length should be 6 to 8 but was 3.</li>\r\n</ul>\r\n", label.Text);

            name.Text = "tom456789";
            vh        = new ValidateHandler();
            obj       = ctx.GetObject <User>(page, "parse error");
            msg       = new NoticeLabelAdapter(label, "notice", "warning");
            ctx.ValidateSave(page, vh, obj, msg, "hello", "inWarning", () => obj.Save());
            Assert.AreEqual("test inWarning", name.CssClass);
            Assert.AreEqual("test", age.CssClass);
            Assert.AreEqual("msg warning", label.CssClass);
            Assert.AreEqual("<ul>\r\n<li>Invalid Field Name The length should be 6 to 8 but was 9.</li>\r\n</ul>\r\n", label.Text);

            try {
                name.Text = "tom4567";
                age.Text  = "";
                vh        = new ValidateHandler();
                msg       = new NoticeLabelAdapter(label, "notice", "warning");
                obj       = ctx.GetObject <User>(page, "Field [{0}] parse error{1}");
                ctx.ValidateSave(page, vh, obj, msg, "hello", "inWarning", () => obj.Save());
            } catch (WebControlException ex) {
                ctx.ResetInputCss(page, "inWarning");
                PageHelper.SetCtrlClass(ex.RelatedControl, "inWarning");
                msg.AddMessage(ex.Message);
                msg.ShowWarning();
            }
            Assert.AreEqual("test", name.CssClass);
            Assert.AreEqual("test inWarning", age.CssClass);
            Assert.AreEqual("msg warning", label.CssClass);
            Assert.AreEqual("<ul>\r\n<li>Field [TestField] parse error</li>\r\n</ul>\r\n", label.Text);

            name.Text = "tom4567";
            age.Text  = "20";
            vh        = new ValidateHandler();
            obj       = ctx.GetObject <User>(page, "parse error");
            msg       = new NoticeLabelAdapter(label, "notice", "warning");
            ctx.ValidateSave(page, vh, obj, msg, "hello", "inWarning", () => obj.Save());
            Assert.AreEqual("test", name.CssClass);
            Assert.AreEqual("test", age.CssClass);
            Assert.AreEqual("msg notice", label.CssClass);
            Assert.AreEqual("<ul>\r\n<li>hello</li>\r\n</ul>\r\n", label.Text);
        }
 public void SetPageCookie(ref DbEntry cookie) {
   DbRetVal ret;
   lock (rscLock) {
     DB_MPOOLFILE* mpf = CheckDisposed();
     fixed (byte* cookieBufP = cookie.Buffer) {
       cookie.dbt.data = cookieBufP + cookie.Start;
       ret = mpf->SetPageCookie(mpf, ref cookie.dbt);
     }
   }
   Util.CheckRetVal(ret);
 }
 DbRetVal Open(DB_TXN* txp, ref DbEntry key, OpenFlags flags) {
   DbRetVal ret;
   lock (rscLock) {
     DB_SEQUENCE* seqp = CheckDisposed();
     fixed (byte* keyBufP = key.Buffer) {
       key.dbt.data = keyBufP + key.Start;
       ret = seqp->Open(seqp, txp, ref key.dbt, unchecked((UInt32)flags));
     }
     // initialize function pointer delegates
     SeqGet = seqp->Get;
   }
   return ret;
 }
 public void GetPageCookie(out DbEntry cookie) {
   DbRetVal ret;
   DBT cookieDbt;
   lock (rscLock) {
     DB_MPOOLFILE* mpf = CheckDisposed();
     ret = mpf->GetPageCookie(mpf, out cookieDbt);
   }
   Util.CheckRetVal(ret);
   if (cookieDbt.size != 0) {
     byte[] buffer = new byte[cookieDbt.size];
     Marshal.Copy((IntPtr)cookieDbt.data, buffer, 0, unchecked((int)cookieDbt.size));
     cookie = DbEntry.Out(buffer);
   }
   else
     cookie = new DbEntry();
 }
 public Lsn LogPut(ref DbEntry data, LogPutFlags flags) {
   DbRetVal ret;
   Lsn lsn;
   lock (rscLock) {
     DB_ENV* evp = CheckDisposed();
     ret = evp->LogPut(evp, out lsn.lsn, ref data.dbt, unchecked((UInt32)flags));
   }
   Util.CheckRetVal(ret);
   return lsn;
 }
    public RepStatus RepProcessMessage(ref DbEntry control, ref DbEntry rec, ref int envId, ref Lsn retLsn) {
      DbRetVal ret;
      DB_LSN lsn;
      lock (rscLock) {
        DB_ENV* evp = CheckDisposed();
        ret = evp->RepProcessMessage(evp, ref control.dbt, ref rec.dbt, ref envId, out lsn);
      }
      switch (ret) {
        case DbRetVal.SUCCESS:
          break;
        case DbRetVal.REP_DUPMASTER:
          break;
        case DbRetVal.REP_HOLDELECTION:
          break;
#if BDB_4_5_20
        case DbRetVal.REP_IGNORE:
          break;
#endif
        case DbRetVal.REP_ISPERM:
          retLsn.lsn = lsn;
          break;
#if BDB_4_5_20
        case DbRetVal.REP_JOIN_FAILURE:
          break;
#endif
        case DbRetVal.REP_NEWMASTER:
          break;
        case DbRetVal.REP_NEWSITE:
          break;
        case DbRetVal.REP_NOTPERM:
          retLsn.lsn = lsn;
          break;
#if BDB_4_3_29
        case DbRetVal.REP_STARTUPDONE:
          break;
#endif
        default: 
          Util.CheckRetVal(ret);
          break;
      }
      return (RepStatus)ret;
    }
Beispiel #15
0
 public void Test5()
 {
     DbEntry.Create(typeof(CategorySqlite));
     Assert.AreEqual("CREATE TABLE [Categories] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage);
 }
Beispiel #16
0
 public List <T> Find(Expression <Func <T, bool> > condition)
 {
     return(DbEntry.From <T>().Where(condition).OrderBy(_order).Select());
 }
Beispiel #17
0
 public void Test10()
 {
     DbEntry.Create(typeof(ReaderSqlite));
     Assert.AreEqual(1, StaticRecorder.Messages.Count);
     Assert.AreEqual("CREATE TABLE [Reader] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL \n);\n<Text><30>()", StaticRecorder.Messages[0]);
 }
Beispiel #18
0
 public void TestCreate()
 {
     DbEntry.Create(typeof(lzUser2));
     Assert.AreEqual("CREATE TABLE [lz_User2] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL ,\n\t[Profile] NTEXT NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage);
 }
Beispiel #19
0
 protected bool Equals(DbEntry other)
 {
     return Id == other.Id;
 }
Beispiel #20
0
 public void TestCreate1()
 {
     DbEntry.Create(typeof(lzpUser1));
     Assert.AreEqual("CREATE TABLE [User] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL ,\n\t[MyTest] VARCHAR (10) NULL \n);\nCREATE UNIQUE INDEX [IX_User_test] ON [User] ([MyTest] ASC);\n<Text><30>()", StaticRecorder.LastMessage);
 }
Beispiel #21
0
        public IList <T> Lookup <T>(ICondition condition) where T : class
        {
            dbName = typeof(T).FullName;
            initDatabase();
            List <T> result = new List <T>( );

            Txn trans = env.TxnBegin(null, Txn.BeginFlags.None);

            switch (condition.Name)
            {
            case "SELECT_ALL":
                using (DbBTreeCursor cursor = dbInstance.OpenCursor(null, DbFileCursor.CreateFlags.None)) {
                    T cust = null;

                    IEnumerable <KeyDataPair> lst = cursor.ItemsForward(false, DbFileCursor.ReadFlags.None);

                    foreach (KeyDataPair pair in lst)
                    {
                        using (MemoryStream mem = new MemoryStream(pair.Data.Buffer)) {
                            T t = (T)formatter.Deserialize(mem);

                            result.Add(t);
                        }
                    }
                }
                break;

            case "SELECT_BY_CODE":

                SelectByCodeCondition cond = condition as SelectByCodeCondition;

                if (cond == null)
                {
                    throw new InvalidDataException(String.Format("Invalid {0} condition", condition.Name));
                }
                foreach (int i in cond.HashCodes)
                {
                    T            t     = null;
                    byte[]       buf   = new byte[1024];
                    MemoryStream key   = new MemoryStream( );
                    MemoryStream value = new MemoryStream();
                    formatter.Serialize(key, i);

                    DbEntry dbKey = DbEntry.InOut(key.ToArray());
                    DbEntry dbVal = DbEntry.Out(buf);
                    while (true)
                    {
                        ReadStatus status =
                            dbInstance.GetExact(trans, ref dbKey, ref dbVal, DbFile.ReadFlags.None);


                        switch (status)
                        {
                        case ReadStatus.BufferSmall:
                            if (dbVal.Buffer.Length < dbVal.Size)
                            {
                                value.SetLength(dbVal.Size);
                                dbVal = DbEntry.Out(value.GetBuffer());
                            }
                            continue;

                        case ReadStatus.KeyEmpty:
                            goto brk;

                        case ReadStatus.NotFound:
                            goto brk;

                        case ReadStatus.Success:
                            value.Position = 0;
                            value.SetLength(dbVal.Size);
                            value.Write(dbVal.Buffer, 0, dbVal.Size);
                            value.Flush();
                            value.Seek(0, SeekOrigin.Begin);
                            t = (T)formatter.Deserialize(value);

                            result.Add(t);

                            key.Dispose();
                            value.Dispose();
                            break;
                        }
                    }
                    brk :;
                }

                break;

            default:
                throw new NotImplementedException(String.Format("Condition {0} is not implemented", condition.Name));
            }
            trans.Commit(Txn.CommitMode.Sync);
            env.Close();
            return(result);
        }
Beispiel #22
0
 public void TestRead()
 {
     DbEntry.GetObject <lzUser2>(1);
     Assert.AreEqual("SELECT [Id],[Name] FROM [lz_User2] WHERE [Id] = @Id_0;\n<Text><60>(@Id_0=1:Int32)", StaticRecorder.LastMessage);
 }
Beispiel #23
0
        public void TestUpperFunction()
        {
            DbEntry.From <SinglePersonSqlite>().Where(CK.K["Name"].ToUpper() == "tom").Select();
            AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE UPPER([Name]) = @Name_0;
<Text><60>(@Name_0=tom:String)");
        }
Beispiel #24
0
 public void TestLazyLoadFieldForCondition2()
 {
     DbEntry.From <lzpUserSqlite>().Where(p => p.Profile.Value == "test").Select();
     AssertSql("SELECT [Id],[Name] FROM [lzp_User_Sqlite] WHERE [Profile] = @Profile_0;\n<Text><60>(@Profile_0=test:String)");
 }
Beispiel #25
0
        public void TestInSql()
        {
            DbEntry.From <SinglePersonSqlite>().Where(CK.K["Id"].InSql("Select Id From Others")).Select();
            AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE [Id] IN (Select Id From Others);
<Text><60>()");
        }
Beispiel #26
0
 void AddApp(DbEntry app) => Application.Instance.Invoke(delegate
 {
     lstApps.Add(new DBEntryForEto(app));
 });
Beispiel #27
0
        public void TestNotIn2()
        {
            DbEntry.From <SinglePersonSqlite>().Where(CK.K["Name"].NotIn("Tom", "Jerry")).Select();
            AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE [Name] NOT IN (@in_0,@in_1);
<Text><60>(@in_0=Tom:String,@in_1=Jerry:String)");
        }
 public static LockRequest ForAcquire(LockMode mode, ref DbEntry obj) {
   LockRequest lr =
     new LockRequest(LockOperation.Acquire, mode, 0, ref obj, new Lock());
   return lr;
 }
Beispiel #29
0
 public DBEntryForEto(DbEntry item) => _item = item;
 public static LockRequest ForAcquireWithTimeout(LockMode mode, int timeout, ref DbEntry obj) {
   LockRequest lr =
     new LockRequest(LockOperation.AcquireTimeout, mode, timeout, ref obj, new Lock());
   return lr;
 }
Beispiel #31
0
 public void Test3()
 {
     DbEntry.Create(typeof(MyTest3));
     Assert.AreEqual("CREATE TABLE [My_Test3] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL ,\n\t[Age] INT NOT NULL \n);\nCREATE UNIQUE INDEX [IX_My_Test3_Name_Age] ON [My_Test3] ([Name] DESC, [Age] ASC);\n<Text><30>()", StaticRecorder.LastMessage);
 }
 public static LockRequest ForReleaseObj(ref DbEntry obj) {
   LockRequest lr = new LockRequest();
   lr.op = LockOperation.ReleaseObj;
   lr.obj = obj;
   return lr;
 }
Beispiel #33
0
 public void Test8()
 {
     DbEntry.Create(typeof(MyTest8));
     Assert.AreEqual("CREATE TABLE [MyTest] (\n\t[Id] BIGINT NOT NULL ,\n\t[Name] NVARCHAR (50) NOT NULL ,\n\t[Age] INT NOT NULL ,\n\tPRIMARY KEY([Id], [Name])\n);\n<Text><30>()", StaticRecorder.LastMessage);
 }
 public LockRequest(LockOperation op, LockMode mode, int timeout, ref DbEntry obj, Lock lck) {
   this.op = op;
   this.mode = mode;
   this.timeout = timeout;
   this.obj = obj;
   this.lck = lck;
 }
Beispiel #35
0
 public void TestGuidKey()
 {
     DbEntry.Create(typeof(GuidKeySqlite));
     Assert.AreEqual(1, StaticRecorder.Messages.Count);
     Assert.AreEqual("CREATE TABLE [Guid_Key_Sqlite] (\n\t[Id] UNIQUEIDENTIFIER NOT NULL  PRIMARY KEY,\n\t[Name] NTEXT NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage);
 }
 public void TestJoinTableNoCreate()
 {
     DbEntry.From <JoinTableNoCreate>().Where(Condition.Empty).Select();
 }
Beispiel #37
0
 public void Test1()
 {
     var list = DbEntry.From<JoinClass>().Where(Condition.Empty).Select();
     Assert.IsNotNull(list);
     Assert.AreEqual(0, list.Count);
 }
        public void TestPartOf()
        {
            DbEntry.From <DtPart>().Where(Condition.Empty).Select();
            AssertSql(@"SELECT [Id],[dtValue] FROM [DateAndTime];
<Text><60>()");
        }
Beispiel #39
0
 public virtual T FindObject(int pkey)
 {
     return(DbEntry.GetObject <T>(pkey));
 }
Beispiel #40
0
 public void Test3()
 {
     Assert.AreEqual(3, DbEntry.From <Category>().Where(Condition.Empty).GetCount());
     Assert.AreEqual(5, DbEntry.From <Book>().Where(Condition.Empty).GetCount());
     Assert.AreEqual(2, DbEntry.From <Book>().Where(CK.K["Category_Id"] == 3).GetCount());
 }
Beispiel #41
0
 public void TestCreate()
 {
     DbEntry.CreateDeleteToTable(typeof(DeleteToUser));
     Assert.AreEqual("CREATE TABLE [UnregUser] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL ,\n\t[DeletedOn] DATETIME NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage);
 }
Beispiel #42
0
        public void TestFindOneWithSqlServer2005()
        {
            var p = DbEntry.GetObject <Person>(o => o.Name == "test");

            Assert.IsNull(p);
        }
 public ReadStatus Get(ref Lsn lsn, ref DbEntry data, GetMode mode) {
   DbRetVal ret;
   lock (rscLock) {
     DB_LOGC* logcp = CheckDisposed();
     fixed (byte* dataBufP = data.Buffer) {
       data.dbt.data = dataBufP + data.Start;
       ret = LogcGet(logcp, ref lsn.lsn, ref data.dbt, unchecked((UInt32)mode));
     }
   }
   switch (ret) {
     case DbRetVal.NOTFOUND: break;
     case DbRetVal.BUFFER_SMALL: break;
     default:
       Util.CheckRetVal(ret);
       break;
   }
   data.SetReturnType(DbType.Unknown, 0);
   return (ReadStatus)ret;
 }
 public Lock AcquireLock(int locker, LockFlags flags, ref DbEntry obj, LockMode mode) {
   DbRetVal ret;
   Lock lck = new Lock();
   lock (rscLock) {
     DB_ENV* evp = CheckDisposed();
     fixed (byte* objBufP = obj.Buffer) {
       obj.dbt.data = objBufP + obj.Start;
       ret = evp->LockGet(evp, unchecked((uint)locker), unchecked((uint)flags), ref obj.dbt, (DB_LOCKMODE)mode, ref lck.dblck);
     }
   }
   if (ret != DbRetVal.SUCCESS)
     ThrowLockException(ret, -1);
   return lck;
 }