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); }
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); }