コード例 #1
0
ファイル: LazyLoadFieldTest.cs プロジェクト: sfltd/DbEntry
        public void TestCrudForDynamicObject()
        {
            DbEntry.Create(typeof(lzpUser));

            var u = new lzpUser {
                Name = "tom"
            };

            u.Profile.Value = "test";
            u.Save();
            Assert.AreEqual(1, u.Id);

            lzpUser u1 = lzpUser.FindById(1);

            Assert.AreEqual("tom", u1.Name);
            Assert.AreEqual("test", u1.Profile.Value);

            u1.Profile.Value = "test 2";
            u1.Save();

            lzpUser u2 = lzpUser.FindById(1);

            Assert.AreEqual("tom", u2.Name);
            Assert.AreEqual("test 2", u2.Profile.Value);

            u2.Delete();

            lzpUser u3 = lzpUser.FindById(1);

            Assert.IsNull(u3);
        }
コード例 #2
0
        public void TestForNormalIndexName()
        {
            DbEntry.Create(typeof(fbLongName2));
            string s = getIndexName();

            Debug.Assert(s != null);
            Assert.AreEqual("IX_FB_LONG_NAME2_NAME", s);
        }
コード例 #3
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void TestTableWithNonDbGenId()
        {
            DbEntry.Create(typeof(TableWithNonDbGenId));
            AssertSql(@"CREATE TABLE [Table_With_Non_Db_Gen_Id] (
    [Id] INT NOT NULL  PRIMARY KEY,
    [Name] NTEXT NOT NULL 
);
<Text><30>()");
        }
コード例 #4
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void TestDefineContext()
        {
            DbEntry.Create(typeof(ForDefineContext));
            AssertSql(@"CREATE TABLE [For_Define_Context] (
    [Id] INTEGER PRIMARY KEY AUTOINCREMENT ,
    [Name] NTEXT NOT NULL 
);
<Text><30>()");
        }
コード例 #5
0
        public void TestToAvoidMoreThan31CharsIndexName()
        {
            DbEntry.Create(typeof(fbLongName));
            string s = getIndexName();

            Debug.Assert(s != null);
            Assert.AreEqual(29, s.Length);
            Assert.AreEqual("IX_1QCVK84BPESSPIBHJ1ND74RDE7", s);
        }
コード例 #6
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void TestBinaryAndBlob()
        {
            DbEntry.Create(typeof(BinaryAndBLOB));
            AssertSql(
                @"CREATE TABLE [Binary_And_BLOB] (
    [password] BINARY (5) NOT NULL ,
    [image] BLOB NOT NULL 
);
<Text><30>()");
        }
コード例 #7
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void TestTableName()
        {
            DbEntry.Create(typeof(compTableName));
            AssertSql(
                @"CREATE TABLE [tom].[test_table] (
    [Id] INTEGER PRIMARY KEY AUTOINCREMENT ,
    [Name] NTEXT NOT NULL 
);
<Text><30>()");
        }
コード例 #8
0
        public void TestTime()
        {
            StaticRecorder.Messages.Clear();
            DbEntry.Create(typeof(fbTime));
            Assert.AreEqual(@"CREATE TABLE ""FB_TIME"" (
    ""ID"" BIGINT NOT NULL PRIMARY KEY,
    ""NAME"" VARCHAR (50) CHARACTER SET UNICODE_FSS NOT NULL ,
    ""TIME"" TIME NOT NULL
);
<Text><30>()".Replace("\r\n", "").Replace("    ", ""), StaticRecorder.Messages[0]);
        }
コード例 #9
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void Test7()
        {
            DbEntry.Create(typeof(BookSqlite));
            AssertSql(
                @"CREATE TABLE [Books] (
    [Id] INTEGER PRIMARY KEY AUTOINCREMENT ,
    [Name] NTEXT NOT NULL ,
    [Category_Id] BIGINT NULL ,
    FOREIGN KEY([Category_Id]) REFERENCES [Categories] ([Id]) 
);
<Text><30>()");
        }
コード例 #10
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void Test6()
        {
            DbEntry.Create(typeof(PersonalComputerSqlite));
            AssertSql(
                @"CREATE TABLE [PCs] (
    [Id] INTEGER PRIMARY KEY AUTOINCREMENT ,
    [Name] NTEXT NOT NULL ,
    [Person_Id] BIGINT NULL ,
    FOREIGN KEY([Person_Id]) REFERENCES [People] ([Id]) 
);
<Text><30>()");
        }
コード例 #11
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void TestTableNameForBelongsToColumn()
        {
            DbEntry.Create(typeof(ForTableName));
            AssertSql(
                @"CREATE TABLE [For_Table_Name] (
    [Id] INTEGER PRIMARY KEY AUTOINCREMENT ,
    [Name] NTEXT NOT NULL ,
    [For_TableName2_Id] BIGINT NULL ,
    FOREIGN KEY([For_TableName2_Id]) REFERENCES [For_Table_Name2] ([Id]) 
);
<Text><30>()");
        }
コード例 #12
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void TestDecimal()
        {
            DbEntry.Create(typeof(PrDecimal));
            AssertSql(@"CREATE TABLE [Pr_Decimal] (
    [Id] INTEGER PRIMARY KEY AUTOINCREMENT ,
    [Price] DECIMAL (16,2) NOT NULL ,
    [TotalFee] DECIMAL (10,4) NOT NULL ,
    [Price2] DECIMAL (16,2) NULL ,
    [TotalFee2] DECIMAL (10,4) NULL 
);
<Text><30>()");
        }
