public static DraftSuggestions GetTagSuggestion( Guid contentId, IEnumerable <string> highlights, IEnumerable <string> existingTags) { var matchingTags = ExtractTagSuggestion(highlights); var draftSuggestion = new DraftSuggestions(existingTags) { Id = contentId }; draftSuggestion.SetTagSuggestions(matchingTags); return(draftSuggestion); }
public async Task GivenExistingNews_WhenGettingRelatedSuggestion_ThenReturnsCollection() { // Arrange var suggestedDraft = CreateDraftEntity(); var draftSuggestions = new DraftSuggestions { Id = Guid.NewGuid(), Tags = new [] { "tag1", "tag2" }, Drafts = new[] { new Draft { Id = suggestedDraft.Id, CreatedAt = suggestedDraft.CreatedAt, } } }; string urlRequest = Endpoint.Replace("{id}", draftSuggestions.Id.ToString()); var endpoint = GetUriWithQueryString(urlRequest, ("take", 10)); Factory.DraftSuggestionsRepositoryMock.Setup(m => m.Get(draftSuggestions.Id)).Returns(Task.FromResult(draftSuggestions)); Factory.DraftRepositoryMock.Setup(m => m.Get(suggestedDraft.Id)).Returns(Task.FromResult(suggestedDraft)); // Act var response = await Client.GetAsync(endpoint.PathAndQuery); // Assert response.ShouldBeSuccessful(); var envelope = await response.ShouldBeOfType <DraftSuggestionsDto>(); envelope.ShouldBeSuccessful(); envelope.Payload.Id.Should().Be(draftSuggestions.Id); envelope.Payload.Tags.Should().BeEquivalentTo(draftSuggestions.Tags); envelope.Payload.Drafts.Should().HaveCount(draftSuggestions.Drafts.Count()); var suggestion = envelope.Payload.Drafts.First(); suggestion.Id.Should().Be(suggestedDraft.Id); suggestion.Title.Should().Be(suggestedDraft.Title); suggestion.Url.Should().Be(suggestedDraft.Uri); }