Пример #1
0
        public void SetReadHomeTab_ContainsFilterHitTest()
        {
            var homeTab = this.tabinfo.Tabs["Recent"];

            // Recent に追加するツイート (StatusId: 100, 150, 200; すべて未読)
            homeTab.UnreadManage = true;
            this.tabinfo.AddPost(new PostClass {
                StatusId = 100L, IsRead = false, RelTabName = ""
            });
            this.tabinfo.AddPost(new PostClass {
                StatusId = 150L, IsRead = false, RelTabName = ""
            });
            this.tabinfo.AddPost(new PostClass {
                StatusId = 200L, IsRead = false, RelTabName = ""
            });

            // StatusId: 150 だけ FilterTab の振り分けルールにヒットする (PostClass.FilterHit が true になる)
            this.tabinfo.AddTab("FilterTab", MyCommon.TabUsageType.UserDefined, null);
            var filterTab = this.tabinfo.Tabs["FilterTab"];

            filterTab.AddFilter(TestPostFilterRule.Create(x =>
                                                          x.StatusId == 150L ? MyCommon.HITRESULT.Copy : MyCommon.HITRESULT.None));

            this.tabinfo.DistributePosts();

            string soundFile = null;

            PostClass[] notifyPosts = null;
            bool        isMentionIncluded = false, isDeletePost = false;

            this.tabinfo.SubmitUpdate(ref soundFile, ref notifyPosts, ref isMentionIncluded, ref isDeletePost, false);

            // この時点でのHomeタブの未読件数
            Assert.Equal(3, homeTab.UnreadCount);

            // Recent タブのツイートをすべて未読にする
            this.tabinfo.SetReadHomeTab();

            // FilterHit が true である StatusId: 150 を除いてすべて未読になっている
            Assert.Equal(1, homeTab.UnreadCount);
            Assert.Equal(150L, homeTab.OldestUnreadId);
        }
Пример #2
0
        public void SetReadHomeTab_ContainsFilterHitTest()
        {
            var homeTab = this.tabinfo.Tabs["Recent"];

            // Recent に追加するツイート (StatusId: 100, 150, 200; すべて未読)
            homeTab.UnreadManage = true;
            this.tabinfo.AddPost(new PostClass {
                StatusId = 100L, IsRead = false
            });
            this.tabinfo.AddPost(new PostClass {
                StatusId = 150L, IsRead = false
            });
            this.tabinfo.AddPost(new PostClass {
                StatusId = 200L, IsRead = false
            });

            // StatusId: 150 だけ FilterTab の振り分けルールにヒットする (PostClass.FilterHit が true になる)
            var filterTab = new FilterTabModel("FilterTab");

            filterTab.AddFilter(TestPostFilterRule.Create(x =>
                                                          x.StatusId == 150L ? MyCommon.HITRESULT.Copy : MyCommon.HITRESULT.None));
            this.tabinfo.AddTab(filterTab);

            this.tabinfo.DistributePosts();
            this.tabinfo.SubmitUpdate();

            // この時点でのHomeタブの未読件数
            Assert.Equal(3, homeTab.UnreadCount);

            // Recent タブのツイートをすべて未読にする
            this.tabinfo.SetReadHomeTab();

            // FilterHit が true である StatusId: 150 を除いてすべて未読になっている
            Assert.Equal(1, homeTab.UnreadCount);
            Assert.Equal(150L, homeTab.NextUnreadId);
        }