Esempio n. 1
0
        public void loop()
        {
            ConsoleTitleUtil.ShowTestTitle("loop");


            string looppage = @"
<table><!-- BEGIN newphotos -->
	<tr><td>{#Title#}</td><td>{#CreateTime#}</td></tr><!-- END newphotos -->
</table>
";

            Template loopTemplate = new Template();

            loopTemplate.InitContent(looppage);

            // 给循环块设值
            IBlock loopBlock = loopTemplate.GetBlock("newphotos");

            for (int i = 0; i < 5; i++)
            {
                loopBlock.Set("Title", "一百航的诗篇" + i);
                loopBlock.Set("CreateTime", DateTime.Now.ToString());
                loopBlock.Next();
            }

            Console.WriteLine(loopTemplate);
        }
Esempio n. 2
0
        public void FindCondition_NoJoinTable()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_NoJoinTable");

            // 不联表查询
            IList <TArticle> articles = db.find <TArticle>("Member.Id=:mid").set("mid", 7).select("Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name").list();

            //art.Select( "Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name" );
            //IList articles = art.Find( "Member.Id=:mid" ).Set( "mid",7 ).List();

            Assert.AreEqual(1, articles.Count);
            TArticle article = articles[0];

            Assert.IsNotNull(article);
            Assert.IsNotNull(article.Title);

            //sql缓存测试
            IList <TArticle> articles2 = db.find <TArticle>("Member.Id=:mid").set("mid", 7).select("Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name").list();

            //art2.Select( "Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name" );
            //IList articles2 = art2.Find( "Member.Id=:mid" ).Set( "mid",7 ).List();

            Assert.AreEqual(1, articles2.Count);
            TArticle article2 = articles2[0];

            Assert.IsNotNull(article2);
            Assert.IsNotNull(article2.Title);
        }
Esempio n. 3
0
        public void FindById()
        {
            ConsoleTitleUtil.ShowTestTitle("FindById");

            // 基类TDataRoot,子类TPost和TTopic

            //子类简单查询
            TPost post = TPost.findById(3) as TPost;

            Assert.IsNotNull(post);
            Assert.AreEqual(3, post.Id);
            Console.WriteLine("Id:{0}  Title:{1}", post.Id, post.Title);

            TPost post2 = TPost.findById(11) as TPost;

            Assert.IsNotNull(post2);


            //多态查询:正确判断结果是相应子类
            TDataRoot root = TDataRoot.findById(6);

            Assert.IsNotNull(root);
            Assert.AreEqual(6, root.Id);
            Assert.AreEqual(typeof(TTopic), root.GetType());

            //针对属性的多态查询
            Assert.AreEqual(typeof(TTopicCategory), root.Category.GetType());
        }
Esempio n. 4
0
        public void FindById_ContextCache()
        {
            ConsoleTitleUtil.ShowTestTitle("FindById_ContextCache");

            //复杂关联find
            TArticle art = TArticle.findById(1);

            Console.WriteLine("article 1 title is : " + art.Title);
            Assert.AreEqual("狂人日记", art.Title);

            //一级缓存
            TMember member = TMember.findById(13);

            Console.WriteLine("member 13 name is : " + member.Name);
            Assert.AreEqual("袁世凯", member.Name);

            TCat cat = TCat.findById(8);

            Console.WriteLine("cat 8 name is " + cat.Name);
            Assert.AreEqual("武侠小说", cat.Name);

            TBoard board = TBoard.findById(9);

            Console.WriteLine("board 9 name is : " + board.Name);
            Assert.AreEqual("board_互联网络", board.Name);
        }
Esempio n. 5
0
        public void UpdateCat()
        {
            ConsoleTitleUtil.ShowTestTitle("UpdateCat");

            TCat cat = TCat.findById(10);

            Console.WriteLine("\n读取 TCat{{Id:{0},Name:{1}}} code:{2} \n", cat.Id, cat.Name, cat.GetHashCode());
            Assert.AreEqual("国内新闻10", cat.Name);

            cat.Name = "糊播新闻10";
            db.update(cat);
            Console.WriteLine("\n更新 TCat{{Id:{0},Name:{1}}} code:{2} \n", cat.Id, cat.Name, cat.GetHashCode());

            cat = TCat.findById(10);
            Console.WriteLine("\n重新读取 TCat{{Id:{0},Name:{1}}} code:{2} \n", cat.Id, cat.Name, cat.GetHashCode());
            Assert.AreEqual("糊播新闻10", cat.Name);

            // Id 不可以修改
            //------------------------------------------------
            cat.Id = 101;
            cat.update();

            TCat newCat = TCat.findById(101);

            Assert.IsNull(newCat);
        }
