Exemple #1
0
        public void GivenAnInequalityExpressionWithNullableDateTimeMemberOnLeftAndNullOnRight_ShouldAddAnExistsFilterWithMemberAsField()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => x.NullableDate != null);

            filter.Should().BeOfType <ExistsFilter>();
            var existsFilter = (ExistsFilter)filter;

            existsFilter.Field.Should().Be(client.GetFieldName <TestData, DateTime?>(x => x.NullableDate));
        }
Exemple #2
0
        public void GivenAGreaterThanOrEqualExpressionWithMemberOnLeftAndIntegerOnRight_ShouldReturnARangeFilterWithMemberAsFieldAndIntegerAsFromValueAndIncludeLowerTrue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => x.Id >= 42);

            filter.Should().BeOfType<RangeFilter<int>>();
            var rangeFilter = (RangeFilter<int>)filter;
            rangeFilter.From.Equals(42).Should().BeTrue();
            rangeFilter.Field.Should().Be(client.GetFieldName<TestData, int>(x => x.Id));
            rangeFilter.IncludeLower.Should().BeTrue();
        }
Exemple #3
0
        public void GivenAnEqualityExpressionWithMemberOnLeftAndIntegerOnRight_ShouldReturnATermFilterWithMemberAsFieldAndIntegerAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => x.Id == 42);

            filter.Should().BeOfType <TermFilter>();
            var termFilter = (TermFilter)filter;

            termFilter.Value.Equals(42).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName <TestData, int>(x => x.Id));
        }
Exemple #4
0
        public void GivenAnEqualityExpressionWithIntegerPropertyFromNonQueriedClassOnLeftAndMemberOnRight_ShouldAddATermFilterWithMemberAsFieldAndIntegerAsValue()
        {
            var client = new Client("", "");
            var filter = client.WhereFilter <TestData>(x => IntProperty == x.Id);

            filter.Should().BeOfType <TermFilter>();
            var termFilter = (TermFilter)filter;

            termFilter.Should().NotBeNull();
            termFilter.Value.Equals(42).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName <TestData, int>(x => x.Id));
        }
Exemple #5
0
        public void GivenAGreaterThanExpressionWithMemberOnLeftAndDateTimeOnRight_ShouldReturnARangeFilterWithMemberAsFieldAndDateTimeAsFromValueAndIncludeLowerFalse()
        {
            var client = new Client("", "");
            var filterValue = DateTime.Now;
            var filter = client.WhereFilter<TestData>(x => x.Date > filterValue);

            filter.Should().BeOfType<RangeFilter<DateTime>>();
            var rangeFilter = (RangeFilter<DateTime>)filter;
            rangeFilter.From.Equals(filterValue).Should().BeTrue();
            rangeFilter.Field.Should().Be(client.GetFieldName<TestData, DateTime>(x => x.Date));
            rangeFilter.IncludeLower.Should().BeFalse();
        }
Exemple #6
0
        public void GivenAnEqualityExpressionWithMemberOnLeftAndStringOnRight_ShouldAddATermFilterWithMemberAsFieldAndStringAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => x.Name == "Hello");

            filter.Should().BeOfType <TermFilter>();
            var termFilter = (TermFilter)filter;

            termFilter.Should().NotBeNull();
            termFilter.Value.Equals("Hello").Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName <TestData, string>(x => x.Name));
        }
Exemple #7
0
        public void GivenALessThanExpressionWithMemberOnLeftAndIntegerOnRight_ShouldReturnARangeFilterWithMemberAsFieldAndIntegerAsToValueAndIncludeUpperFalse()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => x.Id < 42);

            filter.Should().BeOfType <RangeFilter <int> >();
            var rangeFilter = (RangeFilter <int>)filter;

            rangeFilter.To.Equals(42).Should().BeTrue();
            rangeFilter.Field.Should().Be(client.GetFieldName <TestData, int>(x => x.Id));
            rangeFilter.IncludeUpper.Should().BeFalse();
        }
Exemple #8
0
        public void GivenAnEqualityExpressionInNegatedParenthesis_ShouldReturnANotFilterWithATermFilter()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => !(x.Id == 42));

            filter.Should().BeOfType <NotFilter>();
            var notFilter  = (NotFilter)filter;
            var termFilter = (TermFilter)notFilter.Filter;

            termFilter.Value.Equals(42).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName <TestData, int>(x => x.Id));
        }
