public async Task ReturnsSuggestionsWithoutDuplicates() { var randomProvider = makeProvider(new List <Suggestion> { makeSuggestion("same description", 12, SuggestionProviderType.MostUsedTimeEntries) }); var suggestionProvidersObservable = Observable.Return(new List <ISuggestionProvider> { randomProvider, randomProvider, randomProvider }); var interactorFactory = Substitute.For <IInteractorFactory>(); interactorFactory.GetSuggestionProviders(3).Execute() .Returns(suggestionProvidersObservable); var interactor = new GetSuggestionsInteractor(3, interactorFactory); var suggestions = await interactor.Execute(); suggestions.Should().HaveCount(1); }
public async Task ReturnsSuggestionsWithoutRemoveingNonDuplicates() { var randomProvider1 = makeProvider(new List <Suggestion> { makeSuggestion("1 description", 11, SuggestionProviderType.RandomForest) }); var randomProvider2 = makeProvider(new List <Suggestion> { makeSuggestion("2 description", 12, SuggestionProviderType.MostUsedTimeEntries) }); var randomProvider3 = makeProvider(new List <Suggestion> { makeSuggestion("3 description", 13, SuggestionProviderType.Calendar) }); var suggestionProvidersObservable = Observable.Return(new List <ISuggestionProvider> { randomProvider1, randomProvider2, randomProvider3 }); var interactorFactory = Substitute.For <IInteractorFactory>(); interactorFactory.GetSuggestionProviders(3).Execute() .Returns(suggestionProvidersObservable); var interactor = new GetSuggestionsInteractor(3, interactorFactory); var suggestions = await interactor.Execute(); suggestions.Should().HaveCount(3); }
public async Task ReturnsSuggestionsWithCountEqualOrLessThanRequested(int numberOfProviders, int numberofSuggestionsPerProvider) { var suggestionProvidersObservable = Observable.Return(makeCombinationProvidersAndSuggestions(numberOfProviders, numberofSuggestionsPerProvider)); var interactorFactory = Substitute.For <IInteractorFactory>(); interactorFactory.GetSuggestionProviders(3).Execute() .Returns(suggestionProvidersObservable); var interactor = new GetSuggestionsInteractor(3, interactorFactory); var suggestions = await interactor.Execute(); suggestions.Should().HaveCountLessOrEqualTo(3); }