private ReadOnlyCollection <MediaInstance> GetFilteredMedia(SearchMediaData searchMedia) { var tagFilter = new TagFilter(searchMedia.IncludedTags, searchMedia.ExcludedTags, _tagGraph.Object); var filteredMedia = tagFilter.Filter(_mediaInstances.ToList().AsReadOnly()); return(filteredMedia); }
private ISet <MediaInstance> GetFilteredMedia(SearchMediaData searchMedia, DbSet <MediaInstance> mediaInstances) { var favoriteMediaFilter = new FavoriteMediaFilter(searchMedia.UserId); var filteredMedia = favoriteMediaFilter.Filter(mediaInstances.ToList().AsReadOnly()) .ToHashSet(); return(filteredMedia); }
private ISet <MediaInstance> GetFilteredMedia(SearchMediaData searchMedia, DbSet <MediaInstance> mediaInstances) { var timeRangeFilter = new TimeRangeFilter(searchMedia.TimeRangeStart, searchMedia.TimeRangeEnd); var filteredMedia = timeRangeFilter.Filter(mediaInstances.ToList().AsReadOnly()) .ToHashSet(); return(filteredMedia); }
public void GivenTagsToExclude_MediaWithoutExcludedTagsAreReturned() { string[] excludedTags = { "books", "sport" }; var searchMedia = new SearchMediaData() { ExcludedTags = excludedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Should().ContainSingle(mi => mi.Id == "3"); }
public void GivenNonexistentExcludedTag_AllMediaAreReturned() { string[] excludedTags = { "football" }; var searchMedia = new SearchMediaData() { ExcludedTags = excludedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Should().BeEquivalentTo(_mediaInstances); }
public void GivenNonexistentIncludedTag_NoMediaIsReturned() { string[] includedTags = { "football" }; var searchMedia = new SearchMediaData() { IncludedTags = includedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Should().BeEmpty(); }
public void GivenExistingTag_ConnectedMediaAreReturned() { string[] includedTags = { "books" }; var searchMedia = new SearchMediaData() { IncludedTags = includedTags, }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Should().ContainSingle(mi => mi.Id == "1"); }
public void GivenExcludedTags_MediaWithoutTagOrSuccessorTagsAreReturned() { string[] excludedTags = { "famous building" }; var searchMedia = new SearchMediaData() { ExcludedTags = excludedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Select(mi => mi.Id).Should().HaveCount(7) .And.Contain(new[] { "1", "2", "3", "11", "12", "13", "14" }); }
public void GivenUserId_OtherUsersPrivateMediaAreNotReturned() { var userId = "user1"; var searchMedia = new SearchMediaData() { UserId = userId }; var mediaInstances = new PrivateInstancesTestsDbSet().Instances; var filteredMedia = GetFilteredMedia(searchMedia, mediaInstances); filteredMedia.Should().NotContain(mi => mi.Id == "3"); }
public void GivenIncludedTags_MediaWithTagOrSuccessorTagsAreReturned() { string[] includedTags = { "politics" }; var searchMedia = new SearchMediaData() { IncludedTags = includedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Select(mi => mi.Id).Should().HaveCount(5) .And.Contain(new[] { "11", "12", "13", "14", "16" }); }
public void GivenIncludedAndExcludedTagsBelongingToTheSameMedia_NoMediaAreReturned() { string[] includedTags = { "islands" }; string[] excludedTags = { "books", "sport" }; var searchMedia = new SearchMediaData() { IncludedTags = includedTags, ExcludedTags = excludedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Should().BeEmpty(); }
public void GivenBothIncludedAndExcludedTags_CorrectMediaAreReturned() { string[] includedTags = { "university" }; string[] excludedTags = { "books", "sport" }; var searchMedia = new SearchMediaData() { IncludedTags = includedTags, ExcludedTags = excludedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Should().ContainSingle(mi => mi.Id == "3"); }
public void GivenIncludedChildTagAndExcludedParentTag_NoMediaAreReturned() { string[] includedTags = { "usa" }; string[] excludedTags = { "politics" }; var searchMedia = new SearchMediaData() { IncludedTags = includedTags, ExcludedTags = excludedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Should().BeEmpty(); }
public void GivenTimeRangeStart_MediaCreatedAfterAreReturned() { var timeRangeStart = new DateTime(2008, 3, 1, 0, 0, 0); var searchMedia = new SearchMediaData() { TimeRangeStart = timeRangeStart }; var mediaInstances = new TimeRangeTestsDbSet().Instances; var filteredMedia = GetFilteredMedia(searchMedia, mediaInstances); filteredMedia.Should().HaveCount(2); filteredMedia.Should().Contain(mi => mi.Id == "1"); filteredMedia.Should().Contain(mi => mi.Id == "3"); }
public void GivenUserId_PublicMediaAreReturned() { var userId = "user1"; var searchMedia = new SearchMediaData() { UserId = userId }; var mediaInstances = new PrivateInstancesTestsDbSet().Instances; var filteredMedia = GetFilteredMedia(searchMedia, mediaInstances); filteredMedia.Should().Contain(mi => mi.Id == "2") .And.Contain(mi => mi.Id == "4") .And.Contain(mi => mi.Id == "5"); }
public void GivenIncludedParentTagAndExcludedChildTag_MediaWithTagOrNonExcludedSuccessorsAreReturned() { string[] includedTags = { "politics" }; string[] excludedTags = { "usa" }; var searchMedia = new SearchMediaData() { IncludedTags = includedTags, ExcludedTags = excludedTags }; var filteredMedia = GetFilteredMedia(searchMedia); filteredMedia.Select(mi => mi.Id).Should().HaveCount(2) .And.Contain(new[] { "11", "13" }); }
public void GivenUserAndMediaDataSet_UsersFavoriteMediaAreReturned() { var givenUserId = "user1"; var givenMediaInstances = new FavoriteMediaTestsDbSet().Instances; var givenSearchMediaData = new SearchMediaData() { UserId = givenUserId }; var filteredMedia = GetFilteredMedia(givenSearchMediaData, givenMediaInstances); filteredMedia.Should().HaveCount(2); filteredMedia.Should().Contain(mi => mi.Id == "1"); filteredMedia.Should().Contain(mi => mi.Id == "2"); }
public void GivenUserIdNotConnectedToAnyMedia_PublicMediaAreReturned() { var userId = "randomUser"; var searchMedia = new SearchMediaData() { UserId = userId }; var mediaInstances = new PrivateInstancesTestsDbSet().Instances; var filteredMedia = GetFilteredMedia(searchMedia, mediaInstances); filteredMedia.Should().HaveCount(3) .And.Contain(mi => mi.Id == "2") .And.Contain(mi => mi.Id == "4") .And.Contain(mi => mi.Id == "5"); }
public async Task <IEnumerable <MediaInstanceDto> > GetSearchedMedia([FromQuery] string q) { var searchMediaDto = JsonConvert.DeserializeObject <SearchMediaDto>(q); var searchMediaData = new SearchMediaData() { IncludedTags = searchMediaDto.IncludedTags, ExcludedTags = searchMediaDto.ExcludedTags, TimeRangeStart = searchMediaDto.TimeRangeStart, TimeRangeEnd = searchMediaDto.TimeRangeEnd, UserId = User.GetUserId() }; var query = SearchMediaQuery.Create(searchMediaData); var result = await _mediator.Send(query); return(result); }