Exemple #9
0
        public void GivenAGreaterThanOrEqualExpressionWithMemberOnLeftAndIntegerOnRight_ShouldReturnARangeFilterWithMemberAsFieldAndIntegerAsFromValueAndIncludeLowerTrue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => x.Id >= 42);

            filter.Should().BeOfType <RangeFilter <int> >();
            var rangeFilter = (RangeFilter <int>)filter;

            rangeFilter.From.Equals(42).Should().BeTrue();
            rangeFilter.Field.Should().Be(client.GetFieldName <TestData, int>(x => x.Id));
            rangeFilter.IncludeLower.Should().BeTrue();
        }
Exemple #10
0
        public void GivenAGreaterThanExpressionWithMemberOnLeftAndDateTimeOnRight_ShouldReturnARangeFilterWithMemberAsFieldAndDateTimeAsFromValueAndIncludeLowerFalse()
        {
            var client      = new Client("", "");
            var filterValue = DateTime.Now;
            var filter      = client.WhereFilter <TestData>(x => x.Date > filterValue);

            filter.Should().BeOfType <RangeFilter <DateTime> >();
            var rangeFilter = (RangeFilter <DateTime>)filter;

            rangeFilter.From.Equals(filterValue).Should().BeTrue();
            rangeFilter.Field.Should().Be(client.GetFieldName <TestData, DateTime>(x => x.Date));
            rangeFilter.IncludeLower.Should().BeFalse();
        }
Exemple #11
0
        public void GivenATypeComparisonExpressionWithGetTypeInvokedOnMemberOnLeftAndTypeOfQueriedTypeOnRight_ShouldReturnATermFilterWithMembersFieldPlusTypeFieldAndTypeNameAsValue()
        {
            var client      = new Client("", "");
            var typeToMatch = typeof(TestDataSub);
            var filter      = client.WhereFilter <TestData>(x => x.Another.GetType() == typeToMatch);

            filter.Should().BeOfType <TermFilter>();
            var termFilter      = (TermFilter)filter;
            var memberFieldName = client.GetFieldName <TestData, TestData>(x => x.Another);

            termFilter.Value.ShouldEqual(typeToMatch + ", " + typeToMatch.Assembly.GetName().Name);
            termFilter.Field.Should().Be(memberFieldName + "." + "$type");
        }
Exemple #12
0
        public void GivenExpressionWithStartsWithInvokedOnMemberWithStringComparisonInvariantCulture_ShouldAddAPrefixFilterWithMemberAsFieldAndArgumentAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => x.Name.StartsWith("Hello", StringComparison.InvariantCulture));

            filter.Should().BeOfType <PrefixFilter>();
            var termFilter = (PrefixFilter)filter;

            termFilter.Should().NotBeNull();
            termFilter.Value.Should().Be("Hello");
            termFilter.Field.Should().Be(client.GetFieldName <TestData, string>(x => x.Name));
        }
Exemple #13
0
        public void GivenAnExpressionWithBooleanMember_ShouldAddATermFilterWithMemberAsFieldAndTrueAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => x.Bool);

            filter.Should().BeOfType <TermFilter>();
            var termFilter = (TermFilter)filter;

            termFilter.Should().NotBeNull();
            termFilter.Value.Equals(true).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName <TestData, bool>(x => x.Bool));
        }
Exemple #14
0
        public void GivenAnEqualityExpressionWithMemberOnLeftAndEnumOnRight_ShouldAddATermFilterWithMemberAsFieldAndEnumAsIntAsValue()
        {
            var client = new Client("", "");

            var filterValue = UriComponents.Host;
            var filter      = client.WhereFilter <TestData>(x => x.Enum == filterValue);

            filter.Should().BeOfType <TermFilter>();
            var termFilter = (TermFilter)filter;

            termFilter.Should().NotBeNull();
            termFilter.Value.Equals((int)filterValue).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName <TestData, UriComponents>(x => x.Enum));
        }
