Esempio n. 1
0
        public async void ShouldBeBindModelWithModelErrorAsyncTest()
        {
            var queryCollection = Helper.QueryCollection("query", "name=a*");
            var context         = new DefaultHttpContext();

            context.Request.Query = queryCollection;
            var actionContext = new ActionContext {
                HttpContext = context
            };
            var mock = new MockModelBindingContext
            {
                ActionContext = actionContext, ModelState = new ModelStateDictionary()
            };
            var mockLogger = new Mock <ILogger <Customer> >();

            mockLogger.Setup(m => m.IsEnabled(It.IsAny <LogLevel>())).Returns(true);
            var queryModelBinder = new RSqlQueryModelBinder <Customer>(new Settings(), Helper.JsonOptions(), mockLogger.Object);
            await queryModelBinder.BindModelAsync(mock);

            var expected = mock.Result;

            expected.Model
            .Should().BeNull();

            mock.ModelState
            .IsValid.Should().BeFalse();
        }
Esempio n. 2
0
        public async void ShouldBeBindModelAsyncWithCacheTest()
        {
            const string query           = "name==a*";
            var          queryCollection = Helper.QueryCollection("query", query);

            var context = new DefaultHttpContext();

            context.Request.Query = queryCollection;
            var actionContext = new ActionContext {
                HttpContext = context
            };
            var mock = new MockModelBindingContext
            {
                ActionContext = actionContext, ModelState = new ModelStateDictionary()
            };

            var settings = new Settings
            {
                QueryCache         = new MemoryCache(new MemoryCacheOptions()),
                OnCreateCacheEntry = (m) => { m.Size = 1024; }
            };
            var mockLogger = new Mock <ILogger <Customer> >();

            mockLogger.Setup(m => m.IsEnabled(It.IsAny <LogLevel>())).Returns(true);


            var queryModelBinder = new RSqlQueryModelBinder <Customer>(settings, Helper.JsonOptions(), mockLogger.Object);
            await queryModelBinder.BindModelAsync(mock);

            var expected = mock.Result.Model as IRSqlQuery <Customer>;

            expected
            .Should().NotBeNull();

            mock.ModelState
            .IsValid.Should().BeTrue();

            settings.QueryCache.TryGetValue(query, out var expected2);
            expected.Should().Be(expected2);
        }
Esempio n. 3
0
        public async void ShouldBeBindModelAsyncTest()
        {
            var queryCollection = Helper.QueryCollection("query", "name==a*");
            var context         = new DefaultHttpContext();

            context.Request.Query = queryCollection;
            var actionContext = new ActionContext {
                HttpContext = context
            };
            var mock = new MockModelBindingContext
            {
                ActionContext = actionContext, ModelState = new ModelStateDictionary()
            };
            var queryModelBinder = new RSqlQueryModelBinder <Customer>(new Settings(), Helper.JsonOptions(), Helper.MockLogger <Customer>().Object);
            await queryModelBinder.BindModelAsync(mock);

            var expected = mock.Result.Model as IRSqlQuery <Customer>;

            expected
            .Should().NotBeNull();

            mock.ModelState
            .IsValid.Should().BeTrue();
        }