Esempio n. 6
0
        //------------------------- Insert -------------------------

        public void InsertArticle()
        {
            ConsoleTitleUtil.ShowTestTitle("InsertArticle");

            TArticle art = new TArticle();

            art.Member     = TMember.findById(13);
            art.Cat        = TCat.findById(8);
            art.Board      = TBoard.findById(9);
            art.Author     = "54鲁迅";
            art.Title      = "狂人日记";
            art.CreateTime = DateTime.Now;
            art.ChannelId  = 18;
            art.IsDelete   = 0;
            art.OrderId    = 5;
            art.insert();
            int id = art.Id;

            art.Member     = TMember.findById(2);
            art.Cat        = TCat.findById(10);
            art.Board      = TBoard.findById(11);
            art.Author     = "周做人";
            art.Title      = "论雷锋大的倒掉";
            art.CreateTime = DateTime.Now;
            art.ChannelId  = 12;
            art.IsDelete   = 0;
            art.OrderId    = 8;
            art.insert();
            id = id + 1;
            Assert.AreEqual(id, art.Id);

            art.Member     = TMember.findById(7);
            art.Cat        = TCat.findById(4);
            art.Board      = TBoard.findById(4);
            art.Author     = "嵇康";
            art.Title      = "与善举员绝交数";
            art.CreateTime = DateTime.Now;
            art.ChannelId  = 4;
            art.IsDelete   = 0;
            art.OrderId    = 9;
            art.insert();
            id = id + 1;
            Assert.AreEqual(id, art.Id);

            art.Member     = TMember.findById(8);
            art.Cat        = TCat.findById(7);
            art.Board      = TBoard.findById(3);
            art.Author     = "羽化";
            art.Title      = "许三管买血迹";
            art.CreateTime = DateTime.Now;
            art.ChannelId  = 4;
            art.IsDelete   = 0;
            art.OrderId    = 15;
            art.insert();
            id = id + 1;
            Assert.AreEqual(id, art.Id);

            Console.WriteLine("添加 article 成功!");
        }
Esempio n. 7
0
        public void FindAll()
        {
            ConsoleTitleUtil.ShowTestTitle("FindAll");

            Console.WriteLine("__tpost__");

            // 子类直接查询:这个最简单,没有额外考虑
            //IList list = TPost.findAll();
            IList list = db.findAll <TPost>();

            Assert.AreEqual(list.Count, 20);
            foreach (TPost post in list)
            {
                Assert.AreEqual(typeof(TPostCategory), post.Category.GetType());     //检索实体属性的时候,使用了FindBy方法
                Console.WriteLine("Id:{0}  Title:{1}", post.Id, post.Title);
            }

            Console.WriteLine("__ttopic__");

            //IList topicList = TTopic.findAll();
            IList topicList = db.findAll <TTopic>();

            Assert.AreEqual(topicList.Count, 23);
            foreach (TTopic post in topicList)
            {
                Assert.AreEqual(typeof(TTopicCategory), post.Category.GetType());
                Console.WriteLine("Id:{0}  Title:{1}", post.Id, post.Title);
            }

            Console.WriteLine("__findAll__");

            //多态查询:将子类查询结果合并,并且根据多态查询所属分类
            IList list2 = TDataRoot.findAll();

            Assert.AreEqual(46, list2.Count);

            int rootDataCount = 0;

            foreach (TDataRoot root in list2)
            {
                if (root.GetType() == typeof(TPost))
                {
                    Assert.AreEqual(typeof(TPostCategory), root.Category.GetType());
                }
                else if (root.GetType() == typeof(TTopic))
                {
                    Assert.AreEqual(typeof(TTopicCategory), root.Category.GetType());
                }
                else if (root.GetType() == typeof(TDataRoot))
                {
                    rootDataCount += 1;
                    Assert.AreEqual(typeof(TCategory), root.Category.GetType());
                }

                Console.WriteLine("id:{1} [type]{0} [categoryType]:{3} title:{2}", Entity.GetInfo(root).FullName, root.Id, root.Title, root.Category.GetType());
            }
            Assert.AreEqual(3, rootDataCount);
        }
