Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,3 @@ dotnet_diagnostic.MA0051.severity = suggestion
dotnet_diagnostic.CA1707.severity = none
# Suppress ConfigureAwait in tests (conflicts with xUnit1030)
dotnet_diagnostic.MA0004.severity = none
# Tests assert on known-ASCII generator output; culture-aware Contains is noise here
dotnet_diagnostic.MA0074.severity = none
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public void Simple_Xsd_Generates_Expected_File_Count()
public void Simple_Xsd_DataSet_File_Contains_Class()
{
var result = RunGenerator(LoadSchema("Simple.xsd"), "Simple.xsd");
var dsTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("AsyncDataSet.g.cs"));
var dsTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("AsyncDataSet.g.cs", StringComparison.Ordinal));
dsTree.Should().NotBeNull();
var text = dsTree!.GetText().ToString();
text.Should().Contain("class AsyncOrdersDS");
Expand All @@ -56,7 +56,7 @@ public void Simple_Xsd_DataSet_File_Contains_Class()
public void Simple_Xsd_Generates_Customer_Table()
{
var result = RunGenerator(LoadSchema("Simple.xsd"), "Simple.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Customer.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Customer.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
text.Should().Contain("class AsyncOrdersDSCustomerDataTable");
Expand All @@ -66,7 +66,7 @@ public void Simple_Xsd_Generates_Customer_Table()
public void Simple_Xsd_Generates_Customer_Row()
{
var result = RunGenerator(LoadSchema("Simple.xsd"), "Simple.xsd");
var rowTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Customer.AsyncDataRow.g.cs"));
var rowTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Customer.AsyncDataRow.g.cs", StringComparison.Ordinal));
rowTree.Should().NotBeNull();
var text = rowTree!.GetText().ToString();
text.Should().Contain("class AsyncOrdersDSCustomerRow");
Expand All @@ -91,7 +91,7 @@ public void NamespacePrefixed_Xsd_Generates_No_Diagnostics()
public void NamespacePrefixed_Xsd_DataSet_Contains_No_Namespace_Prefix()
{
var result = RunGenerator(LoadSchema("NamespacePrefixed.xsd"), "NamespacePrefixed.xsd");
var dsTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("AsyncDataSet.g.cs"));
var dsTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("AsyncDataSet.g.cs", StringComparison.Ordinal));
dsTree.Should().NotBeNull();
var text = dsTree!.GetText().ToString();
text.Should().NotContain("mstns:");
Expand All @@ -112,7 +112,7 @@ public void AttributeColumns_Xsd_Generates_No_Diagnostics()
public void AttributeColumns_Xsd_DataTable_Contains_Column_Fields()
{
var result = RunGenerator(LoadSchema("AttributeColumns.xsd"), "AttributeColumns.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
// All three xs:attribute columns must be declared
Expand All @@ -125,7 +125,7 @@ public void AttributeColumns_Xsd_DataTable_Contains_Column_Fields()
public void AttributeColumns_Xsd_AddRowAsync_Has_Required_Parameters()
{
var result = RunGenerator(LoadSchema("AttributeColumns.xsd"), "AttributeColumns.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
// AddEntryRowAsync must NOT have a leading comma — must have typed params for required cols
Expand All @@ -139,7 +139,7 @@ public void AttributeColumns_Xsd_AddRowAsync_Has_Required_Parameters()
public void AttributeColumns_Xsd_Composite_FindBy_Generated()
{
var result = RunGenerator(LoadSchema("AttributeColumns.xsd"), "AttributeColumns.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
text.Should().Contain("FindByRegionIdCode(");
Expand All @@ -158,7 +158,7 @@ public void MixedColumns_Xsd_Generates_No_Diagnostics()
public void MixedColumns_Xsd_DataTable_Contains_All_Four_Column_Fields()
{
var result = RunGenerator(LoadSchema("MixedColumns.xsd"), "MixedColumns.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
// 2 xs:element + 2 xs:attribute
Expand All @@ -172,7 +172,7 @@ public void MixedColumns_Xsd_DataTable_Contains_All_Four_Column_Fields()
public void AttributeColumns_Xsd_Guid_Attribute_Generated_With_Correct_Type()
{
var result = RunGenerator(LoadSchema("AttributeColumns.xsd"), "AttributeColumns.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
// msdata:DataType="System.Guid" attribute column
Expand All @@ -183,7 +183,7 @@ public void AttributeColumns_Xsd_Guid_Attribute_Generated_With_Correct_Type()
public void AttributeColumns_Xsd_NullValue_Replacement_In_Row()
{
var result = RunGenerator(LoadSchema("AttributeColumns.xsd"), "AttributeColumns.xsd");
var rowTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataRow.g.cs"));
var rowTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Entry.AsyncDataRow.g.cs", StringComparison.Ordinal));
rowTree.Should().NotBeNull();
var text = rowTree!.GetText().ToString();
// codegen:nullValue="N/A" on Tag attribute
Expand Down Expand Up @@ -217,7 +217,7 @@ public void Non_Xsd_Files_Are_Ignored()
public void ColumnMetadata_AutoIncrement_Column_ExcludedFromAddRowParams()
{
var result = RunGenerator(LoadSchema("ColumnMetadata.xsd"), "ColumnMetadata.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
// ItemId is AutoIncrement — must NOT appear in AddItemRowAsync parameters
Expand All @@ -229,7 +229,7 @@ public void ColumnMetadata_AutoIncrement_Column_ExcludedFromAddRowParams()
public void ColumnMetadata_ReadOnly_Column_ExcludedFromAddRowParams()
{
var result = RunGenerator(LoadSchema("ColumnMetadata.xsd"), "ColumnMetadata.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
// CreatedAt is ReadOnly — must NOT appear as a parameter
text.Should().NotContain("createdAt");
Expand All @@ -239,7 +239,7 @@ public void ColumnMetadata_ReadOnly_Column_ExcludedFromAddRowParams()
public void ColumnMetadata_Expression_Column_ExcludedFromAddRowParams()
{
var result = RunGenerator(LoadSchema("ColumnMetadata.xsd"), "ColumnMetadata.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
// DisplayName is Expression — must NOT appear as a parameter
text.Should().NotContain("displayName");
Expand All @@ -249,7 +249,7 @@ public void ColumnMetadata_Expression_Column_ExcludedFromAddRowParams()
public void ColumnMetadata_Hidden_Column_ExcludedFromAddRowParams()
{
var result = RunGenerator(LoadSchema("ColumnMetadata.xsd"), "ColumnMetadata.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
// InternalCode is hiddenColumn — must NOT appear as a parameter
text.Should().NotContain("internalCode");
Expand All @@ -259,7 +259,7 @@ public void ColumnMetadata_Hidden_Column_ExcludedFromAddRowParams()
public void ColumnMetadata_Caption_EmittedInInitClass()
{
var result = RunGenerator(LoadSchema("ColumnMetadata.xsd"), "ColumnMetadata.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
text.Should().Contain("columnNotes.Caption = \"Internal Notes\";");
}
Expand All @@ -268,7 +268,7 @@ public void ColumnMetadata_Caption_EmittedInInitClass()
public void ColumnMetadata_MaxLength_EmittedInInitClass()
{
var result = RunGenerator(LoadSchema("ColumnMetadata.xsd"), "ColumnMetadata.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
text.Should().Contain("columnNotes.MaxLength = 500;");
}
Expand All @@ -277,7 +277,7 @@ public void ColumnMetadata_MaxLength_EmittedInInitClass()
public void ColumnMetadata_DefaultValue_EmittedInInitClass()
{
var result = RunGenerator(LoadSchema("ColumnMetadata.xsd"), "ColumnMetadata.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
text.Should().Contain("columnStatus.DefaultValue = \"Active\";");
}
Expand All @@ -286,7 +286,7 @@ public void ColumnMetadata_DefaultValue_EmittedInInitClass()
public void ColumnMetadata_AutoIncrementSeedAndStep_EmittedInInitClass()
{
var result = RunGenerator(LoadSchema("ColumnMetadata.xsd"), "ColumnMetadata.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Item.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
text.Should().Contain("columnItemId.AutoIncrementSeed = 10;");
text.Should().Contain("columnItemId.AutoIncrementStep = 5;");
Expand All @@ -307,7 +307,7 @@ public void NoPrimaryKey_Xsd_Generates_No_Diagnostics()
public void NoPrimaryKey_Table_Has_No_FindBy_Method()
{
var result = RunGenerator(LoadSchema("NoPrimaryKey.xsd"), "NoPrimaryKey.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Log.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Log.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
text.Should().NotContain("FindBy");
Expand All @@ -317,7 +317,7 @@ public void NoPrimaryKey_Table_Has_No_FindBy_Method()
public void NoPrimaryKey_Table_Still_Has_AddRowMethod()
{
var result = RunGenerator(LoadSchema("NoPrimaryKey.xsd"), "NoPrimaryKey.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Log.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Log.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
text.Should().Contain("AddLogRowAsync(");
text.Should().Contain("string message");
Expand All @@ -339,7 +339,7 @@ public void ConstraintOnly_Generates_No_Diagnostics()
public void ConstraintOnly_Product_AddRow_Has_No_Parent_Row_Param()
{
var result = RunGenerator(LoadSchema("ConstraintOnlyRelation.xsd"), "ConstraintOnlyRelation.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Product.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Product.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
// ConstraintOnly FK means no navigation relation — CategoryId is just a plain column param
Expand All @@ -362,7 +362,7 @@ public void ExternalTypeRef_Generates_No_Diagnostics()
public void ExternalTypeRef_Order_ColumnFields_Emitted()
{
var result = RunGenerator(LoadSchema("ExternalTypeRef.xsd"), "ExternalTypeRef.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Order.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Order.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
text.Should().Contain("columnOrderId");
Expand All @@ -375,7 +375,7 @@ public void ExternalTypeRef_Order_ColumnFields_Emitted()
public void ExternalTypeRef_Order_AddRowAsync_RequiredParams_Only()
{
var result = RunGenerator(LoadSchema("ExternalTypeRef.xsd"), "ExternalTypeRef.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Order.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Order.AsyncDataTable.g.cs", StringComparison.Ordinal));
var text = tableTree!.GetText().ToString();
// OrderId, CustomerId, Amount are required; Note is nullable (optional param)
text.Should().Contain("int orderId");
Expand All @@ -388,7 +388,7 @@ public void ExternalTypeRef_Order_AddRowAsync_RequiredParams_Only()
public void ExternalTypeRef_Tag_AttributeColumnFields_Emitted()
{
var result = RunGenerator(LoadSchema("ExternalTypeRef.xsd"), "ExternalTypeRef.xsd");
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Tag.AsyncDataTable.g.cs"));
var tableTree = result.GeneratedTrees.FirstOrDefault(t => t.FilePath.Contains("Tag.AsyncDataTable.g.cs", StringComparison.Ordinal));
tableTree.Should().NotBeNull();
var text = tableTree!.GetText().ToString();
text.Should().Contain("columnTagId");
Expand Down