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(); }
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); }
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(); }