Esempio n. 8
0
        public void FindCondition_Simply3()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply");

            TCat mycat = TCat.find("Id=" + 3).first();

            Assert.IsNotNull(mycat);
            Assert.AreEqual("娱乐电影", mycat.Name);
        }
Esempio n. 9
0
        public void GetCat()
        {
            ConsoleTitleUtil.ShowTestTitle("GetCat");

            TCat cat = TCat.findById(20);

            Assert.AreEqual("国际新闻20", cat.Name);

            Console.WriteLine("\n读取 TCat{{Id:{0},Name:{1}}} code:{2} \n", cat.Id, cat.Name, cat.GetHashCode());
        }
Esempio n. 10
0
        public void FindCondition_LikeParams()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_LikeParams");


            List <TCat> cats = TCat.find("Name like '%'+:t+'%'").set("t", "新闻").list();

            Assert.AreEqual(2, cats.Count);

            Assert.AreEqual("国际新闻", cats[0].Name);
            Assert.AreEqual("国内新闻", cats[1].Name);
        }
Esempio n. 11
0
        public void FindCondition_Simply4()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply");

            IList <TArticle> articles = TArticle.find("OrderId=" + 9).list();

            Assert.AreEqual(1, articles.Count);

            TArticle art = articles[0];

            Assert.AreEqual("嵇康", art.Author);
        }
Esempio n. 12
0
        public void DeleteCat()
        {
            ConsoleTitleUtil.ShowTestTitle("DeleteCat");

            int retval = TCat.delete(30);

            Assert.AreEqual(1, retval);   // 删除了一条记录
            Console.WriteLine("\n删除 {0} 条记录 \n", retval);

            TCat mycat = TCat.findById(30);

            Assert.IsNull(mycat);
        }
Esempio n. 13
0
        public void UpdateACat()
        {
            ConsoleTitleUtil.ShowTestTitle("UpdateCat");

            TCat cat = TCat.findById(2);

            Assert.AreEqual("国际新闻", cat.Name);
            cat.Name = "这里不是新闻";
            cat.update();

            TCat newcat = TCat.findById(cat.Id);

            Assert.AreEqual("这里不是新闻", newcat.Name);
        }
Esempio n. 14
0
        public void FindById_Simply()
        {
            ConsoleTitleUtil.ShowTestTitle("FindById_Simply");

            //简易find
            TCat cat = TCat.findById(3);

            Console.WriteLine("cat name is : " + cat.Name);
            Assert.AreEqual("娱乐电影", cat.Name);

            TCat nullCat = TCat.findById(99999999);

            Assert.IsNull(nullCat);
        }
Esempio n. 15
0
        public void FindCondition_Simply2()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply");

            IList <TCat> cats = TCat.find("Id>" + 5).select("Id,Name,ArticleCount").list();

            Assert.AreEqual(7, cats.Count);

            foreach (TCat cat in cats)
            {
                Assert.Greater(cat.Id, 0);
                Assert.IsNotNull(cat.Name);
            }
        }
Esempio n. 16
0
        public void FindCondition_IncludeAll()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_IncludeAll");

            IList <TArticle> articles = TArticle.find("").list();

            Assert.AreEqual(4, articles.Count);
            foreach (TArticle myart in articles)
            {
                Assert.IsNotNull(myart.Title);
                Assert.IsNotNull(myart.Cat.Name);
                Assert.IsNotNull(myart.Board.Name);
            }
        }
Esempio n. 17
0
        public void InsertMember()
        {
            ConsoleTitleUtil.ShowTestTitle("InsertMember");

            TMember member = new TMember();

            member.Name = "张三";
            member.insert();

            member.Name = "屈原";
            member.insert();

            member.Name = "李白";
            member.insert();

            member.Name = "嵇康";
            member.insert();

            member.Name = "庄子";
            member.insert();

            member.Name = "杜甫";
            member.insert();

            member.Name = "苏轼";
            member.insert();

            member.Name = "李世民";
            member.insert();

            member.Name = "诸葛亮";
            member.insert();

            member.Name = "曹操";
            member.insert();

            member.Name = "司马迁";
            member.insert();

            member.Name = "孙中山";
            member.insert();

            member.Name = "袁世凯";
            member.insert();

            member.Name = "毛泽东";
            member.insert();

            Console.WriteLine("添加 member 成功!");
        }
