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

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

            filter.Should().BeOfType <NotFilter>();
            var notFilter = (NotFilter)filter;
        }
Exemple #2
0
        public void GivenTwoOrElsedEqualityExpressions_ShouldAddAOrFilterWithTwoFilters()
        {
            var client = new Client("", "");

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

            filter.Should().BeOfType <OrFilter>();
            var orFilter = (OrFilter)filter;

            orFilter.Filters.Should().HaveCount(2);
        }
Exemple #3
0
        public void GivenTwoAndAlsoedEqualityExpressions_ShouldAddAAndFilterWithTwoFilters()
        {
            var client = new Client("", "");

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

            filter.Should().BeOfType <AndFilter>();
            var andFilter = (AndFilter)filter;

            andFilter.Filters.Should().HaveCount(2);
        }
Exemple #4
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 #5
0
        public void GivenALessThanExpressionWithMemberOnLeftAndDateTimeOnRight_ShouldReturnARangeFilterWithMemberAsFieldAndDateTimeAsToValueAndIncludeUpperFalse()
        {
            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.To.Equals(filterValue).Should().BeTrue();
            rangeFilter.Field.Should().Be(client.GetFieldName<TestData, DateTime>(x => x.Date));
            rangeFilter.IncludeUpper.Should().BeFalse();
        }
Exemple #6
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 #7
0
        public void GivenAnIsExpressionWithSubTypeOfQueriedTypeOnRight_ShouldReturnATermFilterWithTypesFieldAndTypeNameAsValue()
        {
            var client = new Client("", "");

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

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

            termFilter.Value.Equals(TypeHierarchyInterceptor.GetTypeName(typeof(TestDataSub))).Should().BeTrue();
            termFilter.Field.Should().Be(TypeHierarchyInterceptor.TypeHierarchyJsonPropertyName);
        }
Exemple #8
0
        public void GivenATypeComparisonExpressionWithTypeOfQueriedTypeOnLeft_ShouldReturnATermFilterWithTypeFieldAndTypeNameAsValue()
        {
            var client      = new Client("", "");
            var typeToMatch = typeof(TestDataSub);
            var filter      = client.WhereFilter <TestData>(x => typeToMatch == x.GetType());

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

            termFilter.Value.Equals(typeToMatch + ", " + typeToMatch.Assembly.GetName().Name).Should().BeTrue();
            termFilter.Field.Should().Be("$type");
        }
