示例#1
0
        public void ShouldBeThrowArgumentNullException()
        {
            // constructor: settings is null
            this.Invoking((a) => _ = new RSqlPageableModelBinder <Customer>(null, Helper.JsonOptions(), Helper.MockLogger <Customer>().Object))
            .Should()
            .Throw <ArgumentNullException>();

            // constructor: option is null
            this.Invoking((a) => _ = new RSqlPageableModelBinder <Customer>(Helper.Settings(), null, Helper.MockLogger <Customer>().Object))
            .Should()
            .Throw <ArgumentNullException>();

            // constructor: logger is null
            this.Invoking((a) => _ = new RSqlPageableModelBinder <Customer>(Helper.Settings(), Helper.JsonOptions(), null))
            .Should()
            .Throw <ArgumentNullException>();

            // build
            this.Invoking((a) =>
            {
                var binder = new RSqlPageableModelBinder <Customer>(Helper.Settings(), Helper.JsonOptions(), Helper.MockLogger <Customer>().Object);
                binder.Build(null);
            })
            .Should()
            .Throw <ArgumentNullException>();
        }
示例#2
0
        public void ShouldBeValidPageSize()
        {
            const int pageSize            = 10;
            var       queryCollection     = Helper.QueryCollection("pageSize", Convert.ToString(pageSize));
            var       pageableModelBinder = new RSqlPageableModelBinder <Customer>(Helper.Settings(), Helper.JsonOptions(), Helper.MockLogger <Customer>().Object);
            var       expected            = pageableModelBinder.Build(queryCollection);

            expected.PageSize()
            .Should().Be(pageSize);
        }
示例#3
0
        public void ShouldBeIsValid()
        {
            var queryCollection = Helper.QueryCollection
                                  (
                "pageSize", "1",
                "pageNumber", "2",
                "sort", "name;desc,birthDate"
                                  );

            var pageableModelBinder = new RSqlPageableModelBinder <Customer>(Helper.Settings(), Helper.JsonOptions(), Helper.MockLogger <Customer>().Object);
            var expected            = pageableModelBinder.Build(queryCollection);

            // exp
            expected
            .PageNumber().Should().Be(2);
            expected
            .PageSize().Should().Be(1);

            // expected on sort order by ( first )
            expected.Sort()
            .Should().NotBeNull();

            // first sort
            expected.Sort().IsDescending
            .Should().BeTrue();

            ((MemberExpression)((UnaryExpression)expected.Sort().Value.Body).Operand).Member.Name
            .Should().Be("Name");

            // expected on sort order by ( second )
            expected.Sort().Next.Should()
            .NotBeNull();

            // second sort
            expected.Sort().Next.IsDescending
            .Should().BeFalse();

            ((MemberExpression)((UnaryExpression)expected.Sort().Next.Value.Body).Operand).Member.Name
            .Should().Be("BirthDate");
        }