Exemple #15
0
        public void GivenAnIsExpressionWithMemberOnLeftAndSubTypeOfMemberTypeOnRight_ShouldReturnATermFilterWithMembersTypesFieldAndTypeNameAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => x.Another is TestDataSub);

            filter.Should().BeOfType <TermFilter>();
            var termFilter = (TermFilter)filter;

            termFilter.Value.Equals(TypeHierarchyInterceptor.GetTypeName(typeof(TestDataSub))).Should().BeTrue();
            var expectedFieldName = client.GetFieldName <TestData, TestData>(x => x.Another) + "." + TypeHierarchyInterceptor.TypeHierarchyJsonPropertyName;

            termFilter.Field.Should().Be(expectedFieldName);
        }
Exemple #16
0
        public void GivenAnEqualityExpressionWithMemberOnLeftAndDoubleOnRight_ShouldAddATermFilterWithMemberAsFieldAndDoubleAsValue()
        {
            var client = new Client("", "");

            var filterValue = 42.42;
            var filter      = client.WhereFilter <TestData>(x => x.Double == filterValue);

            filter.Should().BeOfType <TermFilter>();
            var termFilter = (TermFilter)filter;

            termFilter.Should().NotBeNull();
            termFilter.Value.Equals(filterValue).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName <TestData, Double>(x => x.Double));
        }
Exemple #17
0
        public void GivenAnEqualityExpressionWithBooleanMemberOnLeftAndFalseOnRightInNegatedParenthesis_ShouldAddANotFilterWithATermFilterWithMemberAsFieldAndFalseAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter <TestData>(x => !(x.Bool == false));

            filter.Should().BeOfType <NotFilter>();
            var notFilter = (NotFilter)filter;

            notFilter.Filter.Should().BeOfType <TermFilter>();
            var termFilter = (TermFilter)notFilter.Filter;

            termFilter.Should().NotBeNull();
            termFilter.Value.Equals(false).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName <TestData, bool>(x => x.Bool));
        }
Exemple #18
0
        public void GivenAnEqualityExpressionWithIntegerPropertyFromNonQueriedClassOnLeftAndMemberOnRight_ShouldAddATermFilterWithMemberAsFieldAndIntegerAsValue()
        {
            var client = new Client("", "");
            var filter = client.WhereFilter<TestData>(x => IntProperty == x.Id);

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.Equals(42).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName<TestData, int>(x => x.Id));
        }
Exemple #19
0
        public void GivenAnEqualityExpressionWithMemberOnLeftAndStringOnRight_ShouldAddATermFilterWithMemberAsFieldAndStringAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => x.Name == "Hello");

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter) filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.Equals("Hello").Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName<TestData, string>(x => x.Name));
        }
Exemple #20
0
        public void GivenAnInequalityExpressionWithNullableDateTimeMemberOnLeftAndNullOnRight_ShouldAddAnExistsFilterWithMemberAsField()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => x.NullableDate != null);

            filter.Should().BeOfType<ExistsFilter>();
            var existsFilter = (ExistsFilter)filter;
            existsFilter.Field.Should().Be(client.GetFieldName<TestData, DateTime?>(x => x.NullableDate));
        }
Exemple #21
0
        public void GivenAnIsExpressionWithMemberOnLeftAndSubTypeOfMemberTypeOnRight_ShouldReturnATermFilterWithMembersTypesFieldAndTypeNameAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => x.Another is TestDataSub);

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            termFilter.Value.Equals(TypeHierarchyInterceptor.GetTypeName(typeof(TestDataSub))).Should().BeTrue();
            var expectedFieldName = client.GetFieldName<TestData, TestData>(x => x.Another) + "." + TypeHierarchyInterceptor.TypeHierarchyJsonPropertyName;
            termFilter.Field.Should().Be(expectedFieldName);
        }
Exemple #22
0
        public void GivenATypeComparisonExpressionWithGetTypeInvokedOnMemberOnLeftAndTypeOfQueriedTypeOnRight_ShouldReturnATermFilterWithMembersFieldPlusTypeFieldAndTypeNameAsValue()
        {
            var client = new Client("", "");
            var typeToMatch = typeof(TestDataSub);
            var filter = client.WhereFilter<TestData>(x => x.Another.GetType() == typeToMatch);

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            var memberFieldName = client.GetFieldName<TestData, TestData>(x => x.Another);
            termFilter.Value.ShouldEqual(typeToMatch + ", " + typeToMatch.Assembly.GetName().Name);
            termFilter.Field.Should().Be(memberFieldName + "." + "$type");
        }