Esempio n. 18
0
        public void FindAll_Simply()
        {
            ConsoleTitleUtil.ShowTestTitle("FindAll_Simply");

            IList <TCat> results = TCat.findAll();

            Assert.AreEqual(12, results.Count);
            foreach (TCat cat in results)
            {
                Assert.Greater(cat.Id, 0);
                Assert.IsNotNull(cat.Name);
                Console.WriteLine("TCat {0} - {1}", cat.Id, cat.Name);
            }
        }
Esempio n. 19
0
        public void FindCondition_OrderBy()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_OrderBy");


            IList <TCat> results = db.find <TCat>("order by Id desc").list();

            Assert.AreEqual(12, results.Count);
            foreach (TCat cat in results)
            {
                Assert.Greater(cat.Id, 0);
                Assert.IsNotNull(cat.Name);
                Console.WriteLine("TCat {0} - {1}", cat.Id, cat.Name);
            }
        }
Esempio n. 20
0
        public void FindCondition_Simply()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply");

            List <TCat> cats = db.find <TCat>("Id>:myid").set("myid", 5).select("Id,Name,ArticleCount").list();

            Assert.AreEqual(7, cats.Count);

            foreach (TCat cat in cats)
            {
                Assert.Greater(cat.Id, 0);
                Assert.IsNotNull(cat.Name);
                Console.WriteLine(cat.Id);
            }
        }
Esempio n. 21
0
        public void FindCondition_JoinTable()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_JoinTable");

            // 需要联表查询
            IList <TArticle> articles = TArticle.find("Member.Id=:mid and Cat.Name=:catname order by Id desc, Member.Id asc").set("mid", 7).set("catname", "音像世界").select("Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name").list();

            Assert.AreEqual(1, articles.Count);
            TArticle article = articles[0];

            Assert.IsNotNull(article);
            Assert.IsNotNull(article.Title);
            Assert.IsNotNull(article.Cat.Name);
            Assert.IsNotNull(article.Board.Name);
        }
Esempio n. 22
0
        public void ZDelete()
        {
            ConsoleTitleUtil.ShowTestTitle("Delete");


            int    id = 2;
            TBoard bd = TBoard.findById(id);

            Assert.IsNotNull(bd);
            Assert.AreEqual(id, bd.Id);
            db.delete(bd);

            TBoard myboard = TBoard.findById(id);

            Assert.IsNull(myboard);
        }
