Exemple #1
0
        private BooleanFilterOperationDescriptor CreateOperation(
            FilterOperationKind operationKind)
        {
            var operation = new FilterOperation(
                typeof(bool),
                Definition.Kind,
                operationKind,
                Definition.Property);

            return(BooleanFilterOperationDescriptor.New(
                       Context,
                       this,
                       CreateFieldName(operationKind),
                       RewriteType(operationKind),
                       operation,
                       FilterConvention));
        }
Exemple #2
0
        public void GetOrAddOperation_Should_AddDescriptorIfNotExists()
        {
            //arrange
            IList <FilterOperationDescriptorBase> list      = new List <FilterOperationDescriptorBase>();
            BooleanFilterOperationDescriptor      operation =
                CreateOperation(FilterOperationKind.Equals);
            Func <BooleanFilterOperationDescriptor> valueFactory = () => operation;

            //act
            BooleanFilterOperationDescriptor result =
                list.GetOrAddOperation(FilterOperationKind.Equals, valueFactory);

            //assert
            Assert.Single(list);
            Assert.Same(operation, list[0]);
            Assert.Same(operation, result);
        }
Exemple #3
0
        public void GetOrAddOperation_Throws_ExceptionIfExistingDescriptorIsOfDifferentType()
        {
            //arrange
            IList <FilterOperationDescriptorBase> list = new List <FilterOperationDescriptorBase>();
            BooleanFilterOperationDescriptor      descriptorShouldNotBeRemoved =
                CreateOperation(FilterOperationKind.Equals);
            ComparableFilterOperationDescriptor newDescriptorShouldThrowException =
                CreateComparableOperation(FilterOperationKind.Equals);
            Func <ComparableFilterOperationDescriptor> valueFactory =
                () => newDescriptorShouldThrowException;

            list.Add(descriptorShouldNotBeRemoved);

            //act

            //assert
            Assert.Throws <SchemaException>(() =>
                                            list.GetOrAddOperation(FilterOperationKind.Equals, valueFactory));
        }
Exemple #4
0
        public void GetOrAddOperation_Should_ReturnDescriptorIfAlreadyExists()
        {
            //arrange
            IList <FilterOperationDescriptorBase> list = new List <FilterOperationDescriptorBase>();
            BooleanFilterOperationDescriptor      descriptorShouldNotBeRemoved =
                CreateOperation(FilterOperationKind.Equals);
            BooleanFilterOperationDescriptor newDescriptorShouldNotHaveAnyEffect =
                CreateOperation(FilterOperationKind.Equals);
            Func <BooleanFilterOperationDescriptor> valueFactory =
                () => newDescriptorShouldNotHaveAnyEffect;

            list.Add(descriptorShouldNotBeRemoved);

            //act
            BooleanFilterOperationDescriptor result =
                list.GetOrAddOperation(FilterOperationKind.Equals, valueFactory);

            //assert
            Assert.Single(list);
            Assert.Same(descriptorShouldNotBeRemoved, list[0]);
            Assert.Same(descriptorShouldNotBeRemoved, result);
            Assert.NotSame(newDescriptorShouldNotHaveAnyEffect, result);
        }