Esempio n. 1
0
        public async Task ApplyWhereClause_FilterByGenderRestriction_ReturnsCorrectPredicate()
        {
            const Gender filteredGenderRestriction = Gender.Female;
            var          mockManager       = new QueryMockManager();
            var          expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new CompositePredicate(
                    new List <IPredicate>
                {
                    new SimplePredicate(nameof(Post.GenderRestriction), ValueComparingOperator.Equal, filteredGenderRestriction),
                    new SimplePredicate(nameof(Post.GenderRestriction), ValueComparingOperator.Equal, Gender.NoInformation)
                }, LogicalOperator.OR)
            }, LogicalOperator.AND);
            var mapperMock      = mockManager.ConfigureMapperMock <Post, PostDto, PostFilterDto>();
            var queryMock       = mockManager.ConfigureQueryMock <Post>();
            var postQueryObject = new PostQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new PostFilterDto {
                GenderRestriction = filteredGenderRestriction
            };
            var temp = await postQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Esempio n. 2
0
        public async Task ApplyWhereClause_FilterByUserAge_ReturnsCorrectPredicate()
        {
            const int filteredUserAge = 30;
            var       mockManager     = new QueryMockManager();
            var       agePredicates   = new List <IPredicate>
            {
                new SimplePredicate(nameof(Post.HasAgeRestriction), ValueComparingOperator.Equal, false)
            };
            var innerAgePredicates = new List <IPredicate>
            {
                new SimplePredicate(nameof(Post.AgeRestrictionTo), ValueComparingOperator.LessThanOrEqual, filteredUserAge),
                new SimplePredicate(nameof(Post.AgeRestrictionFrom), ValueComparingOperator.GreaterThanOrEqual, filteredUserAge)
            };

            agePredicates.Add(new CompositePredicate(innerAgePredicates, LogicalOperator.AND));

            var expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new CompositePredicate(agePredicates, LogicalOperator.OR)
            }, LogicalOperator.AND);
            var mapperMock      = mockManager.ConfigureMapperMock <Post, PostDto, PostFilterDto>();
            var queryMock       = mockManager.ConfigureQueryMock <Post>();
            var postQueryObject = new PostQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new PostFilterDto {
                UserAge = filteredUserAge
            };
            var temp = await postQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Esempio n. 3
0
        public async Task ApplyWhereClause_SimpleFilterWithMinimalPrice_ReturnsCorrectSimplePredicate()
        {
            var mockManager        = new QueryMockManager();
            var expectedPredicate  = new SimplePredicate(nameof(Song.Price), ValueComparingOperator.GreaterThanOrEqual, 1000m);
            var mapperMock         = mockManager.ConfigureMapperMock <Song, ProductDto, ProductFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Song>();
            var productQueryObject = new ProductQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await productQueryObject.ExecuteQuery(new ProductFilterDto { MinimalPrice = 1000 });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
Esempio n. 4
0
        public async Task ApplyWhereClause_ComplexFilterByAllParameters_ReturnsCorrectPredicate()
        {
            const int      filteredUserAge           = 30;
            Gender         filteredGenderRestriction = Gender.Female;
            PostVisibility filteredPostVisibility    = PostVisibility.FriendsOnly;
            Guid           filteredUserId            = Guid.NewGuid();
            var            mockManager = new QueryMockManager();

            var agePredicates = new List <IPredicate>
            {
                new SimplePredicate(nameof(Post.HasAgeRestriction), ValueComparingOperator.Equal, false)
            };
            var innerAgePredicates = new List <IPredicate>
            {
                new SimplePredicate(nameof(Post.AgeRestrictionTo), ValueComparingOperator.LessThanOrEqual, filteredUserAge),
                new SimplePredicate(nameof(Post.AgeRestrictionFrom), ValueComparingOperator.GreaterThanOrEqual, filteredUserAge)
            };

            agePredicates.Add(new CompositePredicate(innerAgePredicates, LogicalOperator.AND));

            var genderPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new SimplePredicate(nameof(Post.GenderRestriction), ValueComparingOperator.Equal, filteredGenderRestriction),
                new SimplePredicate(nameof(Post.GenderRestriction), ValueComparingOperator.Equal, Gender.NoInformation)
            }, LogicalOperator.OR);

            var userIdPredicate = new SimplePredicate(nameof(Post.UserId), ValueComparingOperator.Equal, filteredUserId);

            var visibilityPredicate = new SimplePredicate(nameof(Post.Visibility), ValueComparingOperator.Equal, filteredPostVisibility);

            var expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new CompositePredicate(agePredicates, LogicalOperator.OR),
                genderPredicate,
                userIdPredicate,
                visibilityPredicate
            }, LogicalOperator.AND);
            var mapperMock      = mockManager.ConfigureMapperMock <Post, PostDto, PostFilterDto>();
            var queryMock       = mockManager.ConfigureQueryMock <Post>();
            var postQueryObject = new PostQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new PostFilterDto
            {
                UserAge           = filteredUserAge,
                GenderRestriction = filteredGenderRestriction,
                UserId            = filteredUserId
            };
            var temp = await postQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Esempio n. 5