Exemple #9
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 #10
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 #11
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 #12
0
        public void GivenExpressionWithStartsWithInvokedOnReturnValueFromToLowerInvokedOnMember_ShouldAddAPrefixFilterWithMemberAsLowercaseFieldAndArgumentAsValue()
        {
            var client = new Client("", "");

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

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

            termFilter.Should().NotBeNull();
            termFilter.Value.Should().Be("Hello");
            termFilter.Field.Should().Be(client.GetFieldNameForLowercase <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 GivenTwoOrElsedEqualityExpressionsInParenthesisAndAnAndAlsoedEqualityExpression_ShouldAddAAndFilterWithTwoFiltersOutOfWhichOneIsAnOrFilter()
        {
            var client = new Client("", "");

            var dateValue = DateTime.Now;
            var filter    = client.WhereFilter <TestData>(x => (x.Id == 42 || x.Name == "Hello") && x.Date == dateValue);

            filter.Should().BeOfType <AndFilter>();
            var andFilter = (AndFilter)filter;

            andFilter.Filters.Should().HaveCount(2);
            andFilter.Filters.First().Should().BeOfType <OrFilter>();
        }
Exemple #15
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 #16
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 #17
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 #18
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 #19
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 #20
0
        public void GivenEqualityExpressionWithToLowerInvariantInvokedOnMemberOnLeftAndStringOnRight_ShouldAddATermFilterWithMemberAsLowercaseFieldAndArgumentAsValue()
        {
            var client = new Client("", "");

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

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

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

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

            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 #22
0
        public void GivenExpressionWithStartsWithInvokedOnMemberWithStringComparisonInvariantCultureIgnoreCase_ShouldAddAPrefixFilterWithMemberAsLowercaseFieldAndArgumentLowercasedAsValue()
        {
            var client = new Client("", "");

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

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

            termFilter.Should().NotBeNull();
            termFilter.Value.Should().Be("hello");
            termFilter.Field.Should().Be(client.GetFieldNameForLowercase <TestData, string>(x => x.Name));
        }
Exemple #23
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 #24
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 #25
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 #26
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 #27
0
        public void GivenExpressionWithStartsWithInvokedOnMemberWithStringComparisonOrdinal_ShouldAddAPrefixFilterWithMemberAsFieldAndArgumentAsValue()
        {
            var client = new Client("", "");

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

            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 #28
0
        public void GivenExpressionWithStartsWithInvokedOnReturnValueFromToLowerInvokedOnMember_ShouldAddAPrefixFilterWithMemberAsLowercaseFieldAndArgumentAsValue()
        {
            var client = new Client("", "");

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

            filter.Should().BeOfType<PrefixFilter>();
            var termFilter = (PrefixFilter)filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.Should().Be("Hello");
            termFilter.Field.Should().Be(client.GetFieldNameForLowercase<TestData, string>(x => x.Name));
        }
Exemple #29
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 #30
0
        public void GivenTwoAndAlsoedEqualityExpressionsInNegatedParenthesis_ShouldReturnANotFilterWithAnAndFilter()
        {
            var client = new Client("", "");

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

            filter.Should().BeOfType<NotFilter>();
            var notFilter = (NotFilter)filter;
        }
Exemple #31
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 #32
0
        public void GivenEqualityExpressionWithToLowerWithCultureInfoInvokedOnMemberOnLeftAndStringOnRight_ShouldAddATermFilterWithMemberAsLowercaseFieldAndArgumentAsValue()
        {
            var client = new Client("", "");

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

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            termFilter.Should().NotBeNull();
            termFilter.Value.ShouldEqual("Hello");
            termFilter.Field.Should().Be(client.GetFieldNameForLowercase<TestData, string>(x => x.Name));
        }
Exemple #33
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 #34
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 #35
0
        public void GivenTwoOrElsedEqualityExpressionsInParenthesisAndAnAndAlsoedEqualityExpression_ShouldAddAAndFilterWithTwoFiltersOutOfWhichOneIsAnOrFilter()
        {
            var client = new Client("", "");

            var dateValue = DateTime.Now;
            var filter = client.WhereFilter<TestData>(x => (x.Id == 42 || x.Name == "Hello") && x.Date == dateValue);

            filter.Should().BeOfType<AndFilter>();
            var andFilter = (AndFilter)filter;
            andFilter.Filters.Should().HaveCount(2);
            andFilter.Filters.First().Should().BeOfType<OrFilter>();
        }
Exemple #36
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 #37
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));
        }
Exemple #38
0
        public void GivenTwoOrElsedEqualityExpressions_ShouldAddAOrFilterWithTwoFilters()
        {
            var client = new Client("", "");

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

            filter.Should().BeOfType<OrFilter>();
            var orFilter = (OrFilter) filter;
            orFilter.Filters.Should().HaveCount(2);
        }
Exemple #39
0
        public void GivenATypeComparisonExpressionWithTypeOfQueriedTypeOnRight_ShouldReturnATermFilterWithTypeFieldAndTypeNameAsValue()
        {
            var client = new Client("", "");
            var typeToMatch = typeof (TestDataSub);
            var filter = client.WhereFilter<TestData>(x => x.GetType() == typeToMatch);

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            termFilter.Value.Equals(typeToMatch + ", " + typeToMatch.Assembly.GetName().Name).Should().BeTrue();
            termFilter.Field.Should().Be("$type");
        }
Exemple #40
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 #41
0
        public void GivenExpressionWithStartsWithInvokedOnMemberWithStringComparisonInvariantCultureIgnoreCase_ShouldAddAPrefixFilterWithMemberAsLowercaseFieldAndArgumentLowercasedAsValue()
        {
            var client = new Client("", "");

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

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

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

            filter.Should().BeOfType<AndFilter>();
            var andFilter = (AndFilter)filter;
            andFilter.Filters.Should().HaveCount(2);
        }
Exemple #43
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 #44
0
        public void GivenAnIsExpressionWithSubTypeOfQueriedTypeOnRight_ShouldReturnATermFilterWithTypesFieldAndTypeNameAsValue()
        {
            var client = new Client("", "");

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

            filter.Should().BeOfType<TermFilter>();
            var termFilter = (TermFilter)filter;
            termFilter.Value.Equals(TypeHierarchyInterceptor.GetTypeName(typeof(TestDataSub))).Should().BeTrue();
            termFilter.Field.Should().Be(TypeHierarchyInterceptor.TypeHierarchyJsonPropertyName);
        }
Exemple #45
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 #46
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 #47
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 #48
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");
        }