public void GetMatchPath_WhenExists_1()
        {
            var popFolderPath   = PathExtension.Normalize(fixturesFolder + @"/music/pop/");
            var houseFolderPath = PathExtension.Normalize(fixturesFolder + @"/music/house/");
            var mainFolderPath  = PathExtension.Normalize(fixturesFolder + @"/music/deep/");
            var specFolderPath  = PathExtension.Normalize(fixturesFolder + @"/music/spec/");

            var collection = new HashTagFolderCollection
            {
                { popFolderPath, "#pop" },
                { houseFolderPath, "#house" },
                { houseFolderPath, "#house #pop" },
                { mainFolderPath, "#deep" },
                { mainFolderPath, "#deep #house" },
                { mainFolderPath, "#deep #house #pop" },
                { mainFolderPath, "#newdisco" },
                { specFolderPath, "#spec" },
                { specFolderPath, "#trap" },
                { specFolderPath, "#rnb" },
                { specFolderPath, "#pop #spec" },
                { specFolderPath, "#house #spec" },
                { specFolderPath, "#house #spec #pop" },
            };

            Assert.AreEqual(houseFolderPath, collection.GetMatchPath(HashTagModel.Parser.All("#pop #house #entrophy")));
            Assert.AreEqual(popFolderPath, collection.GetMatchPath(HashTagModel.Parser.All("#entrophy #pop")));
            Assert.AreEqual(houseFolderPath, collection.GetMatchPath(HashTagModel.Parser.All("#house #entrophy")));
            Assert.AreEqual(specFolderPath, collection.GetMatchPath(HashTagModel.Parser.All("#spec #entrophy")));
            Assert.AreEqual(specFolderPath,
                            collection.GetMatchPath(HashTagModel.Parser.All("#spec #pop #house #entrophy")));
            Assert.AreEqual(specFolderPath,
                            collection.GetMatchPath(HashTagModel.Parser.All("#spec #pop #house #deep #entrophy")));
            Assert.AreEqual(mainFolderPath,
                            collection.GetMatchPath(HashTagModel.Parser.All("#pop #house #deep #entrophy")));
        }
        public void NotThrowsException_OnAddFolderWithSinglePatternThatHasSameHashTag()
        {
            var collection = new HashTagFolderCollection
            {
                { fixturesFolder + @"/music/pop/", "#pop #house" }
            };

            collection.Add(fixturesFolder + @"/music/deep/", "#pop");
        }
        public void MustMoveToMorePrioritySubsetofModel()
        {
            const string popPath   = fixturesFolder + @"/music/pop";
            const string housePath = fixturesFolder + @"/music/house";
            const string mainPath  = fixturesFolder + @"/music/deep";

            var collection = new HashTagFolderCollection
            {
                { housePath, "#house #deep" },
                { popPath, "#pop" },
                { housePath, "#house", 1 },
                { mainPath, "#deep", 2 },
            };

            const string expectedPath = mainPath;
            var          actualPath   = collection.GetMatchPath(HashTagModel.Parser.All("#pop #house #deep"));

            Assert.AreEqual(expectedPath, actualPath);
        }