OSDN Git Service

Assert.Empty, Assert.Single を使用する (xUnit2013)
[opentween/open-tween.git] / OpenTween.Tests / Models / TabInformationTest.cs
index cfe2279..56ee167 100644 (file)
@@ -310,6 +310,61 @@ namespace OpenTween.Models
         public void SelectTab_NotExistTest()
             => Assert.Throws<ArgumentException>(() => this.tabinfo.SelectTab("INVALID"));
 
+        [Fact]
+        public void LoadTabsFromSettings_Test()
+        {
+            var settingTabs = new SettingTabs
+            {
+                Tabs =
+                {
+                    new()
+                    {
+                        TabName = "hoge",
+                        TabType = MyCommon.TabUsageType.PublicSearch,
+                        SearchWords = "aaa",
+                    },
+                },
+            };
+            var tabinfo = this.CreateInstance();
+            tabinfo.LoadTabsFromSettings(settingTabs);
+            Assert.Single(tabinfo.Tabs);
+
+            var tab = (PublicSearchTabModel)tabinfo.Tabs["hoge"];
+            Assert.Equal("aaa", tab.SearchWords);
+        }
+
+        [Fact]
+        public void LoadTabsFromSettings_DuplicateTabNameTest()
+        {
+            var settingTabs = new SettingTabs
+            {
+                Tabs =
+                {
+                    new()
+                    {
+                        TabName = "hoge",
+                        TabType = MyCommon.TabUsageType.PublicSearch,
+                        SearchWords = "aaa",
+                    },
+                    new()
+                    {
+                        TabName = "hoge", // 重複したタブ名
+                        TabType = MyCommon.TabUsageType.PublicSearch,
+                        SearchWords = "bbb",
+                    },
+                },
+            };
+            var tabinfo = this.CreateInstance();
+            tabinfo.LoadTabsFromSettings(settingTabs);
+            Assert.Equal(2, tabinfo.Tabs.Count);
+
+            var tab1 = (PublicSearchTabModel)tabinfo.Tabs["hoge"];
+            Assert.Equal("aaa", tab1.SearchWords);
+
+            var tab2 = (PublicSearchTabModel)tabinfo.Tabs["hoge2"];
+            Assert.Equal("bbb", tab2.SearchWords);
+        }
+
         [Theory]
         [InlineData(MyCommon.TabUsageType.Home, typeof(HomeTabModel))]
         [InlineData(MyCommon.TabUsageType.Mentions, typeof(MentionsTabModel))]
@@ -375,7 +430,7 @@ namespace OpenTween.Models
         public void AddDefaultTabs_Test()
         {
             var tabinfo = this.CreateInstance();
-            Assert.Equal(0, tabinfo.Tabs.Count);
+            Assert.Empty(tabinfo.Tabs);
 
             tabinfo.AddDefaultTabs();
 
@@ -1280,6 +1335,71 @@ namespace OpenTween.Models
             Assert.True(post.IsOwl);
         }
 
+        [Fact]
+        public void GetTabByType_Generics_Test()
+        {
+            var tab = new PublicSearchTabModel("search");
+            this.tabinfo.AddTab(tab);
+            Assert.Same(tab, this.tabinfo.GetTabByType<PublicSearchTabModel>());
+        }
+
+        [Fact]
+        public void GetTabByType_Generics_NotFoundTest()
+            => Assert.Null(this.tabinfo.GetTabByType<PublicSearchTabModel>());
+
+        [Fact]
+        public void GetTabByType_Enum_Test()
+        {
+            var tab = new PublicSearchTabModel("search");
+            this.tabinfo.AddTab(tab);
+            Assert.Same(tab, this.tabinfo.GetTabByType(MyCommon.TabUsageType.PublicSearch));
+        }
+
+        [Fact]
+        public void GetTabByType_Enum_NotFoundTest()
+            => Assert.Null(this.tabinfo.GetTabByType(MyCommon.TabUsageType.PublicSearch));
+
+        [Fact]
+        public void GetTabsByType_Generics_Test()
+        {
+            var tab1 = new PublicSearchTabModel("search1");
+            var tab2 = new PublicSearchTabModel("search2");
+            this.tabinfo.AddTab(tab1);
+            this.tabinfo.AddTab(tab2);
+            Assert.Equal(new[] { tab1, tab2 }, this.tabinfo.GetTabsByType<PublicSearchTabModel>());
+        }
+
+        [Fact]
+        public void GetTabsByType_Enum_Test()
+        {
+            var tab1 = new PublicSearchTabModel("search1");
+            var tab2 = new PublicSearchTabModel("search2");
+            this.tabinfo.AddTab(tab1);
+            this.tabinfo.AddTab(tab2);
+            Assert.Equal(new[] { tab1, tab2 }, this.tabinfo.GetTabsByType(MyCommon.TabUsageType.PublicSearch));
+        }
+
+        [Fact]
+        public void GetTabsInnerStorageType_Test()
+        {
+            Assert.Equal(
+                new TabModel[] { this.tabinfo.DirectMessageTab },
+                this.tabinfo.GetTabsInnerStorageType()
+            );
+        }
+
+        [Fact]
+        public void GetTabByName_Test()
+        {
+            var tab = new PublicSearchTabModel("search");
+            this.tabinfo.AddTab(tab);
+            Assert.Same(tab, this.tabinfo.GetTabByName("search"));
+        }
+
+        [Fact]
+        public void GetTabByName_NotFoundTest()
+            => Assert.Null(this.tabinfo.GetTabByName("UNKNOWN_NAME"));
+
         private class TestPostFilterRule : PostFilterRule
         {
             public static PostFilterRule Create(Func<PostClass, MyCommon.HITRESULT> filterDelegate)