public void EnsureCreateClass_FromSqlTableReference_AndFromQuery_ProduceEquivalentResults() { string classFromQuery = string.Empty, classFromTable = string.Empty; "Given a C# class generated from a query" ._(() => { var query = string.Format("select * from {0}", TableName); classFromQuery = CSharpClassGeneratorFromQueryViaSqlDescribeResultSet .GenerateClass(SqlConnectionProviders.AdventureWorksDb, query, "Employee"); var compileResults = RoslynHelper.TryCompile(classFromQuery); compileResults.IsValid().Should().BeTrue(); }); "Given a C# class generated from SQL InformationSchema metadata" ._(() => { var sqlTableReference = new SqlTableReference(SqlConnectionProviders.AdventureWorksDb, TableName); classFromTable = CSharpClassGeneratorFromInformationSchema.CreateCSharpClass(sqlTableReference); var compileResults = RoslynHelper.TryCompile(classFromTable); compileResults.IsValid().Should().BeTrue(); }); "They should produce identical output" ._(() => { Console.WriteLine("From Query:\r\n" + classFromQuery); Console.WriteLine("From Table:\r\n" + classFromTable); classFromTable.Should().BeEquivalentTo(classFromQuery); }); }
public void FromDescribeResultSet() { var text = CSharpClassGeneratorFromQueryViaSqlDescribeResultSet.GenerateClass( SqlConnectionProvider, SqlSelectFromPoDetail, PoDetailClassName); Console.WriteLine(text); }
public void CreateClassForDocumentTableFromQueryTest() { var cSharpClass = CSharpClassGeneratorFromQueryViaSqlDescribeResultSet.GenerateClass( SqlConnectionProviders.AdventureWorksDb, $"SELECT * from Production.Document", "Document"); var compileResult = RoslynHelper.TryCompile(cSharpClass); compileResult.IsValid().Should().BeTrue(); Console.WriteLine(cSharpClass); }
public void CreateClassFromQueryTest() { var cSharpClass = CSharpClassGeneratorFromQueryViaSqlDescribeResultSet.GenerateClass( SqlConnectionProviders.AdventureWorksDb, $"SELECT * from {TableName}", "Employee"); var compileResult = RoslynHelper.TryCompile(cSharpClass); compileResult.IsValid().Should().BeTrue(); Console.WriteLine(cSharpClass); cSharpClass.Should().Be(EmployeeCSharpClassText); }
public void CreateClassFromSqlForActualUseWhenNeedingToGenerateCSharpClasses() { var sql = @" select im.PbsiItemNumber, im.EpicorItemNumber, i.StockWeight, i.ItemDescription, i.ItemDescription2, i.ItemDescription3 from ItemMaps im join Items i on im.PbsiItemNumber = i.ItemNumber "; var cSharpClass = CSharpClassGeneratorFromQueryViaSqlDescribeResultSet.GenerateClass(SqlConnectionProviders.PbsiDatabase, sql, "TruckOrderRecordDto"); Console.WriteLine(cSharpClass); }
public void CreateManyRandomClassesFromDescribeResultSet() { string outputText = String.Empty; var randomSqlTableReferences = RandomTableSelector.GetRandomSqlTableReferences(SqlConnectionProviders.AdventureWorksDb, 400).OrderBy(x => x.SchemaName).ThenBy(x => x.TableName); foreach (var sqlTableReference in randomSqlTableReferences) { var sqlTable = SqlTableFactory.Create(sqlTableReference); var cSharpClass = CSharpClassGeneratorFromQueryViaSqlDescribeResultSet.GenerateClass( sqlTableReference.SqlConnectionProvider, $"SELECT * FROM {sqlTable.Schema}.{sqlTable.Name}", sqlTable.Name); outputText += cSharpClass + "\r\n"; } Console.WriteLine(outputText); }
public static string GenerateClassFromQuery(this ISqlConnectionProvider sqlConnectionProvider, string sqlQuery, string className) { return(CSharpClassGeneratorFromQueryViaSqlDescribeResultSet.GenerateClass( sqlConnectionProvider, sqlQuery, className)); }