Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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");
        }
Exemplo n.º 5
0
        public void GivenNonexistentExcludedTag_AllMediaAreReturned()
        {
            string[] excludedTags = { "football" };
            var      searchMedia  = new SearchMediaData()
            {
                ExcludedTags = excludedTags
            };
            var filteredMedia = GetFilteredMedia(searchMedia);

            filteredMedia.Should().BeEquivalentTo(_mediaInstances);
        }
Exemplo n.º 6
0
        public void GivenNonexistentIncludedTag_NoMediaIsReturned()
        {
            string[] includedTags = { "football" };
            var      searchMedia  = new SearchMediaData()
            {
                IncludedTags = includedTags
            };
            var filteredMedia = GetFilteredMedia(searchMedia);

            filteredMedia.Should().BeEmpty();
        }
Exemplo n.º 7
0
        public void GivenExistingTag_ConnectedMediaAreReturned()
        {
            string[] includedTags = { "books" };
            var      searchMedia  = new SearchMediaData()
            {
                IncludedTags = includedTags,
            };
            var filteredMedia = GetFilteredMedia(searchMedia);

            filteredMedia.Should().ContainSingle(mi => mi.Id == "1");
        }
Exemplo n.º 8
0
        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");
        }
Exemplo n.º 10
0
        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" });
        }
Exemplo n.º 11
0
        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();
        }
Exemplo n.º 12
0
        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");
        }
Exemplo n.º 13
0
        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();
        }
Exemplo n.º 14
0
        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");
        }
Exemplo n.º 16
0
        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");
        }
Exemplo n.º 19
0
        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);
        }