Esempio n. 23
0
        public void loopThird()
        {
            ConsoleTitleUtil.ShowTestTitle("loopThird");

            string looppage = @"
<table>
<!-- BEGIN newphotos -->
	<tr><td>{#Title#}</td><td>{#CreateTime#}</td></tr>
	<tr><td colspan=2><!-- BEGIN item --> {#Name#} 
<!-- BEGIN suitem -->
{#SubName#}<br/><!-- END suitem -->
<!-- END item --></td></tr>
<!-- END newphotos -->
</table>
";

            Template t = new Template();

            t.InitContent(looppage);

            IBlock block = t.GetBlock("newphotos");

            for (int i = 0; i < 3; i++)
            {
                block.Set("Title", "mytitle" + i);
                block.Set("CreateTime", "190" + i);

                IBlock block2 = block.GetBlock("item");
                for (int k = 0; k < 3; k++)
                {
                    block2.Set("Name", "nameis" + k);
                    IBlock subblock = block2.GetBlock("suitem");
                    for (int j = 0; j < 3; j++)
                    {
                        subblock.Set("SubName", "xxsub" + j);
                        subblock.Next();
                    }

                    block2.Next();
                }

                block.Next();
            }

            Console.WriteLine(t);
        }
Esempio n. 24
0
        public void FindCondition_Simply4()
        {
            ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply4");

            IList <TArticle> articles = db.find <TArticle>("OrderId=" + 9).list();

            Assert.AreEqual(1, articles.Count);

            TArticle art = articles[0];

            Assert.AreEqual("嵇康", art.Author);

            IList <TCat> cats = TArticle.find("OrderId=" + 9).listChildren <TCat>("Cat");

            Assert.AreEqual(1, cats.Count);
            Assert.AreEqual("音像世界", cats[0].Name);
        }
Esempio n. 25
0
        public void Delete()
        {
            ConsoleTitleUtil.ShowTestTitle("Delete");

            //子类删除:删除子类的同时,也要删除父类中的数据
            TPost post = TPost.findById(11) as TPost;

            Assert.IsNotNull(post);
            db.delete(post);

            post = TPost.findById(11) as TPost;
            Assert.IsNull(post);

            //父类删除:同时删除子类
            TDataRoot.delete(13);
            Assert.IsNull(TDataRoot.findById(13));
        }
Esempio n. 26
0
        public void InsertCat()
        {
            ConsoleTitleUtil.ShowTestTitle("InsertCat");


            TCat cat = new TCat();

            cat.Name = "国内新闻";
            cat.insert();

            cat.Name = "国际新闻";
            cat.insert();

            cat.Name = "娱乐电影";
            cat.insert();

            cat.Name = "音像世界";
            cat.insert();

            cat.Name = "游戏广场";
            cat.insert();

            cat.Name = "文学艺术";
            cat.insert();

            cat.Name = "电视剧本";
            cat.insert();

            cat.Name = "武侠小说";
            cat.insert();

            cat.Name = "互联网络";
            cat.insert();

            cat.Name = "软件服务";
            cat.insert();

            cat.Name = "笑话幽默";
            cat.insert();

            cat.Name = "金融期货";
            cat.insert();

            Console.WriteLine("添加 cat 成功!");
        }
Esempio n. 27
0
        public void InsertBoard()
        {
            ConsoleTitleUtil.ShowTestTitle("InsertBoard");


            TBoard board = new TBoard();

            board.Name = "board_国内新闻";
            board.insert();

            board.Name = "board_国际新闻";
            board.insert();

            board.Name = "board_娱乐电影";
            board.insert();

            board.Name = "board_音像世界";
            board.insert();

            board.Name = "board_游戏广场";
            board.insert();

            board.Name = "board_文学艺术";
            board.insert();

            board.Name = "board_电视剧本";
            board.insert();

            board.Name = "board_武侠小说";
            board.insert();

            board.Name = "board_互联网络";
            board.insert();

            board.Name = "board_软件服务";
            board.insert();

            board.Name = "board_笑话幽默";
            board.insert();

            board.Name = "board_金融期货";
            board.insert();

            Console.WriteLine("添加 board 成功!");
        }
Esempio n. 28
0
        public void Update()
        {
            ConsoleTitleUtil.ShowTestTitle("Update");

            //子类更新:父类相应属性也要更新
            TPost post = TPost.findById(3) as TPost;

            post.Title = "**更新之后的子类";
            db.update(post);

            string sql   = "select title from Tdataroot where id=3";
            string title = wojilu.Data.EasyDB.ExecuteScalar(sql, wojilu.Data.DbContext.getConnection(post.GetType())) as string;

            Assert.IsNotNull(title);
            Assert.AreEqual(post.Title, title);

            //父类更新:其实是真实的底层子类更新,同上
        }
Esempio n. 29
0
        public void FindAll_IncludeAll()
        {
            ConsoleTitleUtil.ShowTestTitle("FindAll_Include");

            IList <TArticle> arts = TArticle.findAll();

            Assert.AreEqual(4, arts.Count);
            foreach (TArticle a in arts)
            {
                Assert.Greater(a.Id, 0);

                Assert.IsNotNull(a.Title);
                Assert.IsNotNull(a.Member.Name);
                Assert.IsNotNull(a.Cat.Name);
                Assert.IsNotNull(a.Board.Name);

                Console.WriteLine(a.Title + "\t" + a.Member.Name + "\t" + a.Cat.Name + "\t" + a.Board.Name);
            }
        }
Esempio n. 30
0
        public void InsertCat()
        {
            ConsoleTitleUtil.ShowTestTitle("InsertCat");

            TCat cat = new TCat();

            cat.Id   = 10;
            cat.Name = "国内新闻10";
            db.insert(cat);

            cat.Name = "国际新闻20";
            cat.Id   = 20;
            db.insert(cat);

            cat.Name = "金融期货30";
            cat.Id   = 30;
            db.insert(cat);

            Console.WriteLine("\n添加 cat 成功!\n\n");
        }