コード例 #13
0
        public void TestBlob()
        {
            StaticRecorder.Messages.Clear();
            DbEntry.Create(typeof(fbBlob));
            Assert.AreEqual(@"CREATE TABLE ""FB_BLOB"" (
    ""ID"" BIGINT NOT NULL PRIMARY KEY,
    ""BLOB1"" BLOB SUB_TYPE BINARY NOT NULL ,
    ""BLOB2"" BLOB SUB_TYPE BINARY NOT NULL ,
    ""BLOB3"" BLOB SUB_TYPE BINARY NOT NULL ,
    ""NAME"" VARCHAR (30) CHARACTER SET UNICODE_FSS NOT NULL ,
    ""NAME2"" BLOB SUB_TYPE TEXT NOT NULL
);
<Text><30>()".Replace("\r\n", "").Replace("    ", ""), StaticRecorder.Messages[0]);
        }
コード例 #14
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void TestCreateIndex()
        {
            DbEntry.Create(typeof(IndexTestClass));
            AssertSql(
                @"CREATE TABLE [Index_Test_Class] (
	[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,
	[QQQId] INT NOT NULL ,
	[UUUs] NVARCHAR (50) NOT NULL ,
	[CCCId] BIGINT NULL ,
    FOREIGN KEY([CCCId]) REFERENCES [CCC1] ([Id]) 
);
CREATE UNIQUE INDEX [IX_Index_Test_Class_xxx1] ON [Index_Test_Class] ([QQQId] ASC, [CCCId] ASC);
CREATE UNIQUE INDEX [IX_Index_Test_Class_ccc1] ON [Index_Test_Class] ([UUUs] ASC, [CCCId] ASC);
<Text><30>()");
        }
コード例 #15
0
        public void TestForNotUpdateWithDynamicObject()
        {
            DbEntry.Create(typeof(lzpUser));

            var u = new lzpUser {
                Name = "tom", Profile = "test"
            };

            u.Save();
            Assert.AreEqual(1, u.Id);

            lzpUser u1 = lzpUser.FindById(1);

            u1.Name = "jerry";
            u1.Save();

            lzpUser u2 = lzpUser.FindById(1);

            Assert.AreEqual("jerry", u2.Name);
            Assert.AreEqual("test", u2.Profile);
        }
コード例 #16
0
        public void TestForMkey()
        {
            DbEntry.Create(typeof(Mkey));

            var p1 = new Mkey {
                FirstName = "test", LastName = "next", Age = 11
            };

            DbEntry.Insert(p1);

            var p2 = DbEntry.From <Mkey>().Where(p => p.FirstName == "test" && p.LastName == "next").Select()[0];

            Assert.AreEqual(11, p2.Age);

            p2.Age = 18;
            DbEntry.Update(p2);

            var p3 = DbEntry.From <Mkey>().Where(p => p.FirstName == "test" && p.LastName == "next").Select()[0];

            Assert.AreEqual(18, p3.Age);
        }
コード例 #17
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
        public void TestDefineCrossTableName2()
        {
            DbEntry.Create(typeof(crxBook1Sqlite));
            AssertSql(
                @"CREATE TABLE [crx_Book1Sqlite] (
    [Id] INTEGER PRIMARY KEY AUTOINCREMENT ,
    [Name] NVARCHAR (20) NOT NULL 
);
<Text><30>()");

            DbEntry.CreateCrossTable(typeof(crxBook1Sqlite), typeof(crxCategory1Sqlite));
            AssertSql(
                @"CREATE TABLE [R_book_and_category] (
    [crxBook1Sqlite_Id] BIGINT NOT NULL ,
    [crxCategory1Sqlite_Id] BIGINT NOT NULL ,
    FOREIGN KEY([crxBook1Sqlite_Id]) REFERENCES [crx_Book1Sqlite] ([Id]) ,
    FOREIGN KEY([crxCategory1Sqlite_Id]) REFERENCES [crx_Category1Sqlite] ([Id]) 
);
CREATE INDEX [IX_R_book_and_category_crxBook1Sqlite_Id] ON [R_book_and_category] ([crxBook1Sqlite_Id] ASC);
CREATE INDEX [IX_R_book_and_category_crxCategory1Sqlite_Id] ON [R_book_and_category] ([crxCategory1Sqlite_Id] ASC);
<Text><30>()");
        }
コード例 #18
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
 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);
 }
コード例 #19
0
ファイル: LazyLoadFieldTest.cs プロジェクト: sfltd/DbEntry
 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);
 }
コード例 #20
0
ファイル: LazyLoadFieldTest.cs プロジェクト: sfltd/DbEntry
 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);
 }
コード例 #21
0
ファイル: SoftDeleteTest.cs プロジェクト: sasksinger/DbEntry
 public void TestCreateTable()
 {
     DbEntry.Create(typeof(SoftDeleteSqlite));
     Assert.AreEqual("CREATE TABLE [SoftDelete] (\n	[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n	[Name] NTEXT NOT NULL ,\n	[IsDeleted] BOOL NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage);
 }
コード例 #22
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);
        }
コード例 #23
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
 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);
 }
コード例 #24
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
 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);
 }
コード例 #25
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
 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);
 }
コード例 #26
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
 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);
 }
コード例 #27
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
 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]);
 }
コード例 #28
0
ファイル: SQLiteTest.cs プロジェクト: leohsu91/DbEntry
 public void TestUnsigned()
 {
     DbEntry.Create(typeof(UnsignedTestTable));
     Assert.AreEqual("CREATE TABLE [Unsigned_Test_Table] (\n\t[Name] NTEXT NOT NULL ,\n\t[Age] INT NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage);
 }