public ExecuteEngineFactory(ExecuteEngineFactoryOptions options, IServiceProvider serviceProvider) { if (options is null) { throw new ArgumentNullException(nameof(options)); } config = new ExecuteEngineConfig(); config.SetServiceProvider(serviceProvider); if (options.TypeMapConfig != null) { config.ConfigureTypeMap(options.TypeMapConfig); } if (options.TypeHandlersConfig != null) { config.ConfigureTypeHandlers(options.TypeHandlersConfig); } if (options.ResultMapperFactoriesConfig != null) { config.ConfigureResultMapperFactories(options.ResultMapperFactoriesConfig); } }
public void TestFactoryNotExists() { var engine = new ExecuteEngineConfig() .ConfigureResultMapperFactories(mappers => mappers.Clear()) .ToEngine(); var columns = new[] { new MockColumn(typeof(long), "Id"), new MockColumn(typeof(string), "Name") }; var cmd = new MockDbCommand(); cmd.SetupResult(new MockDataReader(columns, new List <object[]>())); Assert.Throws <AccessorRuntimeException>(() => engine.QueryBuffer <DataEntity>(cmd)); }
public void TestMapProperty() { var engine = new ExecuteEngineConfig().ToEngine(); var columns = new[] { new MockColumn(typeof(int), "Column1"), new MockColumn(typeof(int), "Column2"), new MockColumn(typeof(int), "Column3"), new MockColumn(typeof(int), "Column4"), new MockColumn(typeof(int), "Column5"), new MockColumn(typeof(int), "Column6"), new MockColumn(typeof(int), "Column7"), new MockColumn(typeof(int), "Column8") }; var values = new List <object[]> { new object[] { 1, 1, 1, 1, 1, 1, 1, 1 }, new object[] { DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value } }; var cmd = new MockDbCommand(); cmd.SetupResult(new MockDataReader(columns, values)); var list = engine.QueryBuffer <MapEntity>(cmd); Assert.Equal(2, list.Count); Assert.Equal(1, list[0].Column1); Assert.Equal(1, list[0].Column2); Assert.Equal(1, list[0].Column3); Assert.Equal(Value.One, list[0].Column4); Assert.Equal(Value.One, list[0].Column5); Assert.Equal(0, list[0].Column6); Assert.Equal(0, list[0].Column7); Assert.Equal(0, list[1].Column1); Assert.Null(list[1].Column2); Assert.Equal(0, list[1].Column3); Assert.Equal(Value.Zero, list[1].Column4); Assert.Null(list[1].Column5); Assert.Equal(0, list[1].Column6); Assert.Equal(0, list[1].Column7); }
public void TestDefaultConstructorRequired() { var engine = new ExecuteEngineConfig().ToEngine(); var columns = new[] { new MockColumn(typeof(int), "Id") }; var values = new List <object[]> { new object[] { 1 } }; var cmd = new MockDbCommand(); cmd.SetupResult(new MockDataReader(columns, values)); Assert.Throws <ArgumentException>(() => engine.QueryBuffer <NoConstructor>(cmd)); }
public void Setup() { mockQueryFirst2A = CreateA(2); mockQueryFirst2B = CreateB(2); mockQueryFirst4A = CreateA(4); mockQueryFirst4B = CreateB(4); mockQueryFirst8A = CreateA(8); mockQueryFirst8B = CreateB(8); mockQueryFirst16A = CreateA(16); mockQueryFirst16B = CreateB(16); mockQueryFirst32A = CreateA(32); mockQueryFirst32B = CreateB(32); // DAO dapperExecuteAccessor = new DapperAccessor(); var engine = new ExecuteEngineConfig() .ToEngine(); var factory = new DataAccessorFactory(engine); smartExecuteAccessor = factory.Create <IBenchmarkAccessor>(); }
public void TestMapSingle() { var engine = new ExecuteEngineConfig().ToEngine(); var columns = new[] { new MockColumn(typeof(int), "Column1") }; var values = new List <object[]> { new object[] { 1 }, new object[] { DBNull.Value } }; var cmd = new MockDbCommand(); cmd.SetupResult(new MockDataReader(columns, values)); var list = engine.QueryBuffer <int>(cmd); Assert.Equal(2, list.Count); Assert.Equal(1, list[0]); Assert.Equal(0, list[1]); }
public void TestCustomParser() { var engine = new ExecuteEngineConfig().ToEngine(); var columns = new[] { new MockColumn(typeof(long), "Id"), new MockColumn(typeof(string), "Name") }; var values = new List <object[]> { new object[] { "1", 2 } }; var cmd = new MockDbCommand(); cmd.SetupResult(new MockDataReader(columns, values)); var entity = engine.QueryFirstOrDefault <ParserEntity>(cmd); Assert.NotNull(entity); Assert.Equal(1, entity.Id); Assert.Equal("2", entity.Name); }
public static ExecuteEngine ToEngine(this ExecuteEngineConfig config) => new ExecuteEngine(config);