Exemple #1
0
        public async Task CustomFilterConvertersRunner_Convert_3Filters_Converted_Test()
        {
            // Arrange
            var converter      = CreateCustomFilterConvertersRunner();
            var cloneConverter = new CloneFilterConverter <IUser>();
            var converters     = new List <IFilterConverter <IUser> > {
                cloneConverter
            };

            _MockCustomFilterConverterCollection.Setup(m => m.Converters).Returns(converters);

            // Left and Right are Filter<TEntity> instances with NonFilter set.
            Filter <IUser> filter = new Filter <IUser> {
                Left = "Id", Method = "eq", Right = "27"
            };

            // Act
            var actual = await converter.ConvertAsync(filter);

            // Assert
            Assert.AreNotEqual(filter, actual);
            Assert.IsTrue(actual.IsRoot);

            Assert.AreNotSame(filter.Left, actual.Left);
            Assert.AreNotSame(filter.Right, actual.Right);
        }
Exemple #2
0
        public async Task CustomFilterConvertersRunner_Convert_7Filters_Root_OR_Id_To_EntityId_WithArray_Test()
        {
            // Arrange
            var converter             = CreateCustomFilterConvertersRunner();
            var cloneConverter        = new CloneFilterConverter <IUser>();
            var idToEntityIdConverter = new IdToEntityIdFilterConverter <IUser>();
            var converters            = new List <IFilterConverter <IUser> > {
                cloneConverter, idToEntityIdConverter
            };

            _MockCustomFilterConverterCollection.Setup(m => m.Converters).Returns(converters);

            Filter <IUser> leftFilter = new Filter <IUser> {
                Left = "Id", Method = "eq", Right = "27"
            };
            var rightArrayFilter = new ArrayFilter <IUser, int> {
                Array = new[] { 28, 29 }
            };
            Filter <IUser> rightFilter = new Filter <IUser> {
                Left = "Id", Method = "IN", Right = rightArrayFilter
            };
            Filter <IUser> orFilter = new Filter <IUser> {
                Left = leftFilter, Method = "or", Right = rightFilter
            };

            // Act
            var actual = await converter.ConvertAsync(orFilter);

            // Assert
            Assert.AreNotEqual(orFilter, actual);
            Assert.IsTrue(actual.IsRoot);

            Assert.AreNotSame(orFilter.Left, actual.Left);
            Assert.AreNotSame(orFilter.Right, actual.Right);


            Assert.AreNotSame(orFilter.Left.Left, actual.Left.Left);
            Assert.AreEqual("UserId", actual.Left.Left.ToString());
            Assert.AreNotSame(orFilter.Left.Right, actual.Left.Right);

            Assert.AreNotSame(orFilter.Right.Left, actual.Right.Left);
            Assert.AreEqual("UserId", actual.Right.Left.ToString());
            Assert.AreSame(typeof(ArrayFilter <IUser, int>), orFilter.Right.Right.GetType());
            Assert.AreNotSame(orFilter.Right.Right, actual.Right.Right);
        }
Exemple #3
0
        public async Task CustomFilterConvertersRunner_Convert_One_Filter_Converted_Test()
        {
            // Arrange
            var converter      = CreateCustomFilterConvertersRunner();
            var cloneConverter = new CloneFilterConverter <IUser>();
            var converters     = new List <IFilterConverter <IUser> > {
                cloneConverter
            };

            _MockCustomFilterConverterCollection.Setup(m => m.Converters).Returns(converters);

            Filter <IUser> filter = "Id";

            // Act
            var actual = await converter.ConvertAsync(filter);

            // Assert
            Assert.AreNotEqual(filter, actual);
            Assert.IsFalse(string.IsNullOrWhiteSpace(filter.NonFilter));
            Assert.AreEqual(filter.NonFilter, actual.NonFilter);
            Assert.IsTrue(actual.IsRoot);
        }
Exemple #4
0
        public async Task CustomFilterConvertersRunner_Convert_7Filters_Root_OR_Test()
        {
            // Arrange
            var converter      = CreateCustomFilterConvertersRunner();
            var cloneConverter = new CloneFilterConverter <IUser>();
            var converters     = new List <IFilterConverter <IUser> > {
                cloneConverter
            };

            _MockCustomFilterConverterCollection.Setup(m => m.Converters).Returns(converters);

            Filter <IUser> leftFilter = new Filter <IUser> {
                Left = "Id", Method = "eq", Right = "27"
            };
            Filter <IUser> rightFilter = new Filter <IUser> {
                Left = "Id", Method = "eq", Right = "28"
            };
            Filter <IUser> orFilter = new Filter <IUser> {
                Left = leftFilter, Method = "or", Right = rightFilter
            };

            // Act
            var actual = await converter.ConvertAsync(orFilter);

            // Assert
            Assert.AreNotEqual(orFilter, actual);
            Assert.IsTrue(actual.IsRoot);

            Assert.AreNotSame(orFilter.Left, actual.Left);
            Assert.AreNotSame(orFilter.Right, actual.Right);


            Assert.AreNotSame(orFilter.Left.Left, actual.Left.Left);
            Assert.AreNotSame(orFilter.Left.Right, actual.Left.Right);

            Assert.AreNotSame(orFilter.Right.Left, actual.Right.Left);
            Assert.AreNotSame(orFilter.Right.Right, actual.Right.Right);
        }