예제 #1
0
        public void ODataBuilder_Should_ReturnFilteredQueryWithExpand()
        {
            var filter = new ODataFilterSelector <Relation, string>(x => x.Name, Enums.FilterOperator.Equal, "Johnson");

            var actual = new ODataBuilder <Relation, Guid>(nameof(Relation))
                         .SetFilter(new ODataFilters(filter))
                         .Expand(new ODataBuilder <Relation, Guid>(nameof(Order)))
                         .Build();

            actual.Should().Be($"relation?$filter=name eq 'Johnson'&$expand=order");
        }
예제 #2
0
        public void ODataBuilder_Should_ThrowException_WhenKeyFilterAndFilter()
        {
            var key    = Guid.NewGuid();
            var filter = new ODataFilterSelector <Relation, string>(x => x.Name, Enums.FilterOperator.Equal, "Johnson");

            Action action = () => new ODataBuilder <Relation, Guid>(nameof(Relation), key)
                            .SetFilter(new ODataFilters(filter))
                            .Build();

            action.Should().Throw <ArgumentException>();
        }
예제 #3
0
        public void ODataBuilder_Should_ReturnWithBasicFilter()
        {
            var key    = Guid.NewGuid();
            var filter = new ODataFilterSelector <Relation, string>(x => x.Name, Enums.FilterOperator.Equal, "Johnson");

            var expand = new ODataBuilder <Relation, int>(nameof(Order));

            expand.SetFilter(new ODataFilters(filter));

            var actual = new ODataBuilder <Relation, Guid>(nameof(Relation), key)
                         .Expand(expand)
                         .Build();

            actual.Should().Be($"relation({key})?$expand=order($filter=name eq 'Johnson')");
        }
예제 #4
0
        public void ODataBuilder_Should_ReturnFilteredQueryWithExpand_With_FilterAndOrder()
        {
            var filter = new ODataFilterSelector <Relation, string>(x => x.Name, Enums.FilterOperator.Equal, "Johnson");
            var expand = new ODataBuilder <Relation, Guid>(nameof(Order));

            expand.SetFilter(filter);
            expand.SetOrder <Order, int>(x => x.OrderNumber);

            var actual = new ODataBuilder <Relation, Guid>(nameof(Relation))
                         .SetFilter(new ODataFilters(filter))
                         .Expand(expand)
                         .Build();

            actual.Should().Be("relation?$filter=name eq 'Johnson'&$expand=order($filter=name eq 'Johnson';$orderby=ordernumber)");
        }