public async Task PerformSearch_WhenSearchHasNoResults_SetsStateToNoResultsFound()
        {
            var searchResultCollection = new SearchResultCollection();
            var searchResult           = new MockSearchResult {
                GetResultFunc = () => searchResultCollection
            };

            MockSubsonicService.Search = s => searchResult;

            await Task.Run(() => Subject.PerformSearch("test"));

            Subject.State.Should().Be(SearchResultState.NoResultsFound);
        }
        public async Task Populate_WhenSearchHasNoResults_SetsStateToNoResultsFound()
        {
            var searchResultCollection = new SearchResultCollection();
            var searchResult           = new MockSearchResult {
                GetResultFunc = () => searchResultCollection
            };

            MockSubsonicService.Search = s => searchResult;

            await Subject.Populate();

            Subject.State.Should().Be(SearchResultState.NoResultsFound);
        }
        public async Task PerformSearch_Always_PerformsASubsonicSearch()
        {
            var callCount    = 0;
            var searchResult = new MockSearchResult();

            MockSubsonicService.Search = s =>
            {
                Assert.AreEqual("test", s);
                callCount++;
                return(searchResult);
            };

            await Task.Run(() => Subject.PerformSearch("test"));

            Assert.AreEqual(1, callCount);
        }
        public void Populate_Always_PerformsASubsonicSearch()
        {
            var callCount    = 0;
            var searchResult = new MockSearchResult();

            MockSubsonicService.Search = s =>
            {
                Assert.AreEqual("test", s);
                callCount++;
                return(searchResult);
            };

            Subject.Parameter = "test";

            Assert.AreEqual(1, callCount);
        }