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); }
public void TestForNormalIndexName() { DbEntry.Create(typeof(fbLongName2)); string s = getIndexName(); Debug.Assert(s != null); Assert.AreEqual("IX_FB_LONG_NAME2_NAME", s); }
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>()"); }
public void TestDefineContext() { DbEntry.Create(typeof(ForDefineContext)); AssertSql(@"CREATE TABLE [For_Define_Context] ( [Id] INTEGER PRIMARY KEY AUTOINCREMENT , [Name] NTEXT NOT NULL ); <Text><30>()"); }
public void TestToAvoidMoreThan31CharsIndexName() { DbEntry.Create(typeof(fbLongName)); string s = getIndexName(); Debug.Assert(s != null); Assert.AreEqual(29, s.Length); Assert.AreEqual("IX_1QCVK84BPESSPIBHJ1ND74RDE7", s); }
public void TestBinaryAndBlob() { DbEntry.Create(typeof(BinaryAndBLOB)); AssertSql( @"CREATE TABLE [Binary_And_BLOB] ( [password] BINARY (5) NOT NULL , [image] BLOB NOT NULL ); <Text><30>()"); }
public void TestTableName() { DbEntry.Create(typeof(compTableName)); AssertSql( @"CREATE TABLE [tom].[test_table] ( [Id] INTEGER PRIMARY KEY AUTOINCREMENT , [Name] NTEXT NOT NULL ); <Text><30>()"); }
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]); }
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>()"); }
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>()"); }
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>()"); }
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>()"); }
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]); }
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>()"); }
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); }
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); }
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>()"); }
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 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); }
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); }
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); }
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 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); }
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 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); }
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 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]); }
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); }