public void ValidateSkipTokenQueryValidator_ThrowsOnNullOption()
        {
            // Arrange & Act & Assert
            SkipTokenQueryValidator validator = new SkipTokenQueryValidator();

            ExceptionAssert.Throws <ArgumentNullException>(() => validator.Validate(null, new ODataValidationSettings()));
        }
Ejemplo n.º 2
0
        public void ApplyToOfTSkipTokenQueryOption_Calls_ApplyToOfTOnSkipTokenHandler()
        {
            // Arrange
            Mock <SkipTokenHandler> handler   = new Mock <SkipTokenHandler>();
            ODataQuerySettings      settings  = new ODataQuerySettings();
            SkipTokenQueryValidator validator = new SkipTokenQueryValidator();
            IServiceProvider        sp        = new ServiceCollection()
                                                .AddSingleton <SkipTokenHandler>(handler.Object)
                                                .AddSingleton <SkipTokenQueryValidator>(validator)
                                                .BuildServiceProvider();

            ODataQueryContext context = new ODataQueryContext(EdmCoreModel.Instance, typeof(int))
            {
                RequestContainer = sp
            };

            SkipTokenQueryOption skipTokenQuery = new SkipTokenQueryOption("abc", context);

            IQueryable <SkipTokenCustomer> query = Array.Empty <SkipTokenCustomer>().AsQueryable();

            handler.Setup(h => h.ApplyTo <SkipTokenCustomer>(query, skipTokenQuery, settings, null)).Returns(query).Verifiable();

            // Act
            skipTokenQuery.ApplyTo <SkipTokenCustomer>(query, settings, null);

            // Assert
            handler.Verify();
        }
        public void ValidateSkipTokenQueryValidator_ThrowsOnNullSettings()
        {
            // Arrange & Act
            SkipTokenQueryValidator validator = new SkipTokenQueryValidator();

            ODataQueryContext    context = new ODataQueryContext(EdmCoreModel.Instance, typeof(int), null);
            SkipTokenQueryOption query   = new SkipTokenQueryOption("abc", context);

            // Assert
            ExceptionAssert.Throws <ArgumentNullException>(() => validator.Validate(query, null));
        }
        public void ValidateSkipTokenQueryValidator_ThrowsNotAllowedQueryOption()
        {
            // Arrange
            ODataValidationSettings settings = new ODataValidationSettings();

            ODataQueryContext context = new ODataQueryContext(EdmCoreModel.Instance, typeof(int), null);

            context.DefaultQuerySettings.EnableSkipToken = false;
            SkipTokenQueryOption query = new SkipTokenQueryOption("abc", context);

            SkipTokenQueryValidator validator = new SkipTokenQueryValidator();

            // Act & Assert
            ExceptionAssert.Throws <ODataException>(() => validator.Validate(query, settings),
                                                    "Query option 'SkipToken' is not allowed. To allow it, set the 'AllowedQueryOptions' property on EnableQueryAttribute or QueryValidationSettings.");
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Initialize a new instance of <see cref="SkipQueryOption"/> based on the raw $skiptoken value and
        /// an EdmModel from <see cref="ODataQueryContext"/>.
        /// </summary>
        /// <param name="rawValue">The raw value for $skiptoken query.</param>
        /// <param name="context">The <see cref="ODataQueryContext"/> which contains the <see cref="IEdmModel"/> and some type information.</param>
        public SkipTokenQueryOption(string rawValue, ODataQueryContext context)
        {
            if (string.IsNullOrEmpty(rawValue))
            {
                throw Error.ArgumentNullOrEmpty(nameof(rawValue));
            }

            if (context == null)
            {
                throw Error.ArgumentNull(nameof(context));
            }

            RawValue  = rawValue;
            Validator = SkipTokenQueryValidator.GetSkipTokenQueryValidator(context);
            Handler   = context.GetSkipTokenHandler();
            Context   = context;
        }
Ejemplo n.º 6
0
        public void CtorSkipTokenQueryOption_SetsProperties()
        {
            // Arrange
            Mock <SkipTokenHandler> handler   = new Mock <SkipTokenHandler>();
            SkipTokenQueryValidator validator = new SkipTokenQueryValidator();
            IServiceProvider        sp        = new ServiceCollection()
                                                .AddSingleton <SkipTokenHandler>(handler.Object)
                                                .AddSingleton <SkipTokenQueryValidator>(validator)
                                                .BuildServiceProvider();

            ODataQueryContext context = new ODataQueryContext(EdmCoreModel.Instance, typeof(int))
            {
                RequestContainer = sp
            };

            // Act
            SkipTokenQueryOption skipTokenQuery = new SkipTokenQueryOption("abc", context);

            // Assert
            Assert.Equal("abc", skipTokenQuery.RawValue);
            Assert.Same(context, skipTokenQuery.Context);
            Assert.Same(handler.Object, skipTokenQuery.Handler);
            Assert.Same(validator, skipTokenQuery.Validator);
        }