public void Latest()
        {
            var settings = new BeatSaverFeedSettings(BeatSaverFeedName.Latest);
            var feed     = new BeatSaverFeed(settings);

            feed.EnsureValidSettings();
            Assert.IsTrue(feed.HasValidSettings);
        }
        public void Search_HasQuery()
        {
            var settings     = new BeatSaverFeedSettings(BeatSaverFeedName.Search);
            var queryBuilder = new SearchQueryBuilder(BeatSaverSearchType.all, "test");

            settings.SearchQuery = queryBuilder.GetQuery();
            var feed = new BeatSaverFeed(settings);

            feed.EnsureValidSettings();
            Assert.IsTrue(feed.HasValidSettings);
        }
        public void Author_EmptyCriteria()
        {
            var settings     = new BeatSaverFeedSettings(BeatSaverFeedName.Author);
            var queryBuilder = new SearchQueryBuilder(BeatSaverSearchType.author, "");

            settings.SearchQuery = queryBuilder.GetQuery();
            var feed = new BeatSaverFeed(settings);
            var ex   = Assert.ThrowsException <InvalidFeedSettingsException>(() => feed.EnsureValidSettings());

            Console.WriteLine(ex.Message);
            Assert.IsFalse(feed.HasValidSettings);
        }
        public void UnusedQuery()
        {
            var querylessFeeds = new BeatSaverFeedName[] { BeatSaverFeedName.Latest, BeatSaverFeedName.Plays };
            var queryBuilder   = new SearchQueryBuilder(BeatSaverSearchType.all, "test");

            foreach (var feedType in querylessFeeds)
            {
                var settings = new BeatSaverFeedSettings(feedType);
                settings.SearchQuery = queryBuilder.GetQuery();
                var feed = new BeatSaverFeed(settings);
                feed.EnsureValidSettings();
                Assert.IsTrue(feed.HasValidSettings);
            }
        }
        public void Search_NullQuery()
        {
            var settings = new BeatSaverFeedSettings(BeatSaverFeedName.Search);
            var feed     = new BeatSaverFeed(settings);
            var ex       = Assert.ThrowsException <InvalidFeedSettingsException>(() => feed.EnsureValidSettings());

            Console.WriteLine(ex.Message);
            Assert.IsFalse(feed.HasValidSettings);
        }