0
        public async Task ExecuteUserQuery()
        {
            var mockManager        = new QueryMockManager();
            var expectedPredicate  = new SimplePredicate(nameof(User.NickName), ValueComparingOperator.StringContains, "Misko");
            var mapperMock         = mockManager.ConfigureMapperMock <User, UserDto, UserFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <User>();
            var productQueryObject = new UserQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await productQueryObject.ExecuteQuery(new UserFilterDto { SubName = "Misko" });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
        public async Task ApplyWhereClause_EmptyFilter_ReturnsNull()
        {
            var mockManager           = new QueryMockManager();
            var mapperMock            = mockManager.ConfigureMapperMock <Friendship, FriendshipDto, FriendshipFilterDto>();
            var queryMock             = mockManager.ConfigureQueryMock <Friendship>();
            var friendshipQueryObject = new FriendshipQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new FriendshipFilterDto();
            var temp   = await friendshipQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(null, mockManager.CapturedPredicate);
        }
        public async Task ApplyWhereClause_EmptyFilter_ReturnsNull()
        {
            var mockManager        = new QueryMockManager();
            var mapperMock         = mockManager.ConfigureMapperMock <Hashtag, HashtagDto, HashtagFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Hashtag>();
            var hashtagQueryObject = new HashtagQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new HashtagFilterDto();
            var temp   = await hashtagQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(null, mockManager.CapturedPredicate);
        }
Esempio n. 8
0
        public async Task ApplyWhereClause_SimpleFilterWithSpecialization_ReturnsCorrectSimplePredicate()
        {
            var mockManager       = new QueryMockManager();
            var expectedPredicate = new SimplePredicate(nameof(Doctor.Specialization), ValueComparingOperator.Equal, Specialization.Ophthalmologist);

            var mapperMock        = mockManager.ConfigureMapperMock <Doctor, DoctorDto, DoctorFilterDto>();
            var queryMock         = mockManager.ConfigureQueryMock <Doctor>();
            var doctorQueryObject = new DoctorQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await doctorQueryObject.ExecuteQuery(new DoctorFilterDto { Specialization = "Ophthalmologist" });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
Esempio n. 9
0
        public async Task ApplyWhereClause_SimpleFilterWithName_ReturnsCorrectSimplePredicate()
        {
            var mockManager       = new QueryMockManager();
            var expectedPredicate = new SimplePredicate(nameof(Disease.Name), ValueComparingOperator.StringContains, "Death");

            var mapperMock         = mockManager.ConfigureMapperMock <Disease, DiseaseDto, DiseaseFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Disease>();
            var diseaseQueryObject = new DiseaseQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await diseaseQueryObject.ExecuteQuery(new DiseaseFilterDto { DiseaseName = "Death" });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
        public async Task ApplyWhereClause_SimpleFilterWithIdentificationNumber_ReturnsCorrectSimplePredicate()
        {
            var mockManager       = new QueryMockManager();
            var expectedPredicate = new SimplePredicate(nameof(Patient.IdentificationNumber), ValueComparingOperator.Equal, "999999");

            var mapperMock         = mockManager.ConfigureMapperMock <Patient, PatientDto, PatientFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Patient>();
            var patientQueryObject = new PatientQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await patientQueryObject.ExecuteQuery(new PatientFilterDto { IdentificationNumber = "999999" });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
        public async Task ApplyWhereClause_FilterByUsername_ReturnsCorrectSimplePredicate()
        {
            Guid filteredPostId       = Guid.NewGuid();
            var  mockManager          = new QueryMockManager();
            var  expectedPredicate    = new SimplePredicate(nameof(PostReply.PostId), ValueComparingOperator.Equal, filteredPostId);
            var  mapperMock           = mockManager.ConfigureMapperMock <PostReply, PostReplyDto, PostReplyFilterDto>();
            var  queryMock            = mockManager.ConfigureQueryMock <PostReply>();
            var  postReplyQueryObject = new PostReplyQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new PostReplyFilterDto {
                PostId = filteredPostId
            };
            var temp = await postReplyQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
        public async Task ApplyWhereClause_FilterByImageId_ReturnsCorrectSimplePredicate()
        {
            Guid filterImageId     = Guid.NewGuid();
            var  mockManager       = new QueryMockManager();
            var  expectedPredicate = new SimplePredicate(nameof(Vote.ImageId), ValueComparingOperator.Equal, filterImageId);
            var  mapperMock        = mockManager.ConfigureMapperMock <Vote, VoteDto, VoteFilterDto>();
            var  queryMock         = mockManager.ConfigureQueryMock <Vote>();
            var  voteQueryObject   = new VoteQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new VoteFilterDto {
                ImageId = filterImageId
            };
            var temp = await voteQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Esempio n. 13
0
        public async Task ApplyWhereClause_SimpleFilterWithName_ReturnsCorrectCompositePredicate()
        {
            var mockManager   = new QueryMockManager();
            var predicateList = new List <IPredicate> {
                new SimplePredicate(nameof(Doctor.Name), ValueComparingOperator.Equal, "John"),
                new SimplePredicate(nameof(Doctor.Surname), ValueComparingOperator.Equal, "Doe")
            };
            var expectedPredicate = new CompositePredicate(predicateList);

            var mapperMock        = mockManager.ConfigureMapperMock <Doctor, DoctorDto, DoctorFilterDto>();
            var queryMock         = mockManager.ConfigureQueryMock <Doctor>();
            var doctorQueryObject = new DoctorQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await doctorQueryObject.ExecuteQuery(new DoctorFilterDto { FullName = "John Doe" });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
        public async Task ApplyWhereClause_SimpleFilterWithName_ReturnsCorrectCompositePredicate()
        {
            var mockManager   = new QueryMockManager();
            var predicateList = new List <IPredicate> {
                new SimplePredicate(nameof(Patient.Name), ValueComparingOperator.Equal, "Harry"),
                new SimplePredicate(nameof(Patient.Surname), ValueComparingOperator.Equal, "Maybourne")
            };
            var expectedPredicate = new CompositePredicate(predicateList);

            var mapperMock         = mockManager.ConfigureMapperMock <Patient, PatientDto, PatientFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Patient>();
            var patientQueryObject = new PatientQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await patientQueryObject.ExecuteQuery(new PatientFilterDto { FullName = "Harry Maybourne" });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
Esempio n. 15
0
        public async Task ApplyWhereClause_ComplexFilterWithMinimalPriceAndCategoryId_ReturnsCorrectCompositePredicate()
        {
            var categoryIds       = new[] { Guid.Parse("aa02dc64-5c07-40fe-a916-175165b9b90f") };
            var mockManager       = new QueryMockManager();
            var expectedPredicate = new CompositePredicate(new List <IPredicate> {
                new CompositePredicate(new List <IPredicate> {
                    new SimplePredicate(nameof(Song.CategoryId), ValueComparingOperator.Equal, categoryIds.First())
                }, LogicalOperator.OR),
                new SimplePredicate(nameof(Song.Price), ValueComparingOperator.GreaterThanOrEqual, 7000m)
            });
            var mapperMock         = mockManager.ConfigureMapperMock <Song, ProductDto, ProductFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Song>();
            var productQueryObject = new ProductQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await productQueryObject.ExecuteQuery(new ProductFilterDto { MinimalPrice = 7000, CategoryIds = categoryIds });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
Esempio n. 16
0
        public async Task ApplyWhereClause_SimpleFilterWithMinimalPrice_ReturnsCorrectSimplePredicate()
        {
            const string desiredName1      = "Android";
            const string desiredName2      = "iOS";
            var          mockManager       = new QueryMockManager();
            var          expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new SimplePredicate(nameof(Album.Name), ValueComparingOperator.Equal, desiredName1),
                new SimplePredicate(nameof(Album.Name), ValueComparingOperator.Equal, desiredName2)
            }, LogicalOperator.OR);
            var mapperMock          = mockManager.ConfigureMapperMock <Album, CategoryDto, CategoryFilterDto>();
            var queryMock           = mockManager.ConfigureQueryMock <Album>();
            var categoryQueryObject = new CategoryQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await categoryQueryObject.ExecuteQuery(new CategoryFilterDto { Names = new [] { desiredName1, desiredName2 } });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }
Esempio n. 17
0
        public async Task ApplyWhereClause_FilterByVisibility_ReturnsCorrectPredicate()
        {
            const PostVisibility filteredVisibility = PostVisibility.FriendsOnly;
            var mockManager       = new QueryMockManager();
            var expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new SimplePredicate(nameof(Post.Visibility), ValueComparingOperator.Equal, filteredVisibility)
            }, LogicalOperator.AND);
            var mapperMock      = mockManager.ConfigureMapperMock <Post, PostDto, PostFilterDto>();
            var queryMock       = mockManager.ConfigureQueryMock <Post>();
            var postQueryObject = new PostQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new PostFilterDto {
            };
            var temp   = await postQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
        public async Task ApplyWhereClause_FilterByTagString_ReturnsCorrectPredicate()
        {
            const string filteredTag       = "Hashtag";
            var          mockManager       = new QueryMockManager();
            var          expectedPredicate = new CompositePredicate(new List <IPredicate>
            {
                new SimplePredicate(nameof(Hashtag.Tag), ValueComparingOperator.Equal, filteredTag)
            }, LogicalOperator.AND);

            var mapperMock         = mockManager.ConfigureMapperMock <Hashtag, HashtagDto, HashtagFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Hashtag>();
            var hashtagQueryObject = new HashtagQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new HashtagFilterDto {
                Tag = filteredTag
            };
            var temp = await hashtagQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
        public async Task ApplyWhereClause_FilterByUserBId_ReturnsCorrectPredicate()
        {
            Guid filteredUserId    = Guid.NewGuid();
            var  mockManager       = new QueryMockManager();
            var  expectedPredicate = new CompositePredicate(new List <IPredicate>
            {
                new SimplePredicate(nameof(Friendship.ApplicantId), ValueComparingOperator.Equal, filteredUserId),
                new SimplePredicate(nameof(Friendship.RecipientId), ValueComparingOperator.Equal, filteredUserId)
            }, LogicalOperator.OR);
            var mapperMock            = mockManager.ConfigureMapperMock <Friendship, FriendshipDto, FriendshipFilterDto>();
            var queryMock             = mockManager.ConfigureQueryMock <Friendship>();
            var friendshipQueryObject = new FriendshipQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new FriendshipFilterDto {
                UserB = filteredUserId
            };
            var temp = await friendshipQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Esempio n. 20
0
        public async Task ApplyWhereClause_SimpleFilterByEmail_ReturnsCorrectPredicate()
        {
            const string filteredEmail     = "*****@*****.**";
            var          mockManager       = new QueryMockManager();
            var          expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new SimplePredicate(nameof(User.Email), ValueComparingOperator.Equal, filteredEmail)
            }, LogicalOperator.AND);
            var mapperMock      = mockManager.ConfigureMapperMock <User, UserDto, UserFilterDto>();
            var queryMock       = mockManager.ConfigureQueryMock <User>();
            var userQueryObject = new UserQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new UserFilterDto {
                Email = filteredEmail
            };
            var temp = await userQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Esempio n. 21
0
        public async Task ApplyWhereClause_SimpleFilterByBornBefore_ReturnsCorrectPredicate()
        {
            DateTime filterBornBefore  = new DateTime(2018, 12, 12);
            var      mockManager       = new QueryMockManager();
            var      expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new SimplePredicate(nameof(User.Birthdate), ValueComparingOperator.LessThan, filterBornBefore)
            }, LogicalOperator.AND);
            var mapperMock      = mockManager.ConfigureMapperMock <User, UserDto, UserFilterDto>();
            var queryMock       = mockManager.ConfigureQueryMock <User>();
            var userQueryObject = new UserQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new UserFilterDto {
                BornBefore = filterBornBefore
            };
            var temp = await userQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Esempio n. 22
0
        public async Task ApplyWhereClause_FilterByUserId_ReturnsCorrectPredicate()
        {
            Guid filteredUserId    = Guid.NewGuid();
            var  mockManager       = new QueryMockManager();
            var  expectedPredicate = new CompositePredicate(
                new List <IPredicate>
            {
                new SimplePredicate(nameof(Post.UserId), ValueComparingOperator.Equal, filteredUserId)
            }, LogicalOperator.AND);
            var mapperMock      = mockManager.ConfigureMapperMock <Post, PostDto, PostFilterDto>();
            var queryMock       = mockManager.ConfigureQueryMock <Post>();
            var postQueryObject = new PostQueryObject(mapperMock.Object, queryMock.Object);

            var filter = new PostFilterDto {
                UserId = filteredUserId
            };
            var temp = await postQueryObject.ExecuteQuery(filter);

            Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate);
        }
Esempio n. 23
0
        public async Task ApplyWhereClause_ComplexFilterWithSeveralConditions_ReturnsCorrectCompositePredicate()
        {
            const string searchedName      = "Samsung";
            var          categoryIds       = new[] { Guid.Parse("aa02dc64-5c07-40fe-a916-175165b9b90f"), Guid.Parse("aa04dc64-5c07-40fe-a916-175165b9b90f") };
            var          mockManager       = new QueryMockManager();
            var          expectedPredicate = new CompositePredicate(new List <IPredicate> {
                new CompositePredicate(new List <IPredicate> {
                    new SimplePredicate(nameof(Song.CategoryId), ValueComparingOperator.Equal, categoryIds.First()),
                    new SimplePredicate(nameof(Song.CategoryId), ValueComparingOperator.Equal, categoryIds.Last())
                }, LogicalOperator.OR),
                new SimplePredicate(nameof(Song.Name), ValueComparingOperator.StringContains, searchedName),
                new CompositePredicate(new List <IPredicate> {
                    new SimplePredicate(nameof(Song.Price), ValueComparingOperator.GreaterThanOrEqual, 1000m),
                    new SimplePredicate(nameof(Song.Price), ValueComparingOperator.LessThanOrEqual, 3000m)
                })
            });
            var mapperMock         = mockManager.ConfigureMapperMock <Song, ProductDto, ProductFilterDto>();
            var queryMock          = mockManager.ConfigureQueryMock <Song>();
            var productQueryObject = new ProductQueryObject(mapperMock.Object, queryMock.Object);

            var unused = await productQueryObject.ExecuteQuery(new ProductFilterDto { MinimalPrice = 1000, MaximalPrice = 3000, SearchedName = searchedName, CategoryIds = categoryIds });

            Assert.AreEqual(mockManager.CapturedPredicate, expectedPredicate);
        }