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 ShouldBeBindModelAsyncWithModelErrorTest() { var queryCollection = Helper.QueryCollection ( "pageSize", "a", "pageNumber", "2", "sort", "name;desc,birthDate" ); var context = new DefaultHttpContext(); context.Request.Query = queryCollection; var actionContext = new ActionContext { HttpContext = context }; var mock = new MockModelBindingContext { ActionContext = actionContext, ModelState = new ModelStateDictionary() }; var pageableModelBinder = new RSqlPageableModelBinder <Customer>(Helper.Settings(), Helper.JsonOptions(), Helper.MockLogger <Customer>().Object); await pageableModelBinder.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 void Binding_Single_PrimaryKey_Model_Returns_EntityReference() { var serviceProvider = new ServiceCollection() .AddORM() .AddORMEntity <Entity>() .BuildServiceProvider(); var bindingProvider = new ORMEntityModelBindingProvider(); using (var scope = serviceProvider.CreateScope()) { var primaryKey = Guid.NewGuid(); var providerContext = new MockModelBindingProviderContext( scope.ServiceProvider, typeof(IEntityReference <Entity>) ); var binder = bindingProvider.GetBinder(providerContext); var bindingContext = new MockModelBindingContext(primaryKey.ToString(), scope.ServiceProvider); binder.BindModelAsync(bindingContext); var result = bindingContext.Result.Model as Data.SQL.ORM.PrimaryKeyEntityReference <Entity>; Assert.IsNotNull(result); Assert.AreEqual(primaryKey, result.AsEntity().Id); } }
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(); }