public void RunSearchAsync_OptionsOk_ChewckRunClassifyAsyncCalled() { // Arrange var options = new SearchOptions() { DateFrom = DateTime.Now.AddDays(-10), DateTo = DateTime.Now.AddDays(10), SearchOutputType = SearchOutputType.Link, OutputDirectory = @"C:\ResultSearch", Tags = true, Comments = true, Location = true, Recursive = true, Directory = @"C:\Temp", SearchKeywords = "Home Holliday", }; var expectedTask = Task.FromResult(0); _searchOperation.SearchMediaAsync( Arg.Any<string>(), Arg.Any<SearchOutputType>(), Arg.Any<string>(), Arg.Any<SearchCriteria>(), Arg.Any<DateTime?>(), Arg.Any<DateTime?>(), Arg.Any<string>()).Returns(expectedTask); // Act var task = _target.RunSearchAsync(options); // Assert _searchOperation.Received(1).SearchMediaAsync( options.Directory, options.SearchOutputType, options.OutputDirectory, SearchCriteria.Tags | SearchCriteria.Comments | SearchCriteria.Location, options.DateFrom, options.DateTo, options.SearchKeywords); Assert.AreSame(expectedTask, task); }
/// <summary> /// Runs the search operation. /// </summary> /// <returns>A task that represents the search operation.</returns> /// <param name="searchOptions">Search options.</param> public Task RunSearchAsync(SearchOptions searchOptions) { if (searchOptions == null) throw new ArgumentNullException("searchOptions"); LogHelper.InitializeLogging(searchOptions); Log.T("Processing 'tag' operation."); var criterias = SearchCriteria.None; if (searchOptions.Tags) criterias |= SearchCriteria.Tags; if (searchOptions.Comments) criterias |= SearchCriteria.Comments; if (searchOptions.Location) criterias |= SearchCriteria.Location; return _searchOperation.SearchMediaAsync( searchOptions.Directory, searchOptions.SearchOutputType, searchOptions.OutputDirectory, criterias, searchOptions.DateFrom, searchOptions.DateTo, searchOptions.SearchKeywords); }