예제 #1
0
        public void TestCreateGreaterThanEqual()
        {
            const string propertyName  = "prop";
            const string equalityValue = "15";
            var          filter        = new NumericSearchFilter(propertyName, 15, NumericEquality.GreaterThanEqualTo);

            Assert.AreEqual(propertyName, filter.Field);
            Assert.AreEqual(equalityValue, filter.Value);
            Assert.AreEqual(SearchFilterComparer.GreaterThanEqual.ToString(), filter.Comparison);
        }
        public void CanGenerateLessEqualThan()
        {
            var filter = new NumericSearchFilter();

            filter.GetFilter(new SearchFilterModel
            {
                FieldName = "IntValue",
                Comprison = Comparisons.LessEqualThan,
                Value     = "5"
            }, _members.Single(m => m.Name == "IntValue")).ShouldNotBeNullOrEmpty();
        }
        public void DateTimeOffsetStringIsODataCompliant()
        {
            var filter = new NumericSearchFilter();

            TypeAccessor ta     = TypeAccessor.Create(typeof(TestNumericSearchFilter));
            var          m      = ta.GetMembers().Single(x => x.Name == "MyDateTimeOffset");
            var          result = filter.GetFilter(new SearchFilterModel
            {
                Comprison = Comparisons.Equal,
                FieldName = "MyDateTimeOffset",
                Value     = "2017-01-12"
            }, m);

            result.ShouldBe("MyDateTimeOffset eq 2017-01-12T00:00:00Z");
        }
        public void CannotHandleInt()
        {
            var filter = new NumericSearchFilter();

            filter.CanHandle(Comparisons.Equal, _members.Single(m => m.Name == "IntValue")).ShouldBeTrue();
        }
        public void CanHandleString()
        {
            var filter = new NumericSearchFilter();

            filter.CanHandle(Comparisons.Equal, _members.Single(m => m.Name == "StringValue")).ShouldBeFalse();
        }