public void Build() { var entityTypeList = TypeScan.Scan(new TypeScanOptions { AssemblyString = "SmartSql.Test", Filter = type => type.FullName == "SmartSql.Test.Entities.WebMenu" }); var configBuilder = new CUDConfigBuilder(new NativeConfigBuilder(new SmartSqlConfig()), entityTypeList); Assert.Throws <NullReferenceException>(() => { configBuilder.Build(); }); }
public void BuildWhenParentIsXmlConfigBuilder() { var xmlConfigBuilder = new XmlConfigBuilder(ResourceType.File, SmartSqlBuilder.DEFAULT_SMARTSQL_CONFIG_PATH); var entityTypeList = TypeScan.Scan(new TypeScanOptions { AssemblyString = "SmartSql.Test", Filter = type => type.FullName == "SmartSql.Test.CUD.CudEntity" }); var configBuilder = new CUDConfigBuilder(xmlConfigBuilder, entityTypeList); var smartSqlConfig = configBuilder.Build(); Assert.True(smartSqlConfig.SqlMaps.TryGetValue("CudEntity", out SqlMap sqlMap)); Assert.True(sqlMap.Statements.TryGetValue("CudEntity.Insert", out Statement insertStatement)); Assert.Equal("Insert Into CudEntity (`Id`,`Name`) Values (?Id,?Name)", ((SqlText)insertStatement.SqlTags[0]).BodyText); Assert.True( sqlMap.Statements.TryGetValue("CudEntity.InsertReturnId", out Statement insertReturnIdStatement)); Assert.Equal("Insert Into CudEntity (`Id`,`Name`) Values (?Id,?Name)", ((SqlText)insertReturnIdStatement.SqlTags[0]).BodyText); Assert.Equal(";Select Last_Insert_Id();", ((SqlText)insertReturnIdStatement.SqlTags[1]).BodyText); Assert.True(sqlMap.Statements.TryGetValue("CudEntity.Update", out Statement updateStatement)); Assert.Equal("Update CudEntity", ((SqlText)updateStatement.SqlTags[0]).BodyText); //TODO Assert Child of Set Assert.Equal(typeof(Set), updateStatement.SqlTags[1].GetType()); Assert.Equal(" Where `Id`=?Id", ((SqlText)updateStatement.SqlTags[2]).BodyText); Assert.True(sqlMap.Statements.TryGetValue("CudEntity.DeleteAll", out Statement deleteAllStatement)); Assert.Equal("Delete From CudEntity", ((SqlText)deleteAllStatement.SqlTags[0]).BodyText); Assert.True(sqlMap.Statements.TryGetValue("CudEntity.DeleteById", out Statement deleteByIdStatement)); Assert.Equal("Delete From CudEntity Where `Id`=?Id", ((SqlText)deleteByIdStatement.SqlTags[0]).BodyText); Assert.True(sqlMap.Statements.TryGetValue("CudEntity.DeleteMany", out Statement deleteManyStatement)); Assert.Equal("Delete From CudEntity Where Id In ?Ids", ((SqlText)deleteManyStatement.SqlTags[0]).BodyText); Assert.True(sqlMap.Statements.TryGetValue("CudEntity.GetById", out Statement getByIdStatement)); Assert.Equal("Select * From CudEntity Where `Id`=?Id", ((SqlText)getByIdStatement.SqlTags[0]).BodyText); }
private void BeforeBuildInitService() { var rootConfigBuilder = new RootConfigBuilder(ImportProperties); if (ConfigBuilder.Parent == null) { ConfigBuilder.SetParent(rootConfigBuilder); } if (IsUseCUDConfigBuilder) { ConfigBuilder = new CUDConfigBuilder(ConfigBuilder, EntityTypes, LoggerFactory); } SmartSqlConfig = ConfigBuilder.Build(); SmartSqlConfig.Alias = Alias; SmartSqlConfig.LoggerFactory = LoggerFactory; SmartSqlConfig.DataSourceFilter = DataSourceFilter ?? new DataSourceFilter(SmartSqlConfig.LoggerFactory); SmartSqlConfig.CommandExecuter = CommandExecuter ?? new CommandExecuter(LoggerFactory.CreateLogger <CommandExecuter>()); if (IsCacheEnabled.HasValue) { SmartSqlConfig.Settings.IsCacheEnabled = IsCacheEnabled.Value; } if (IgnoreDbNull.HasValue) { SmartSqlConfig.Settings.IgnoreDbNull = IgnoreDbNull.Value; } if (InvokeSucceeded != null) { SmartSqlConfig.InvokeSucceedListener.InvokeSucceeded += (sender, args) => { InvokeSucceeded(args.ExecutionContext); }; } SmartSqlConfig.SqlParamAnalyzer = new SqlParamAnalyzer(SmartSqlConfig.Settings.IgnoreParameterCase, SmartSqlConfig.Database.DbProvider.ParameterPrefix); SmartSqlConfig.CacheTemplateAnalyzer = new SqlParamAnalyzer(SmartSqlConfig.Settings.IgnoreParameterCase, SmartSqlConfig.Settings.ParameterPrefix); InitDeserializerFactory(); InitFilters(); InitTypeHandlers(); BuildPipeline(); }