Exemple #23
0
        public void GivenExpressionWithStartsWithInvokedOnMember_ShouldAddAPrefixFilterWithMemberAsFieldAndArgumentAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => x.Name.StartsWith("Hello"));

            filter.Should().BeOfType<PrefixFilter>();
            var termFilter = (PrefixFilter)filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.Should().Be("Hello");
            termFilter.Field.Should().Be(client.GetFieldName<TestData, string>(x => x.Name));
        }
Exemple #24
0
        public void GivenAnEqualityExpressionWithMemberOnLeftAndEnumOnRight_ShouldAddATermFilterWithMemberAsFieldAndEnumAsIntAsValue()
        {
            var client = new Client("", "");

            var filterValue = UriComponents.Host;
            var filter = client.WhereFilter<TestData>(x => x.Enum == filterValue);

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.Equals((int)filterValue).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName<TestData, UriComponents>(x => x.Enum));
        }
Exemple #25
0
        public void GivenAnInequalityExpressionWithMemberOnRightAndIntegerOnLeft_ShouldReturnANotFilterWithATermFilterWithMembersFieldNameAndIntegerValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => x.Id != 42);

            filter.Should().BeOfType<NotFilter>();
            var notFilter = (NotFilter)filter;
            var termFilter = (TermFilter)notFilter.Filter;
            termFilter.Value.Equals(42).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName<TestData, int>(x => x.Id));
        }
Exemple #26
0
        public void GivenAnEqualityExpressionWithMemberOnLeftAndNullableDateTimeOnRight_ShouldAddATermFilterWithMemberAsFieldAndNullableDateTimeAsValue()
        {
            var client = new Client("", "");

            var filterValue = DateTime.Now;
            var filter = client.WhereFilter<TestData>(x => x.NullableDate == filterValue);

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.Equals(filterValue).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName<TestData, DateTime?>(x => x.NullableDate));
        }
Exemple #27
0
        public void GivenAnEqualityExpressionWithBooleanMemberOnLeftAndFalseOnRight_ShouldAddATermFilterWithMemberAsFieldAndFalseAsValue()
        {
            var client = new Client("", "");

            var filterValue = false;
            var filter = client.WhereFilter<TestData>(x => x.Bool == filterValue);

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.Equals(filterValue).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName<TestData, bool>(x => x.Bool));
        }
Exemple #28
0
        public void GivenALessThanExpressionWithMemberOnLeftAndIntegerOnRight_ShouldReturnARangeFilterWithMemberAsFieldAndIntegerAsToValueAndIncludeUpperFalse()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => x.Id < 42);

            filter.Should().BeOfType<RangeFilter<int>>();
            var rangeFilter = (RangeFilter<int>)filter;
            rangeFilter.To.Equals(42).Should().BeTrue();
            rangeFilter.Field.Should().Be(client.GetFieldName<TestData, int>(x => x.Id));
            rangeFilter.IncludeUpper.Should().BeFalse();
        }
Exemple #29
0
        public void GivenAnEqualityExpressionInNegatedParenthesis_ShouldReturnANotFilterWithATermFilter()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => !(x.Id == 42));

            filter.Should().BeOfType<NotFilter>();
            var notFilter = (NotFilter) filter;
            var termFilter = (TermFilter)notFilter.Filter;
            termFilter.Value.Equals(42).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName<TestData, int>(x => x.Id));
        }
Exemple #30
0
        public void GivenAnExpressionWithNegatedBooleanMember_ShouldAddANotFilterWithATermFilterWithMemberAsFieldAndTrueAsValue()
        {
            var client = new Client("", "");

            var filter = client.WhereFilter<TestData>(x => !x.Bool);

            filter.Should().BeOfType<NotFilter>();
            var notFilter = (NotFilter) filter;
            notFilter.Filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)notFilter.Filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.Equals(true).Should().BeTrue();
            termFilter.Field.Should().Be(client.GetFieldName<TestData, bool>(x => x.Bool));
        }