diff --git a/eng/Versions.props b/eng/Versions.props index 78f3cb399ee4..73a0482a8963 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -132,6 +132,7 @@ $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) + $(MicrosoftTemplateEngineAbstractionsPackageVersion) diff --git a/src/Tests/Microsoft.NET.Build.Tests/AspNetCoreOnFullFramework.cs b/src/Tests/Microsoft.NET.Build.Tests/AspNetCoreOnFullFramework.cs index 467036956196..8f091e05c67a 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/AspNetCoreOnFullFramework.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/AspNetCoreOnFullFramework.cs @@ -94,7 +94,7 @@ class Class1 { FileName = exePath }; - TestContext.Current.AddTestEnvironmentVariables(toolCommandSpec); + TestContext.Current.AddTestEnvironmentVariables(toolCommandSpec.Environment); ICommand toolCommand = toolCommandSpec.ToCommand().CaptureStdOut(); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToGenerateADepsFileForATool.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToGenerateADepsFileForATool.cs index d6af7a0adfc9..3f6167264fe9 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToGenerateADepsFileForATool.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToGenerateADepsFileForATool.cs @@ -232,7 +232,7 @@ private CommandResult GenerateDepsAndRunTool(TestProject toolProject, [CallerMem FileName = TestContext.Current.ToolsetUnderTest.DotNetHostPath, Arguments = dotnetArgs }; - TestContext.Current.AddTestEnvironmentVariables(toolCommandSpec); + TestContext.Current.AddTestEnvironmentVariables(toolCommandSpec.Environment); ICommand toolCommand = toolCommandSpec.ToCommand().CaptureStdOut(); diff --git a/src/Tests/Microsoft.NET.TestFramework/Commands/DotnetCommand.cs b/src/Tests/Microsoft.NET.TestFramework/Commands/DotnetCommand.cs index 2c2305213860..3ffc4ec2d7ec 100644 --- a/src/Tests/Microsoft.NET.TestFramework/Commands/DotnetCommand.cs +++ b/src/Tests/Microsoft.NET.TestFramework/Commands/DotnetCommand.cs @@ -25,7 +25,7 @@ protected override SdkCommandSpec CreateCommand(IEnumerable args) Arguments = args.ToList(), WorkingDirectory = WorkingDirectory }; - TestContext.Current.AddTestEnvironmentVariables(sdkCommandSpec); + TestContext.Current.AddTestEnvironmentVariables(sdkCommandSpec.Environment); return sdkCommandSpec; } } diff --git a/src/Tests/Microsoft.NET.TestFramework/Commands/NuGetExeRestoreCommand.cs b/src/Tests/Microsoft.NET.TestFramework/Commands/NuGetExeRestoreCommand.cs index 6c299670cdcb..cd711af20fd8 100644 --- a/src/Tests/Microsoft.NET.TestFramework/Commands/NuGetExeRestoreCommand.cs +++ b/src/Tests/Microsoft.NET.TestFramework/Commands/NuGetExeRestoreCommand.cs @@ -81,7 +81,7 @@ protected override SdkCommandSpec CreateCommand(IEnumerable args) Arguments = newArgs }; - TestContext.Current.AddTestEnvironmentVariables(ret); + TestContext.Current.AddTestEnvironmentVariables(ret.Environment); return ret; } diff --git a/src/Tests/Microsoft.NET.TestFramework/Commands/RunExeCommand.cs b/src/Tests/Microsoft.NET.TestFramework/Commands/RunExeCommand.cs index d53d32a857e6..9473467a57f8 100644 --- a/src/Tests/Microsoft.NET.TestFramework/Commands/RunExeCommand.cs +++ b/src/Tests/Microsoft.NET.TestFramework/Commands/RunExeCommand.cs @@ -32,7 +32,7 @@ protected override SdkCommandSpec CreateCommand(IEnumerable args) Arguments = args.ToList(), WorkingDirectory = WorkingDirectory, }; - TestContext.Current.AddTestEnvironmentVariables(sdkCommandSpec); + TestContext.Current.AddTestEnvironmentVariables(sdkCommandSpec.Environment); return sdkCommandSpec; } } diff --git a/src/Tests/Microsoft.NET.TestFramework/TestContext.cs b/src/Tests/Microsoft.NET.TestFramework/TestContext.cs index 21344600eda3..61797ff7e10c 100644 --- a/src/Tests/Microsoft.NET.TestFramework/TestContext.cs +++ b/src/Tests/Microsoft.NET.TestFramework/TestContext.cs @@ -3,6 +3,7 @@ using Microsoft.DotNet.Cli.Utils; using Microsoft.NET.TestFramework.Commands; using System.Globalization; +using System.Collections.Generic; namespace Microsoft.NET.TestFramework { @@ -51,20 +52,20 @@ public static TestContext Current public const string LatestRuntimePatchForNetCoreApp2_0 = "2.0.9"; - public void AddTestEnvironmentVariables(SdkCommandSpec command) + public void AddTestEnvironmentVariables(IDictionary environment) { - command.Environment["DOTNET_MULTILEVEL_LOOKUP"] = "0"; + environment["DOTNET_MULTILEVEL_LOOKUP"] = "0"; // Set NUGET_PACKAGES environment variable to match value from build.ps1 - command.Environment["NUGET_PACKAGES"] = NuGetCachePath; + environment["NUGET_PACKAGES"] = NuGetCachePath; - command.Environment["GenerateResourceMSBuildArchitecture"] = "CurrentArchitecture"; - command.Environment["GenerateResourceMSBuildRuntime"] = "CurrentRuntime"; + environment["GenerateResourceMSBuildArchitecture"] = "CurrentArchitecture"; + environment["GenerateResourceMSBuildRuntime"] = "CurrentRuntime"; // Prevent test MSBuild nodes from persisting - command.Environment["MSBUILDDISABLENODEREUSE"] = "1"; + environment["MSBUILDDISABLENODEREUSE"] = "1"; - ToolsetUnderTest.AddTestEnvironmentVariables(command); + ToolsetUnderTest.AddTestEnvironmentVariables(environment); } diff --git a/src/Tests/Microsoft.NET.TestFramework/ToolsetInfo.cs b/src/Tests/Microsoft.NET.TestFramework/ToolsetInfo.cs index 01c27aa2b67a..a581f5bbc307 100644 --- a/src/Tests/Microsoft.NET.TestFramework/ToolsetInfo.cs +++ b/src/Tests/Microsoft.NET.TestFramework/ToolsetInfo.cs @@ -154,29 +154,29 @@ public string GetMicrosoftNETBuildExtensionsPath() } } - public void AddTestEnvironmentVariables(SdkCommandSpec command) + public void AddTestEnvironmentVariables(IDictionary environment) { if (ShouldUseFullFrameworkMSBuild) { string sdksPath = Path.Combine(DotNetRoot, "sdk", SdkVersion, "Sdks"); // Use stage 2 MSBuild SDK resolver - command.Environment["MSBUILDADDITIONALSDKRESOLVERSFOLDER"] = SdkResolverPath; + environment["MSBUILDADDITIONALSDKRESOLVERSFOLDER"] = SdkResolverPath; // Avoid using stage 0 dotnet install dir - command.Environment["DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR"] = ""; + environment["DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR"] = ""; // Put stage 2 on the Path (this is how the MSBuild SDK resolver finds dotnet) - command.Environment["Path"] = DotNetRoot + ";" + Environment.GetEnvironmentVariable("Path"); + environment["Path"] = DotNetRoot + ";" + Environment.GetEnvironmentVariable("Path"); if (!string.IsNullOrEmpty(MicrosoftNETBuildExtensionsPathOverride)) { var microsoftNETBuildExtensionsPath = GetMicrosoftNETBuildExtensionsPath(); - command.Environment["MicrosoftNETBuildExtensionsTargets"] = Path.Combine(microsoftNETBuildExtensionsPath, "Microsoft.NET.Build.Extensions.targets"); + environment["MicrosoftNETBuildExtensionsTargets"] = Path.Combine(microsoftNETBuildExtensionsPath, "Microsoft.NET.Build.Extensions.targets"); if (UsingFullMSBuildWithoutExtensionsTargets()) { - command.Environment["CustomAfterMicrosoftCommonTargets"] = Path.Combine(sdksPath, "Microsoft.NET.Build.Extensions", + environment["CustomAfterMicrosoftCommonTargets"] = Path.Combine(sdksPath, "Microsoft.NET.Build.Extensions", "msbuildExtensions-ver", "Microsoft.Common.targets", "ImportAfter", "Microsoft.NET.Build.Extensions.targets"); } } @@ -185,21 +185,21 @@ public void AddTestEnvironmentVariables(SdkCommandSpec command) if (Environment.Is64BitProcess) { - command.Environment.Add("DOTNET_ROOT", DotNetRoot); + environment.Add("DOTNET_ROOT", DotNetRoot); } else { - command.Environment.Add("DOTNET_ROOT(x86)", DotNetRoot); + environment.Add("DOTNET_ROOT(x86)", DotNetRoot); } if (!string.IsNullOrEmpty(CliHomePath)) { - command.Environment.Add("DOTNET_CLI_HOME", CliHomePath); + environment.Add("DOTNET_CLI_HOME", CliHomePath); } // We set this environment variable for in-process tests, but we don't want it to flow to out of process tests // (especially if we're trying to run on full Framework MSBuild) - command.Environment[DotNet.Cli.Utils.Constants.MSBUILD_EXE_PATH] = ""; + environment[DotNet.Cli.Utils.Constants.MSBUILD_EXE_PATH] = ""; } @@ -236,7 +236,7 @@ private SdkCommandSpec CreateCommand(params string[] args) ret.Arguments = newArgs; } - TestContext.Current.AddTestEnvironmentVariables(ret); + TestContext.Current.AddTestEnvironmentVariables(ret.Environment); return ret; } diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Dotnet-local-tool-manifest-file#-n#item.verified/Dotnet-local-tool-manifest-file/.config/dotnet-tools.json b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Dotnet-local-tool-manifest-file#-n#item.verified/Dotnet-local-tool-manifest-file/.config/dotnet-tools.json new file mode 100644 index 000000000000..703f09751b50 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Dotnet-local-tool-manifest-file#-n#item.verified/Dotnet-local-tool-manifest-file/.config/dotnet-tools.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "isRoot": true, + "tools": {} +} \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Dotnet-local-tool-manifest-file#-n#item.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Dotnet-local-tool-manifest-file#-n#item.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Dotnet-local-tool-manifest-file#-n#item.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item#--empty.verified/EditorConfig-file/.editorconfig b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item#--empty.verified/EditorConfig-file/.editorconfig new file mode 100644 index 000000000000..6a5db887fd68 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item#--empty.verified/EditorConfig-file/.editorconfig @@ -0,0 +1,2 @@ +root = true + diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item#--empty.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item#--empty.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item#--empty.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item.verified/EditorConfig-file/.editorconfig b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item.verified/EditorConfig-file/.editorconfig new file mode 100644 index 000000000000..5d4a124a48fa --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item.verified/EditorConfig-file/.editorconfig @@ -0,0 +1,364 @@ +root = true + +# All files +[*] +indent_style = space + +# Xml files +[*.xml] +indent_size = 2 + +# C# files +[*.cs] + +#### Core EditorConfig Options #### + +# Indentation and spacing +indent_size = 4 +tab_width = 4 + +# New line preferences +end_of_line = crlf +insert_final_newline = false + +#### .NET Coding Conventions #### +[*.{cs,vb}] + +# Organize usings +dotnet_separate_import_directive_groups = true +dotnet_sort_system_directives_first = true +file_header_template = unset + +# this. and Me. preferences +dotnet_style_qualification_for_event = false:silent +dotnet_style_qualification_for_field = false:silent +dotnet_style_qualification_for_method = false:silent +dotnet_style_qualification_for_property = false:silent + +# Language keywords vs BCL types preferences +dotnet_style_predefined_type_for_locals_parameters_members = true:silent +dotnet_style_predefined_type_for_member_access = true:silent + +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent + +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent + +# Expression-level preferences +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_object_initializer = true:suggestion +dotnet_style_operator_placement_when_wrapping = beginning_of_line +dotnet_style_prefer_auto_properties = true:suggestion +dotnet_style_prefer_compound_assignment = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion +dotnet_style_prefer_conditional_expression_over_return = true:suggestion +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_simplified_boolean_expressions = true:suggestion +dotnet_style_prefer_simplified_interpolation = true:suggestion + +# Field preferences +dotnet_style_readonly_field = true:warning + +# Parameter preferences +dotnet_code_quality_unused_parameters = all:suggestion + +# Suppression preferences +dotnet_remove_unnecessary_suppression_exclusions = none + +#### C# Coding Conventions #### +[*.cs] + +# var preferences +csharp_style_var_elsewhere = false:silent +csharp_style_var_for_built_in_types = false:silent +csharp_style_var_when_type_is_apparent = false:silent + +# Expression-bodied members +csharp_style_expression_bodied_accessors = true:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_lambdas = true:suggestion +csharp_style_expression_bodied_local_functions = false:silent +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent + +# Pattern matching preferences +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_prefer_not_pattern = true:suggestion +csharp_style_prefer_pattern_matching = true:silent +csharp_style_prefer_switch_expression = true:suggestion + +# Null-checking preferences +csharp_style_conditional_delegate_call = true:suggestion + +# Modifier preferences +csharp_prefer_static_local_function = true:warning +csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent + +# Code-block preferences +csharp_prefer_braces = true:silent +csharp_prefer_simple_using_statement = true:suggestion + +# Expression-level preferences +csharp_prefer_simple_default_expression = true:suggestion +csharp_style_deconstructed_variable_declaration = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +csharp_style_pattern_local_over_anonymous_function = true:suggestion +csharp_style_prefer_index_operator = true:suggestion +csharp_style_prefer_range_operator = true:suggestion +csharp_style_throw_expression = true:suggestion +csharp_style_unused_value_assignment_preference = discard_variable:suggestion +csharp_style_unused_value_expression_statement_preference = discard_variable:silent + +# 'using' directive preferences +csharp_using_directive_placement = outside_namespace:silent + +#### C# Formatting Rules #### + +# New line preferences +csharp_new_line_before_catch = true +csharp_new_line_before_else = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_open_brace = all +csharp_new_line_between_query_expression_clauses = true + +# Indentation preferences +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = true +csharp_indent_labels = one_less_than_current +csharp_indent_switch_labels = true + +# Space preferences +csharp_space_after_cast = false +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_binary_operators = before_and_after +csharp_space_around_declaration_statements = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_open_square_brackets = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_between_square_brackets = false + +# Wrapping preferences +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = true + +#### Naming styles #### +[*.{cs,vb}] + +# Naming rules + +dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.symbols = types_and_namespaces +dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.interfaces_should_be_ipascalcase.severity = suggestion +dotnet_naming_rule.interfaces_should_be_ipascalcase.symbols = interfaces +dotnet_naming_rule.interfaces_should_be_ipascalcase.style = ipascalcase + +dotnet_naming_rule.type_parameters_should_be_tpascalcase.severity = suggestion +dotnet_naming_rule.type_parameters_should_be_tpascalcase.symbols = type_parameters +dotnet_naming_rule.type_parameters_should_be_tpascalcase.style = tpascalcase + +dotnet_naming_rule.methods_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.methods_should_be_pascalcase.symbols = methods +dotnet_naming_rule.methods_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.properties_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.properties_should_be_pascalcase.symbols = properties +dotnet_naming_rule.properties_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.events_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.events_should_be_pascalcase.symbols = events +dotnet_naming_rule.events_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.local_variables_should_be_camelcase.severity = suggestion +dotnet_naming_rule.local_variables_should_be_camelcase.symbols = local_variables +dotnet_naming_rule.local_variables_should_be_camelcase.style = camelcase + +dotnet_naming_rule.local_constants_should_be_camelcase.severity = suggestion +dotnet_naming_rule.local_constants_should_be_camelcase.symbols = local_constants +dotnet_naming_rule.local_constants_should_be_camelcase.style = camelcase + +dotnet_naming_rule.parameters_should_be_camelcase.severity = suggestion +dotnet_naming_rule.parameters_should_be_camelcase.symbols = parameters +dotnet_naming_rule.parameters_should_be_camelcase.style = camelcase + +dotnet_naming_rule.public_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.public_fields_should_be_pascalcase.symbols = public_fields +dotnet_naming_rule.public_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.private_fields_should_be__camelcase.severity = suggestion +dotnet_naming_rule.private_fields_should_be__camelcase.symbols = private_fields +dotnet_naming_rule.private_fields_should_be__camelcase.style = _camelcase + +dotnet_naming_rule.private_static_fields_should_be_s_camelcase.severity = suggestion +dotnet_naming_rule.private_static_fields_should_be_s_camelcase.symbols = private_static_fields +dotnet_naming_rule.private_static_fields_should_be_s_camelcase.style = s_camelcase + +dotnet_naming_rule.public_constant_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.public_constant_fields_should_be_pascalcase.symbols = public_constant_fields +dotnet_naming_rule.public_constant_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.private_constant_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.private_constant_fields_should_be_pascalcase.symbols = private_constant_fields +dotnet_naming_rule.private_constant_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.symbols = public_static_readonly_fields +dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.symbols = private_static_readonly_fields +dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.enums_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.enums_should_be_pascalcase.symbols = enums +dotnet_naming_rule.enums_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.local_functions_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.local_functions_should_be_pascalcase.symbols = local_functions +dotnet_naming_rule.local_functions_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.non_field_members_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascalcase.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascalcase.style = pascalcase + +# Symbol specifications + +dotnet_naming_symbols.interfaces.applicable_kinds = interface +dotnet_naming_symbols.interfaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.interfaces.required_modifiers = + +dotnet_naming_symbols.enums.applicable_kinds = enum +dotnet_naming_symbols.enums.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.enums.required_modifiers = + +dotnet_naming_symbols.events.applicable_kinds = event +dotnet_naming_symbols.events.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.events.required_modifiers = + +dotnet_naming_symbols.methods.applicable_kinds = method +dotnet_naming_symbols.methods.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.methods.required_modifiers = + +dotnet_naming_symbols.properties.applicable_kinds = property +dotnet_naming_symbols.properties.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.properties.required_modifiers = + +dotnet_naming_symbols.public_fields.applicable_kinds = field +dotnet_naming_symbols.public_fields.applicable_accessibilities = public, internal +dotnet_naming_symbols.public_fields.required_modifiers = + +dotnet_naming_symbols.private_fields.applicable_kinds = field +dotnet_naming_symbols.private_fields.applicable_accessibilities = private, protected, protected_internal, private_protected +dotnet_naming_symbols.private_fields.required_modifiers = + +dotnet_naming_symbols.private_static_fields.applicable_kinds = field +dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private, protected, protected_internal, private_protected +dotnet_naming_symbols.private_static_fields.required_modifiers = static + +dotnet_naming_symbols.types_and_namespaces.applicable_kinds = namespace, class, struct, interface, enum +dotnet_naming_symbols.types_and_namespaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.types_and_namespaces.required_modifiers = + +dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.non_field_members.required_modifiers = + +dotnet_naming_symbols.type_parameters.applicable_kinds = namespace +dotnet_naming_symbols.type_parameters.applicable_accessibilities = * +dotnet_naming_symbols.type_parameters.required_modifiers = + +dotnet_naming_symbols.private_constant_fields.applicable_kinds = field +dotnet_naming_symbols.private_constant_fields.applicable_accessibilities = private, protected, protected_internal, private_protected +dotnet_naming_symbols.private_constant_fields.required_modifiers = const + +dotnet_naming_symbols.local_variables.applicable_kinds = local +dotnet_naming_symbols.local_variables.applicable_accessibilities = local +dotnet_naming_symbols.local_variables.required_modifiers = + +dotnet_naming_symbols.local_constants.applicable_kinds = local +dotnet_naming_symbols.local_constants.applicable_accessibilities = local +dotnet_naming_symbols.local_constants.required_modifiers = const + +dotnet_naming_symbols.parameters.applicable_kinds = parameter +dotnet_naming_symbols.parameters.applicable_accessibilities = * +dotnet_naming_symbols.parameters.required_modifiers = + +dotnet_naming_symbols.public_constant_fields.applicable_kinds = field +dotnet_naming_symbols.public_constant_fields.applicable_accessibilities = public, internal +dotnet_naming_symbols.public_constant_fields.required_modifiers = const + +dotnet_naming_symbols.public_static_readonly_fields.applicable_kinds = field +dotnet_naming_symbols.public_static_readonly_fields.applicable_accessibilities = public, internal +dotnet_naming_symbols.public_static_readonly_fields.required_modifiers = readonly, static + +dotnet_naming_symbols.private_static_readonly_fields.applicable_kinds = field +dotnet_naming_symbols.private_static_readonly_fields.applicable_accessibilities = private, protected, protected_internal, private_protected +dotnet_naming_symbols.private_static_readonly_fields.required_modifiers = readonly, static + +dotnet_naming_symbols.local_functions.applicable_kinds = local_function +dotnet_naming_symbols.local_functions.applicable_accessibilities = * +dotnet_naming_symbols.local_functions.required_modifiers = + +# Naming styles + +dotnet_naming_style.pascalcase.required_prefix = +dotnet_naming_style.pascalcase.required_suffix = +dotnet_naming_style.pascalcase.word_separator = +dotnet_naming_style.pascalcase.capitalization = pascal_case + +dotnet_naming_style.ipascalcase.required_prefix = I +dotnet_naming_style.ipascalcase.required_suffix = +dotnet_naming_style.ipascalcase.word_separator = +dotnet_naming_style.ipascalcase.capitalization = pascal_case + +dotnet_naming_style.tpascalcase.required_prefix = T +dotnet_naming_style.tpascalcase.required_suffix = +dotnet_naming_style.tpascalcase.word_separator = +dotnet_naming_style.tpascalcase.capitalization = pascal_case + +dotnet_naming_style._camelcase.required_prefix = _ +dotnet_naming_style._camelcase.required_suffix = +dotnet_naming_style._camelcase.word_separator = +dotnet_naming_style._camelcase.capitalization = camel_case + +dotnet_naming_style.camelcase.required_prefix = +dotnet_naming_style.camelcase.required_suffix = +dotnet_naming_style.camelcase.word_separator = +dotnet_naming_style.camelcase.capitalization = camel_case + +dotnet_naming_style.s_camelcase.required_prefix = s_ +dotnet_naming_style.s_camelcase.required_suffix = +dotnet_naming_style.s_camelcase.word_separator = +dotnet_naming_style.s_camelcase.capitalization = camel_case + diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#EditorConfig-file#-n#item.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Linux.verified/NuGet-Config/nuget.config b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Linux.verified/NuGet-Config/nuget.config new file mode 100644 index 000000000000..2805dff37f10 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Linux.verified/NuGet-Config/nuget.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Linux.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Linux.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..503be147a4cf --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Linux.verified/std-streams/stdout.txt @@ -0,0 +1,3 @@ +The template "%TEMPLATE_NAME%" was created successfully. + +Processing post-creation actions... \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.OSX.verified/NuGet-Config/nuget.config b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.OSX.verified/NuGet-Config/nuget.config new file mode 100644 index 000000000000..2805dff37f10 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.OSX.verified/NuGet-Config/nuget.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.OSX.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.OSX.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..503be147a4cf --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.OSX.verified/std-streams/stdout.txt @@ -0,0 +1,3 @@ +The template "%TEMPLATE_NAME%" was created successfully. + +Processing post-creation actions... \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Windows.verified/NuGet-Config/nuget.config b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Windows.verified/NuGet-Config/nuget.config new file mode 100644 index 000000000000..2805dff37f10 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Windows.verified/NuGet-Config/nuget.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Windows.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Windows.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#NuGet-Config#-n#item.Windows.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Solution-File#-n#item.verified/Solution-File/item.sln b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Solution-File#-n#item.verified/Solution-File/item.sln new file mode 100644 index 000000000000..58ea56664421 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Solution-File#-n#item.verified/Solution-File/item.sln @@ -0,0 +1,14 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Solution-File#-n#item.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Solution-File#-n#item.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Solution-File#-n#item.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Web-Config#-n#item.verified/Web-Config/web.config b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Web-Config#-n#item.verified/Web-Config/web.config new file mode 100644 index 000000000000..d1dbe7c0e588 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Web-Config#-n#item.verified/Web-Config/web.config @@ -0,0 +1,18 @@ + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Web-Config#-n#item.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Web-Config#-n#item.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#Web-Config#-n#item.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#dotnet-gitignore-file#-n#item.verified/dotnet-gitignore-file/.gitignore b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#dotnet-gitignore-file#-n#item.verified/dotnet-gitignore-file/.gitignore new file mode 100644 index 000000000000..4ccfd18ea962 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#dotnet-gitignore-file#-n#item.verified/dotnet-gitignore-file/.gitignore @@ -0,0 +1,477 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET +project.lock.json +project.fragment.lock.json +artifacts/ + +# Tye +.tye/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + +## +## Visual studio for Mac +## + + +# globs +Makefile.in +*.userprefs +*.usertasks +config.make +config.status +aclocal.m4 +install-sh +autom4te.cache/ +*.tar.gz +tarballs/ +test-results/ + +# Mac bundle stuff +*.dmg +*.app + +# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#dotnet-gitignore-file#-n#item.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#dotnet-gitignore-file#-n#item.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#dotnet-gitignore-file#-n#item.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200#--roll-forward#major.verified/global-json-file/global.json b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200#--roll-forward#major.verified/global-json-file/global.json new file mode 100644 index 000000000000..f553241d7162 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200#--roll-forward#major.verified/global-json-file/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "rollForward": "major", + "version": "6.0.200" + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200#--roll-forward#major.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200#--roll-forward#major.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200#--roll-forward#major.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200.verified/global-json-file/global.json b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200.verified/global-json-file/global.json new file mode 100644 index 000000000000..9493bf5c6c02 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200.verified/global-json-file/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "6.0.200" + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item#--sdk-version#6.0.200.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item.verified/global-json-file/global.json b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item.verified/global-json-file/global.json new file mode 100644 index 000000000000..f14d06d447ca --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item.verified/global-json-file/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "%CURRENT-VER%" + } +} \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..70cab17a4b13 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/AllCommonItemsCreate.-o#global-json-file#-n#item.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "%TEMPLATE_NAME%" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..a84c737601ca --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs @@ -0,0 +1,8 @@ +using System; + +namespace classlib +{ + public class Class1 + { + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..072df2dcfb54 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj @@ -0,0 +1,7 @@ + + + + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..b65bb9d4c3f9 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "Class library" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..fc1265d5a13d --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/Class1.cs @@ -0,0 +1,9 @@ +using System; + +namespace classlib +{ + public class Class1 + { + + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..39b7bff66866 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/classlib.csproj @@ -0,0 +1,8 @@ + + + + %FRAMEWORK% + %LANG% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..0130446e6ed4 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "Class Library" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..fc1265d5a13d --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs @@ -0,0 +1,9 @@ +using System; + +namespace classlib +{ + public class Class1 + { + + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..39b7bff66866 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj @@ -0,0 +1,8 @@ + + + + %FRAMEWORK% + %LANG% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs new file mode 100644 index 000000000000..1a8269fc88f4 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs @@ -0,0 +1,5 @@ +namespace classlib + +module Say = + let hello name = + printfn "Hello %s" name diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj new file mode 100644 index 000000000000..246f0be373c7 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj @@ -0,0 +1,11 @@ + + + + %FRAMEWORK% + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..b65bb9d4c3f9 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "Class library" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb new file mode 100644 index 000000000000..875798b6bd8b --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb @@ -0,0 +1,3 @@ +Public Class Class1 + +End Class diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj new file mode 100644 index 000000000000..435f08ba5583 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj @@ -0,0 +1,8 @@ + + + + classlib + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..b65bb9d4c3f9 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "Class library" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..fc1265d5a13d --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs @@ -0,0 +1,9 @@ +using System; + +namespace classlib +{ + public class Class1 + { + + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..072df2dcfb54 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj @@ -0,0 +1,7 @@ + + + + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs new file mode 100644 index 000000000000..1a8269fc88f4 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs @@ -0,0 +1,5 @@ +namespace classlib + +module Say = + let hello name = + printfn "Hello %s" name diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj new file mode 100644 index 000000000000..9e3c302e9a8a --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj @@ -0,0 +1,12 @@ + + + + %FRAMEWORK% + true + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb new file mode 100644 index 000000000000..875798b6bd8b --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb @@ -0,0 +1,3 @@ +Public Class Class1 + +End Class diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj new file mode 100644 index 000000000000..435f08ba5583 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj @@ -0,0 +1,8 @@ + + + + classlib + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..fc1265d5a13d --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs @@ -0,0 +1,9 @@ +using System; + +namespace classlib +{ + public class Class1 + { + + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..a968f1b07101 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj @@ -0,0 +1,9 @@ + + + + %FRAMEWORK% + %LANG% + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..fc1265d5a13d --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Class1.cs @@ -0,0 +1,9 @@ +using System; + +namespace classlib +{ + public class Class1 + { + + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..089bd557c90e --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/classlib.csproj @@ -0,0 +1,8 @@ + + + + %FRAMEWORK% + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..fc1265d5a13d --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Class1.cs @@ -0,0 +1,9 @@ +using System; + +namespace classlib +{ + public class Class1 + { + + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..a968f1b07101 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/classlib.csproj @@ -0,0 +1,9 @@ + + + + %FRAMEWORK% + %LANG% + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs new file mode 100644 index 000000000000..1a8269fc88f4 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Library.fs @@ -0,0 +1,5 @@ +namespace classlib + +module Say = + let hello name = + printfn "Hello %s" name diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj new file mode 100644 index 000000000000..9e3c302e9a8a --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/classlib.fsproj @@ -0,0 +1,12 @@ + + + + %FRAMEWORK% + true + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb new file mode 100644 index 000000000000..875798b6bd8b --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Class1.vb @@ -0,0 +1,3 @@ +Public Class Class1 + +End Class diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj new file mode 100644 index 000000000000..435f08ba5583 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/classlib.vbproj @@ -0,0 +1,8 @@ + + + + classlib + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..ae5e51c9ff8d --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/MyProject/Class1.cs @@ -0,0 +1,7 @@ +using System; + +namespace classlib; +public class Class1 +{ + +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..a968f1b07101 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/MyProject/classlib.csproj @@ -0,0 +1,9 @@ + + + + %FRAMEWORK% + %LANG% + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-True#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..b080d4b67534 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Class1.cs @@ -0,0 +1,5 @@ +namespace classlib; +public class Class1 +{ + +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..9ec0fc5f2334 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/classlib.csproj @@ -0,0 +1,9 @@ + + + + %FRAMEWORK% + enable + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Class1.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Class1.cs new file mode 100644 index 000000000000..b080d4b67534 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Class1.cs @@ -0,0 +1,5 @@ +namespace classlib; +public class Class1 +{ + +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/classlib.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/classlib.csproj new file mode 100644 index 000000000000..8af04e6e81c3 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/classlib.csproj @@ -0,0 +1,10 @@ + + + + %FRAMEWORK% + %LANG% + enable + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/Library.fs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/Library.fs new file mode 100644 index 000000000000..1a8269fc88f4 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/Library.fs @@ -0,0 +1,5 @@ +namespace classlib + +module Say = + let hello name = + printfn "Hello %s" name diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/classlib.fsproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/classlib.fsproj new file mode 100644 index 000000000000..9e3c302e9a8a --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/classlib.fsproj @@ -0,0 +1,12 @@ + + + + %FRAMEWORK% + true + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/Class1.vb b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/Class1.vb new file mode 100644 index 000000000000..875798b6bd8b --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/Class1.vb @@ -0,0 +1,3 @@ +Public Class Class1 + +End Class diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/classlib.vbproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/classlib.vbproj new file mode 100644 index 000000000000..435f08ba5583 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/classlib.vbproj @@ -0,0 +1,8 @@ + + + + classlib + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..a171dba75261 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Class Library" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Program.cs new file mode 100644 index 000000000000..5ea6f160ba6e --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace console +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/console.csproj new file mode 100644 index 000000000000..49dec9e0cb41 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/MyProject/console.csproj @@ -0,0 +1,8 @@ + + + + Exe + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..77deedcab0ae --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "Console Application" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/Program.cs new file mode 100644 index 000000000000..eb556c611f8f --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace console +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + } + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/console.csproj new file mode 100644 index 000000000000..77de492bfc70 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/MyProject/console.csproj @@ -0,0 +1,9 @@ + + + + Exe + %FRAMEWORK% + %LANG% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..9c7466dd11dc --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs#UnsuportedLangVer.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "Console App" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs new file mode 100644 index 000000000000..eb556c611f8f --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace console +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + } + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj new file mode 100644 index 000000000000..77de492bfc70 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj @@ -0,0 +1,9 @@ + + + + Exe + %FRAMEWORK% + %LANG% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Program.fs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Program.fs new file mode 100644 index 000000000000..a6926f15e3d4 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/Program.fs @@ -0,0 +1,13 @@ +// Learn more about F# at http://docs.microsoft.com/dotnet/fsharp + +open System + +// Define a function to construct a message to print +let from whom = + sprintf "from %s" whom + +[] +let main argv = + let message = from "F#" // Call the function + printfn "Hello world %s" message + 0 // return an integer exit code \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/console.fsproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/console.fsproj new file mode 100644 index 000000000000..b3edcc939c2c --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/MyProject/console.fsproj @@ -0,0 +1,12 @@ + + + + Exe + %FRAMEWORK% + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..77deedcab0ae --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#fs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "Console Application" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Program.vb b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Program.vb new file mode 100644 index 000000000000..9cd8d2fcff1f --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/Program.vb @@ -0,0 +1,7 @@ +Imports System + +Module Program + Sub Main(args As String()) + Console.WriteLine("Hello World!") + End Sub +End Module diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/vb-console.vbproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/vb-console.vbproj new file mode 100644 index 000000000000..c1b7af240c58 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/MyProject/vb-console.vbproj @@ -0,0 +1,9 @@ + + + + Exe + vb_console + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..77deedcab0ae --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#vb#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1 @@ +The template "Console Application" was created successfully. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs new file mode 100644 index 000000000000..eb556c611f8f --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace console +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + } + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj new file mode 100644 index 000000000000..2f468dfa8531 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj @@ -0,0 +1,10 @@ + + + + Exe + %FRAMEWORK% + %LANG% + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Program.cs new file mode 100644 index 000000000000..32235d003676 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Program.cs @@ -0,0 +1,8 @@ +namespace console; +class Program +{ + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/console.csproj new file mode 100644 index 000000000000..2259bce51317 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/console.csproj @@ -0,0 +1,10 @@ + + + + Exe + %FRAMEWORK% + enable + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Program.cs new file mode 100644 index 000000000000..32235d003676 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Program.cs @@ -0,0 +1,8 @@ +namespace console; +class Program +{ + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + } +} diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/console.csproj new file mode 100644 index 000000000000..63f76841e653 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/console.csproj @@ -0,0 +1,11 @@ + + + + Exe + %FRAMEWORK% + %LANG% + enable + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-False#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs new file mode 100644 index 000000000000..ea0a451f4903 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/Program.cs @@ -0,0 +1,4 @@ +// See https://aka.ms/new-console-template for more information +using System; + +Console.WriteLine("Hello, World!"); diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj new file mode 100644 index 000000000000..2f468dfa8531 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/MyProject/console.csproj @@ -0,0 +1,10 @@ + + + + Exe + %FRAMEWORK% + %LANG% + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-False#FileScopedNs-False#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Program.cs new file mode 100644 index 000000000000..3751555cbd32 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/console.csproj new file mode 100644 index 000000000000..2259bce51317 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/MyProject/console.csproj @@ -0,0 +1,10 @@ + + + + Exe + %FRAMEWORK% + enable + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Program.cs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Program.cs new file mode 100644 index 000000000000..3751555cbd32 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/console.csproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/console.csproj new file mode 100644 index 000000000000..63f76841e653 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/MyProject/console.csproj @@ -0,0 +1,11 @@ + + + + Exe + %FRAMEWORK% + %LANG% + enable + enable + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#cs.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/Program.fs b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/Program.fs new file mode 100644 index 000000000000..d6818aba8a83 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/Program.fs @@ -0,0 +1,2 @@ +// For more information see https://aka.ms/fsharp-console-apps +printfn "Hello from F#" diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/console.fsproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/console.fsproj new file mode 100644 index 000000000000..b3edcc939c2c --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/MyProject/console.fsproj @@ -0,0 +1,12 @@ + + + + Exe + %FRAMEWORK% + + + + + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#fs#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/Program.vb b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/Program.vb new file mode 100644 index 000000000000..9cd8d2fcff1f --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/Program.vb @@ -0,0 +1,7 @@ +Imports System + +Module Program + Sub Main(args As String()) + Console.WriteLine("Hello World!") + End Sub +End Module diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/vb-console.vbproj b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/vb-console.vbproj new file mode 100644 index 000000000000..c1b7af240c58 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/MyProject/vb-console.vbproj @@ -0,0 +1,9 @@ + + + + Exe + vb_console + %FRAMEWORK% + + + diff --git a/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/std-streams/stdout.txt b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/std-streams/stdout.txt new file mode 100644 index 000000000000..de33e2532500 --- /dev/null +++ b/src/Tests/dotnet-new.Tests/Approvals/FeaturesSupport.console.Nullable-True#TopLevel-True#ImplicitUsings-True#FileScopedNs-True#vb#NoLangVer.verified/std-streams/stdout.txt @@ -0,0 +1,7 @@ +The template "Console App" was created successfully. + +Processing post-creation actions... +Restoring %PROJECT_PATH%: + Determining projects to restore... + Restored %PROJECT_PATH% (%DURATION%). +Restore succeeded. \ No newline at end of file diff --git a/src/Tests/dotnet-new.Tests/CommonTemplatesTests.cs b/src/Tests/dotnet-new.Tests/CommonTemplatesTests.cs index 1688065bc181..0936c8776233 100644 --- a/src/Tests/dotnet-new.Tests/CommonTemplatesTests.cs +++ b/src/Tests/dotnet-new.Tests/CommonTemplatesTests.cs @@ -5,10 +5,13 @@ using System.Diagnostics; using System.Runtime.InteropServices; using System.Text.RegularExpressions; -using System.Xml.Linq; using Microsoft.DotNet.Cli.Utils; +using Microsoft.DotNet.Tools.New; +using Microsoft.Extensions.Logging; +using Microsoft.NET.TestFramework; using Microsoft.NET.TestFramework.Assertions; using Microsoft.NET.TestFramework.Commands; +using Microsoft.TemplateEngine.Authoring.TemplateVerifier; using Microsoft.TemplateEngine.TestHelper; using Xunit.Abstractions; @@ -18,268 +21,105 @@ public class CommonTemplatesTests : BaseIntegrationTest, IClassFixture "fsproj", - "VB" => "vbproj", - _ => "csproj" - }; - string finalProjectName = Regex.Escape(Path.Combine(workingDir, $"{workingDirName}.{extension}")); - Console.WriteLine($"Expected project location: {finalProjectName}"); + Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; + TestContext.Current.AddTestEnvironmentVariables(environmentUnderTest); + + string itemName = expectedTemplateName.Replace(' ', '-').Replace('.', '-'); + + TemplateVerifierOptions options = new TemplateVerifierOptions(templateName: templateShortName) + { + // squeshing snapshots by creating output unique for template (but not alias) and preventing item to have name by alias + TemplateSpecificArgs = new[] { "-o", itemName, "-n", "item" }.Concat(args ?? Enumerable.Empty()), + SnapshotsDirectory = "Approvals", + VerifyCommandOutput = true, + VerificationExcludePatterns = new[] { "*/stderr.txt", "*\\stderr.txt" }, + SettingsDirectory = _fixture.HomeDirectory, + DotnetExecutablePath = TestContext.Current.ToolsetUnderTest.DotNetHostPath, + DoNotPrependTemplateNameToScenarioName = true, + UniqueFor = expectedTemplateName.Equals("NuGet Config") ? UniqueForOption.OsPlatform : null, + } + .WithCustomEnvironment(environmentUnderTest) + .WithCustomScrubbers( + ScrubbersDefinition.Empty + .AddScrubber(sb => sb.UnixifyNewlines(), "out") + .AddScrubber((path, content) => + { + if (path.Replace(Path.DirectorySeparatorChar, '/') == "std-streams/stdout.txt") + { + content.UnixifyDirSeparators().Replace(expectedTemplateName, "%TEMPLATE_NAME%"); + } + }) + ); - List args = new() { templateShortName }; - if (!string.IsNullOrWhiteSpace(language)) - { - args.Add("--language"); - args.Add(language); - } - if (!string.IsNullOrWhiteSpace(framework)) + // globaljson is appending current sdk version. Due to the 'base' dotnet used to run test this version differs + // on dev and CI runs and possibly from the version within test host. Easiest is just to scrub it away + if (expectedTemplateName.Equals("global.json file") && args == null) { - args.Add("--framework"); - args.Add(framework); - } - if (!string.IsNullOrWhiteSpace(langVersion)) - { - args.Add("--langVersion"); - args.Add(langVersion); + string sdkVersionUnderTest = await new SdkInfoProvider().GetCurrentVersionAsync(default).ConfigureAwait(false); + options.CustomScrubbers?.AddScrubber(sb => sb.Replace(sdkVersionUnderTest, "%CURRENT-VER%"), "json"); } - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr() - .And.HaveStdOutMatching( -$@"The template ""{expectedTemplateName}"" was created successfully\. - -Processing post-creation actions\.\.\. -Restoring {finalProjectName}: -.* -Restore succeeded\.", - RegexOptions.Singleline); - - new DotnetRestoreCommand(_log) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And - .NotHaveStdErr(); - - new DotnetBuildCommand(_log) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And - .NotHaveStdErr(); - - Directory.Delete(workingDir, true); + VerificationEngine engine = new VerificationEngine(_logger); + await engine.Execute(options).ConfigureAwait(false); } - [Theory] - [InlineData("Console App", "console")] - [InlineData("Console App", "console", "C#")] - [InlineData("Console App", "console", "F#")] - [InlineData("Console App", "console", "VB")] - [InlineData("Console App", "console", "C#", "net8.0")] - [InlineData("Console App", "console", "F#", "net8.0")] - [InlineData("Console App", "console", "VB", "net8.0")] - [InlineData("Console App", "console", "C#", "net7.0")] - [InlineData("Console App", "console", "F#", "net7.0")] - [InlineData("Console App", "console", "VB", "net7.0")] - [InlineData("Console App", "console", "C#", "net6.0")] - [InlineData("Console App", "console", "F#", "net6.0")] - [InlineData("Console App", "console", "VB", "net6.0")] - - [InlineData("Class Library", "classlib")] - [InlineData("Class Library", "classlib", "C#")] - [InlineData("Class Library", "classlib", "F#")] - [InlineData("Class Library", "classlib", "VB")] - [InlineData("Class Library", "classlib", "C#", "net8.0")] - [InlineData("Class Library", "classlib", "F#", "net8.0")] - [InlineData("Class Library", "classlib", "VB", "net8.0")] - [InlineData("Class Library", "classlib", "C#", "net7.0")] - [InlineData("Class Library", "classlib", "F#", "net7.0")] - [InlineData("Class Library", "classlib", "VB", "net7.0")] - [InlineData("Class Library", "classlib", "C#", "net6.0")] - [InlineData("Class Library", "classlib", "F#", "net6.0")] - [InlineData("Class Library", "classlib", "C#", "netstandard2.1")] - [InlineData("Class Library", "classlib", "VB", "netstandard2.1")] - [InlineData("Class Library", "classlib", "F#", "netstandard2.1")] - [InlineData("Class Library", "classlib", "C#", "netstandard2.0")] - [InlineData("Class Library", "classlib", "VB", "netstandard2.0")] - [InlineData("Class Library", "classlib", "F#", "netstandard2.0")] - public void AllCommonProjectsCreate_NoRestore(string expectedTemplateName, string templateShortName, string? language = null, string? framework = null) - { - string workingDir = CreateTemporaryFolder(folderName: $"{templateShortName}-{language?.Replace("#", "Sharp") ?? "null"}-{framework ?? "null"}"); - - List args = new() { templateShortName, "--no-restore" }; - if (!string.IsNullOrWhiteSpace(language)) - { - args.Add("--language"); - args.Add(language); - } - if (!string.IsNullOrWhiteSpace(framework)) - { - args.Add("--framework"); - args.Add(framework); - } - - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr() - .And.HaveStdOut($@"The template ""{expectedTemplateName}"" was created successfully."); - - Directory.Delete(workingDir, true); - } - - [Theory] - [InlineData("dotnet gitignore file", "gitignore")] - [InlineData("global.json file", "globaljson")] - [InlineData("NuGet Config", "nugetconfig")] - [InlineData("dotnet gitignore file", ".gitignore")] - [InlineData("global.json file", "global.json")] - [InlineData("NuGet Config", "nuget.config")] - [InlineData("Solution File", "sln")] - [InlineData("Solution File", "solution")] - [InlineData("Dotnet local tool manifest file", "tool-manifest")] - [InlineData("Web Config", "webconfig")] - [InlineData("EditorConfig file", "editorconfig")] - [InlineData("EditorConfig file", ".editorconfig")] - public void AllCommonItemsCreate(string expectedTemplateName, string templateShortName) - { - string workingDir = CreateTemporaryFolder(folderName: templateShortName.Replace(".", "_")); - - new DotnetNewCommand(_log, templateShortName) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr() - .And.HaveStdOutContaining($@"The template ""{expectedTemplateName}"" was created successfully."); - - Directory.Delete(workingDir, true); - } - - [Fact] - public void EditorConfigTests() - { - string workingDir = CreateTemporaryFolder(); - - new DotnetNewCommand(_log, "editorconfig") - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr() - .And.HaveStdOut($@"The template ""EditorConfig file"" was created successfully."); - - string path = Path.Combine(workingDir, ".editorconfig"); - string editorConfigContent = File.ReadAllText(path); - Assert.Contains("dotnet_naming_rule", editorConfigContent); - Assert.Contains("dotnet_style_", editorConfigContent); - Assert.Contains("dotnet_naming_symbols", editorConfigContent); - File.Delete(path); - - new DotnetNewCommand(_log, "editorconfig", "--empty") - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr() - .And.HaveStdOut($@"The template ""EditorConfig file"" was created successfully."); - - editorConfigContent = File.ReadAllText(path); - Assert.DoesNotContain("dotnet_naming_rule", editorConfigContent); - Assert.DoesNotContain("dotnet_style_", editorConfigContent); - Assert.DoesNotContain("dotnet_naming_symbols", editorConfigContent); - Assert.Contains("root = true", editorConfigContent); - Directory.Delete(workingDir, true); - } - - [Theory] - [InlineData( -@"{ - ""sdk"": { - ""version"": ""6.0.200"" - } -}", - "globaljson", - "--sdk-version", - "6.0.200")] - [InlineData( -@"{ - ""sdk"": { - ""rollForward"": ""major"", - ""version"": ""6.0.200"" - } -}", - "globaljson", - "--sdk-version", - "6.0.200", - "--roll-forward", - "major")] - public void GlobalJsonTests(string expectedContent, params string[] parameters) - { - string workingDir = CreateTemporaryFolder(); - - new DotnetNewCommand(_log, parameters) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr() - .And.HaveStdOut($@"The template ""global.json file"" was created successfully."); - - string globalJsonConent = File.ReadAllText(Path.Combine(workingDir, "global.json")); - Assert.Equal(expectedContent.Replace("\r\n", "\n"), globalJsonConent.Replace("\r\n", "\n")); - Directory.Delete(workingDir, true); - } + // + // Sample of a custom verifier callback + // To be uncommented in case editorconfig template will start to genearate dynamic content + // + + //[Fact] + //public async void EditorConfigTests_Default() + //{ + // TemplateVerifierOptions options = new TemplateVerifierOptions(templateName: "editorconfig") + // { + // SnapshotsDirectory = "Approvals", + // SettingsDirectory = _fixture.HomeDirectory, + // } + // .WithCustomDirectoryVerifier(async (content, contentFetcher) => + // { + // await foreach (var (filePath, scrubbedContent) in contentFetcher.Value) + // { + // filePath.Replace(Path.DirectorySeparatorChar, '/').Should().BeEquivalentTo(@"editorconfig/.editorconfig"); + // scrubbedContent.Should().Contain("dotnet_naming_rule"); + // scrubbedContent.Should().Contain("dotnet_style_"); + // scrubbedContent.Should().Contain("dotnet_naming_symbols"); + // } + // }); + + // VerificationEngine engine = new VerificationEngine(_logger); + // await engine.Execute(options).ConfigureAwait(false); + //} [Fact] public void NuGetConfigPermissions() @@ -327,475 +167,133 @@ public void NuGetConfigPermissions() /// /// Creates all possible combinations for supported templates, language versions and frameworks. /// - public static IEnumerable TopLevelProgramSupport_Data() + public static IEnumerable FeaturesSupport_Data() { + const string consoleTemplateShortname = "console"; + var templatesToTest = new[] { - new { Name = "console", Frameworks = new[] { null, "net8.0" } } + new { Template = consoleTemplateShortname, Frameworks = new[] { null, "net6.0", "net7.0", "net8.0" } }, + new { Template = "classlib", Frameworks = new[] { null, "net6.0", "net7.0", "net8.0", "netstandard2.0", "netstandard2.1" } } }; + //features: top-level statements; nullables; implicit usings; filescoped namespaces + string[] unsupportedLanguageVersions = { "1", "ISO-1" }; //C# 12 is not supported yet - https://github.com/dotnet/sdk/issues/29195 - string?[] supportedLanguageVersions = { null, "ISO-2", "2", "3", "4", "5", "6", "7", "7.1", "7.2", "7.3", "8.0", "9.0", "10.0", "11.0", /*"12.0", */"latest", "latestMajor", "default", "preview" }; - - string?[] topLevelStatementSupport = { null, "9.0", "10.0", "11.0", "12.0", "latest", "latestMajor", "default", "preview" }; - - foreach (var template in templatesToTest) - { - foreach (string langVersion in unsupportedLanguageVersions) - { - foreach (string? framework in template.Frameworks) - { - yield return new object?[] - { - template.Name, - false, //dotnet build should fail - framework, - langVersion, - topLevelStatementSupport.Contains(langVersion) - }; - } - } - foreach (string? langVersion in supportedLanguageVersions) - { - foreach (string? framework in template.Frameworks) - { - yield return new object?[] - { - template.Name, - true, //dotnet build should pass - framework, - langVersion, - topLevelStatementSupport.Contains(langVersion) - }; - } - } - } - } - - [Theory] - //creates all possible combinations for supported templates, language versions and frameworks -#pragma warning disable CA1825 // Avoid zero-length array allocations. https://github.com/dotnet/sdk/issues/28672 - [MemberData(nameof(TopLevelProgramSupport_Data))] -#pragma warning restore CA1825 // Avoid zero-length array allocations. - public void TopLevelProgramSupport(string name, bool buildPass, string? framework, string? langVersion, bool supportsFeature) - { - string workingDir = CreateTemporaryFolder(folderName: $"{name}-{langVersion ?? "null"}-{framework ?? "null"}"); - - List args = new() { name, "-o", "MyProject" }; - if (!string.IsNullOrWhiteSpace(framework)) - { - args.Add("--framework"); - args.Add(framework); - } - if (!string.IsNullOrWhiteSpace(langVersion)) - { - args.Add("--langVersion"); - args.Add(langVersion); - } - - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr(); - - CommandResult buildResult = new DotnetCommand(_log, "build", "MyProject") - .WithWorkingDirectory(workingDir) - .Execute(); - - if (buildPass) - { - buildResult.Should().ExitWith(0).And.NotHaveStdErr(); - } - else - { - buildResult.Should().Fail(); - return; - } - - string programFileContent = File.ReadAllText(Path.Combine(workingDir, "MyProject", "Program.cs")); - string unexpectedTopLevelContent = -@"namespace MyProject -{ - class Program - { - static void Main(string[] args) - { - Console.WriteLine(""Hello, World!""); - } - } -} -"; - if (supportsFeature) - { - Assert.Contains("Console.WriteLine(\"Hello, World!\")", programFileContent); - Assert.Contains("// See https://aka.ms/new-console-template for more information", programFileContent); - Assert.DoesNotContain(unexpectedTopLevelContent, programFileContent); - } - else - { - Assert.DoesNotContain("// See https://aka.ms/new-console-template for more information", programFileContent); - Assert.Contains(unexpectedTopLevelContent, programFileContent); - } - } - - [Theory] - //C# 12 is not supported yet - https://github.com/dotnet/sdk/issues/29195 - //[InlineData("12.0")] - //[InlineData("12")] - [InlineData("11.0")] - [InlineData("11")] - [InlineData("10.0")] - [InlineData("10")] - [InlineData("preview")] - [InlineData("latest")] - [InlineData("default")] - [InlineData("latestMajor")] - [InlineData(null)] - public void TopLevelProgramSupport_WhenFlagIsEnabled(string? langVersion) - { - string workingDir = CreateTemporaryFolder(folderName: $"{langVersion ?? "null"}"); - - List args = new() { "console", "-o", "MyProject", "--use-program-main" }; - if (!string.IsNullOrEmpty(langVersion)) - { - args.Add("--langVersion"); - args.Add(langVersion); - } - - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr(); - - new DotnetCommand(_log, "build", "MyProject") - .WithWorkingDirectory(workingDir) - .Execute() - .Should().ExitWith(0).And.NotHaveStdErr(); - - string programFileContent = File.ReadAllText(Path.Combine(workingDir, "MyProject", "Program.cs")); - string expectedTopLevelContent = -@"namespace MyProject; -class Program -{ - static void Main(string[] args) - { - Console.WriteLine(""Hello, World!""); - } -} -"; - Assert.DoesNotContain("// See https://aka.ms/new-console-template for more information", programFileContent); - Assert.Contains(expectedTopLevelContent, programFileContent); - } - - [Theory] - [InlineData("9.0")] - [InlineData("9")] - public void TopLevelProgramSupport_WhenFlagIsEnabled_NoFileScopedNamespaces(string? langVersion) - { - string workingDir = CreateTemporaryFolder(folderName: $"{langVersion ?? "null"}"); - - List args = new() { "console", "-o", "MyProject", "--use-program-main" }; - if (!string.IsNullOrEmpty(langVersion)) - { - args.Add("--langVersion"); - args.Add(langVersion); - } - - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr(); - - new DotnetCommand(_log, "build", "MyProject") - .WithWorkingDirectory(workingDir) - .Execute() - .Should().ExitWith(0).And.NotHaveStdErr(); - - string programFileContent = File.ReadAllText(Path.Combine(workingDir, "MyProject", "Program.cs")); - string expectedTopLevelContent = -@"namespace MyProject -{ - class Program - { - static void Main(string[] args) - { - Console.WriteLine(""Hello, World!""); - } - } -} -"; - Assert.DoesNotContain("// See https://aka.ms/new-console-template for more information", programFileContent); - Assert.Contains(expectedTopLevelContent, programFileContent); - } + string?[] supportedLanguageVersions = { null, "ISO-2", "2", "3", "4", "5", "6", "7", "7.1", "7.2", "7.3", "8.0", "9.0", "10.0", "11.0", "11", /*"12",*/ "latest", "latestMajor", "default", "preview" }; - /// - /// Creates all possible combinations for supported templates, language versions and frameworks. - /// - public static IEnumerable NullableSupport_Data() - { - var templatesToTest = new[] - { - new { Template = "console", Frameworks = new[] { null, "net8.0" } }, - new { Template = "classlib", Frameworks = new[] { null, "net8.0", "netstandard2.0", "netstandard2.1" } } - }; + string?[] nullableSupportedInFrameworkByDefault = { null, "net6.0", "net7.0", "net8.0", "netstandard2.1" }; + string?[] implicitUsingsSupportedInFramework = { null, "net6.0", "net7.0", "net8.0" }; + string?[] fileScopedNamespacesSupportedFrameworkByDefault = { null, "net6.0", "net7.0", "net8.0" }; - string[] unsupportedLanguageVersions = { "1", "ISO-1" }; - //C# 12 is not supported yet - https://github.com/dotnet/sdk/issues/29195 - string?[] supportedLanguageVersions = { null, "ISO-2", "2", "3", "4", "5", "6", "7", "7.1", "7.2", "7.3", "8.0", "9.0", "10.0", "11.0", /*"12.0", */"latest", "latestMajor", "default", "preview" }; + string?[] nullableSupportedLanguages = { "8.0", "9.0", "10.0", "11.0", "11", /*"12",*/ "latest", "latestMajor", "default", "preview" }; + string?[] topLevelStatementSupportedLanguages = { null, "9.0", "10.0", "11", "11.0", /*"12",*/ "latest", "latestMajor", "default", "preview" }; + string?[] implicitUsingsSupportedLanguages = { null, "10.0", "11.0", "11", /*"12",*/ "latest", "latestMajor", "default", "preview" }; + string?[] fileScopedNamespacesSupportedLanguages = { "10.0", "11.0", "11", /*"12",*/ "latest", "latestMajor", "default", "preview" }; - string?[] supportedInFrameworkByDefault = { null, "net8.0", "netstandard2.1" }; - string?[] supportedInLanguageVersion = { "8.0", "9.0", "10.0", "11.0", "12.0", "latest", "latestMajor", "default", "preview" }; + string?[] supportedLangs = { null, "C#", "F#", "VB" }; foreach (var template in templatesToTest) { - foreach (string? langVersion in unsupportedLanguageVersions) + foreach (string? langVersion in unsupportedLanguageVersions.Concat(supportedLanguageVersions)) { - foreach (string? framework in template.Frameworks) + IEnumerable frameworks = template.Frameworks; + IEnumerable langs = new string?[] { null }; + if (langVersion == null) { - yield return new object?[] - { - template.Template, - false, //dotnet build should fail - framework, - langVersion, - supportedInLanguageVersion.Contains(langVersion) - || langVersion == null && supportedInFrameworkByDefault.Contains(framework) - }; + langs = supportedLangs; } - } - foreach (string? langVersion in supportedLanguageVersions) - { - foreach (string? framework in template.Frameworks) + + foreach (string? framework in frameworks) { - yield return new object?[] + // Skip tests due to https://github.com/dotnet/templating/issues/5668#issuecomment-1327438284 + if (framework == "net6.0" && double.TryParse(langVersion, out double lv) && lv >= 11) { - template.Template, - true, //dotnet build should pass - framework, - langVersion, - supportedInLanguageVersion.Contains(langVersion) - || langVersion == null && supportedInFrameworkByDefault.Contains(framework) - }; + continue; + } + + foreach (string? lang in langs) + { + yield return CreateParams(template.Template, langVersion, lang, framework, false)!; + var testParams = CreateParams(template.Template, langVersion, lang, framework, true); + if (testParams != null) + { + yield return testParams; + } + } } } } - } - - [Theory] - //creates all possible combinations for supported templates, language versions and frameworks -#pragma warning disable CA1825 // Avoid zero-length array allocations. https://github.com/dotnet/sdk/issues/28672 - [MemberData(nameof(NullableSupport_Data))] -#pragma warning restore CA1825 // Avoid zero-length array allocations. - public void NullableSupport(string name, bool buildPass, string? framework, string? langVersion, bool supportsFeature) - { - string workingDir = CreateTemporaryFolder(folderName: $"{name}-{langVersion ?? "null"}-{framework ?? "null"}"); - List args = new() { name, "-o", "MyProject" }; - if (!string.IsNullOrWhiteSpace(framework)) + object?[]? CreateParams(string templateName, string? langVersion, string? lang, string? framework, bool forceDisableTopLevel) { - args.Add("--framework"); - args.Add(framework); - } - if (!string.IsNullOrWhiteSpace(langVersion)) - { - args.Add("--langVersion"); - args.Add(langVersion); - } + bool supportsTopLevel = topLevelStatementSupportedLanguages.Contains(langVersion); - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr(); - - CommandResult buildResult = new DotnetCommand(_log, "build", "MyProject") - .WithWorkingDirectory(workingDir) - .Execute(); - - if (buildPass) - { - buildResult.Should().ExitWith(0).And.NotHaveStdErr(); - } - else - { - buildResult.Should().Fail(); - return; - } - - XDocument projectXml = XDocument.Load(Path.Combine(workingDir, "MyProject", "MyProject.csproj")); - XNamespace ns = projectXml.Root?.Name.Namespace ?? throw new Exception("Unexpected project file format"); - if (supportsFeature) - { - Assert.Equal("enable", projectXml.Root?.Element(ns + "PropertyGroup")?.Element(ns + "Nullable")?.Value); - } - else - { - Assert.Null(projectXml.Root?.Element(ns + "PropertyGroup")?.Element(ns + "Nullable")); - } - } - - /// - /// Creates all possible combinations for supported templates, language versions and frameworks. - /// - public static IEnumerable ImplicitUsingsSupport_Data() - { - var templatesToTest = new[] - { - new { Template = "console", Frameworks = new[] { null, "net8.0" } }, - new { Template = "classlib", Frameworks = new[] { null, "net8.0", "netstandard2.0", "netstandard2.1" } } - }; - string[] unsupportedLanguageVersions = { "1", "ISO-1" }; - //C# 12 is not supported yet - https://github.com/dotnet/sdk/issues/29195 - string?[] supportedLanguageVersions = { null, "ISO-2", "2", "3", "4", "5", "6", "7", "7.1", "7.2", "7.3", "8.0", "9.0", "10.0", "11.0", /*"12.0", */"latest", "latestMajor", "default", "preview" }; - - string?[] supportedInFramework = { null, "net8.0" }; - string?[] supportedInLangVersion = { null, "10.0", "11.0", "12.0", "latest", "latestMajor", "default", "preview" }; - - foreach (var template in templatesToTest) - { - foreach (string langVersion in unsupportedLanguageVersions) + // If forceDisableTopLevel is requested - then generate params only if it makes sense - for C# console project of a version that + // supports top level statements. Otherwise it doesn't make sense to test this overwritting functionality + if ((!supportsTopLevel || !templateName.Equals(consoleTemplateShortname) || (lang != null && lang != "C#")) && forceDisableTopLevel) { - foreach (string? framework in template.Frameworks) - { - yield return new object?[] - { - template.Template, - false, //dotnet build should fail - framework, - langVersion, - supportedInLangVersion.Contains(langVersion) && supportedInFramework.Contains(framework) - }; - } + return null; } - foreach (string? langVersion in supportedLanguageVersions) + + return new object?[] { - foreach (string? framework in template.Frameworks) - { - yield return new object?[] - { - template.Template, - true, //dotnet build should pass - framework, - langVersion, - supportedInLangVersion.Contains(langVersion) && supportedInFramework.Contains(framework) - }; - } - } + templateName, + // buildPass + supportedLanguageVersions.Contains(langVersion), + framework, + langVersion, + // langVersionUnsupported + unsupportedLanguageVersions.Contains(langVersion), + lang, + // supportsNullable + nullableSupportedLanguages.Contains(langVersion) + || langVersion == null && nullableSupportedInFrameworkByDefault.Contains(framework), + supportsTopLevel, + forceDisableTopLevel, + // supportsImplicitUsings + implicitUsingsSupportedLanguages.Contains(langVersion) && implicitUsingsSupportedInFramework.Contains(framework), + // supportsFileScopedNs + fileScopedNamespacesSupportedLanguages.Contains(langVersion) + || langVersion == null && fileScopedNamespacesSupportedFrameworkByDefault.Contains(framework), + }; } } [Theory] //creates all possible combinations for supported templates, language versions and frameworks #pragma warning disable CA1825 // Avoid zero-length array allocations. https://github.com/dotnet/sdk/issues/28672 - [MemberData(nameof(ImplicitUsingsSupport_Data))] + [MemberData(nameof(FeaturesSupport_Data))] #pragma warning restore CA1825 // Avoid zero-length array allocations. - public void ImplicitUsingsSupport(string name, bool buildPass, string? framework, string? langVersion, bool supportsFeature) - { - string workingDir = CreateTemporaryFolder(folderName: $"{name}-{langVersion ?? "null"}-{framework ?? "null"}"); - - List args = new() { name, "-o", "MyProject" }; - if (!string.IsNullOrWhiteSpace(framework)) - { - args.Add("--framework"); - args.Add(framework); - } - if (!string.IsNullOrWhiteSpace(langVersion)) - { - args.Add("--langVersion"); - args.Add(langVersion); - } - - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr(); - - CommandResult buildResult = new DotnetCommand(_log, "build", "MyProject") - .WithWorkingDirectory(workingDir) - .Execute(); - - if (buildPass) - { - buildResult.Should().ExitWith(0).And.NotHaveStdErr(); - } - else - { - buildResult.Should().Fail(); - return; - } - string codeFileName = name == "console" ? "Program.cs" : "Class1.cs"; - string programFileContent = File.ReadAllText(Path.Combine(workingDir, "MyProject", codeFileName)); - XDocument projectXml = XDocument.Load(Path.Combine(workingDir, "MyProject", "MyProject.csproj")); - XNamespace ns = projectXml.Root?.Name.Namespace ?? throw new Exception("Unexpected project file format"); - if (supportsFeature) - { - Assert.DoesNotContain("using System;", programFileContent); - Assert.Equal("enable", projectXml.Root?.Element(ns + "PropertyGroup")?.Element(ns + "ImplicitUsings")?.Value); - } - else - { - Assert.Contains("using System;", programFileContent); - Assert.Null(projectXml.Root?.Element(ns + "PropertyGroup")?.Element(ns + "ImplicitUsings")); - } - } - - public static IEnumerable FileScopedNamespacesSupport_Data() + public async void FeaturesSupport( + string name, + bool buildPass, + string? framework, + string? langVersion, + bool langVersionUnsupported, + string? language, + bool supportsNullable, + bool supportsTopLevel, + bool forceDisableTopLevel, + bool supportsImplicitUsings, + bool supportsFileScopedNs) { - var templatesToTest = new[] - { - new { Template = "classlib", Frameworks = new[] { null, "net8.0", "netstandard2.0", "netstandard2.1" } } - }; - string[] unsupportedLanguageVersions = { "1", "ISO-1" }; - //C# 12 is not supported yet - https://github.com/dotnet/sdk/issues/29195 - string?[] supportedLanguageVersions = { null, "ISO-2", "2", "3", "4", "5", "6", "7", "7.1", "7.2", "7.3", "8.0", "9.0", "10.0", "11.0", /*"12.0", */"latest", "latestMajor", "default", "preview" }; + // "net8.0"; + string currentDefaultFramework = $"net{Environment.Version.Major}.{Environment.Version.Minor}"; - string?[] supportedFrameworks = { null, "net8.0" }; - string?[] fileScopedNamespacesSupportedLanguages = { "10.0", "11.0", "12.0", "latest", "latestMajor", "default", "preview" }; + string workingDir = CreateTemporaryFolder(folderName: $"{name}-{langVersion ?? "null"}-{framework ?? "null"}"); + string outputDir = "MyProject"; + string projName = name; - foreach (var template in templatesToTest) + List args = new() { "-o", outputDir }; + // VB build would fail for name 'console' (root namespace would conflict with BCL namespace) + if (language?.Equals("VB") == true && name.Equals("console")) { - foreach (string? langVersion in unsupportedLanguageVersions) - { - foreach (string? framework in template.Frameworks) - { - yield return new object?[] { template.Template, false, framework, langVersion, fileScopedNamespacesSupportedLanguages.Contains(langVersion) || langVersion == null && supportedFrameworks.Contains(framework) }; - } - } - foreach (string? langVersion in supportedLanguageVersions) - { - foreach (string? framework in template.Frameworks) - { - yield return new object?[] { template.Template, true, framework, langVersion, fileScopedNamespacesSupportedLanguages.Contains(langVersion) || langVersion == null && supportedFrameworks.Contains(framework) }; - } - } + projName = "vb-console"; + args.Add("-n"); + args.Add(projName); } - } - - [Theory] - //creates all possible combinations for supported templates, language versions and frameworks -#pragma warning disable CA1825 // Avoid zero-length array allocations.https://github.com/dotnet/sdk/issues/28672 - [MemberData(nameof(FileScopedNamespacesSupport_Data))] -#pragma warning restore CA1825 // Avoid zero-length array allocations. - public void FileScopedNamespacesSupport(string name, bool pass, string? framework, string? langVersion, bool supportsFeature) - { - string workingDir = CreateTemporaryFolder(folderName: $"{name}-{langVersion ?? "null"}-{framework ?? "null"}"); - - List args = new() { name, "-o", "MyProject" }; if (!string.IsNullOrWhiteSpace(framework)) { args.Add("--framework"); @@ -806,210 +304,74 @@ public void FileScopedNamespacesSupport(string name, bool pass, string? framewor args.Add("--langVersion"); args.Add(langVersion); } - - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr(); - - CommandResult buildResult = new DotnetCommand(_log, "build", "MyProject") - .WithWorkingDirectory(workingDir) - .Execute(); - - if (pass) - { - buildResult.Should().ExitWith(0).And.NotHaveStdErr(); - } - else - { - buildResult.Should().Fail(); - return; - } - string codeFileName = name == "console" ? "Program.cs" : "Class1.cs"; - string programFileContent = File.ReadAllText(Path.Combine(workingDir, "MyProject", codeFileName)); - - string supportedContent = -@"namespace MyProject; -public class Class1 -{ - -}"; - string unsupportedContent = -@"namespace MyProject -{ - public class Class1 - { - - } -}"; - - if (supportsFeature) - { - Assert.DoesNotContain(unsupportedContent, programFileContent); - Assert.Contains(supportedContent, programFileContent); - } - else - { - Assert.DoesNotContain(supportedContent, programFileContent); - Assert.Contains(unsupportedContent, programFileContent); - } - } - #endregion - - [Theory] - [InlineData("Nullable", "enable", "Console App", "console", null, null)] - [InlineData("CheckForOverflowUnderflow", null, "Console App", "console", null, null)] - [InlineData("LangVersion", null, "Console App", "console", null, null)] - [InlineData("TargetFramework", "net8.0", "Console App", "console", null, null)] - - [InlineData("Nullable", null, "Console App", "console", "F#", null)] - [InlineData("CheckForOverflowUnderflow", null, "Console App", "console", "F#", null)] - [InlineData("LangVersion", null, "Console App", "console", "F#", null)] - [InlineData("TargetFramework", "net8.0", "Console App", "console", "F#", null)] - [InlineData("GenerateDocumentationFile", null, "Console App", "console", "F#", null)] - - [InlineData("Nullable", null, "Console App", "console", "VB", null)] - [InlineData("CheckForOverflowUnderflow", null, "Console App", "console", "VB", null)] - [InlineData("LangVersion", null, "Console App", "console", "VB", null)] - [InlineData("TargetFramework", "net8.0", "Console App", "console", "VB", null)] - - [InlineData("Nullable", "enable", "Class Library", "classlib", null, null)] - [InlineData("CheckForOverflowUnderflow", null, "Class Library", "classlib", null, null)] - [InlineData("LangVersion", null, "Class Library", "classlib", null, null)] - [InlineData("TargetFramework", "net8.0", "Class Library", "classlib", null, null)] - [InlineData("Nullable", null, "Class Library", "classlib", null, "netstandard2.0")] - [InlineData("Nullable", "enable", "Class Library", "classlib", null, "netstandard2.1")] - - [InlineData("Nullable", null, "Class Library", "classlib", "F#", null)] - [InlineData("CheckForOverflowUnderflow", null, "Class Library", "classlib", "F#", null)] - [InlineData("LangVersion", null, "Class Library", "classlib", "F#", null)] - [InlineData("TargetFramework", "net8.0", "Class Library", "classlib", "F#", null)] - [InlineData("GenerateDocumentationFile", "true", "Class Library", "classlib", "F#", null)] - [InlineData("Nullable", null, "Class Library", "classlib", "F#", "netstandard2.0")] - - [InlineData("Nullable", null, "Class Library", "classlib", "VB", null)] - [InlineData("CheckForOverflowUnderflow", null, "Class Library", "classlib", "VB", null)] - [InlineData("LangVersion", null, "Class Library", "classlib", "VB", null)] - [InlineData("TargetFramework", "net8.0", "Class Library", "classlib", "VB", null)] - [InlineData("Nullable", null, "Class Library", "classlib", "VB", "netstandard2.0")] - - public void SetPropertiesByDefault(string propertyName, string? propertyValue, string expectedTemplateName, string templateShortName, string? language, string? framework) - { - string workingDir = TestUtils.CreateTemporaryFolder(); - List args = new() { templateShortName, "--no-restore" }; if (!string.IsNullOrWhiteSpace(language)) { args.Add("--language"); args.Add(language); } - if (!string.IsNullOrWhiteSpace(framework)) + if (!buildPass) { - args.Add("--framework"); - args.Add(framework); + args.Add("--no-restore"); } - - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr() - .And.HaveStdOut($@"The template ""{expectedTemplateName}"" was created successfully."); - - string expectedExtension = language switch - { - "C#" => "*.csproj", - "F#" => "*.fsproj", - "VB" => "*.vbproj", - _ => "*.csproj" - }; - string projectFile = Directory.GetFiles(workingDir, expectedExtension).Single(); - XDocument projectXml = XDocument.Load(projectFile); - XNamespace ns = projectXml.Root?.Name.Namespace ?? throw new Exception("Unexpected project file format"); - if (propertyValue != null) + if (forceDisableTopLevel) { - Assert.Equal(propertyValue, projectXml.Root?.Element(ns + "PropertyGroup")?.Element(ns + propertyName)?.Value); + args.Add("--use-program-main"); + supportsTopLevel = false; } - else - { - Assert.Null(projectXml.Root?.Element(ns + "PropertyGroup")?.Element(ns + propertyName)); - } - Directory.Delete(workingDir, true); - } - [Theory] - //language version - [InlineData("LangVersion", "9.0", "--langVersion", "9.0", "Console App", "console", null, null)] - [InlineData("LangVersion", "9.0", "--langVersion", "9.0", "Console App", "console", "VB", null)] - [InlineData("LangVersion", "9.0", "--langVersion", "9.0", "Class Library", "classlib", null, null)] - [InlineData("LangVersion", "9.0", "--langVersion", "9.0", "Class Library", "classlib", "VB", null)] - - //framework - [InlineData("TargetFramework", "net6.0", "--framework", "net6.0", "Console App", "console", null, null)] - [InlineData("TargetFramework", "net6.0", "--framework", "net6.0", "Console App", "console", "VB", null)] - [InlineData("TargetFramework", "net6.0", "--framework", "net6.0", "Console App", "console", "F#", null)] - [InlineData("TargetFramework", "net6.0", "--framework", "net6.0", "Class Library", "classlib", null, null)] - [InlineData("TargetFramework", "net6.0", "--framework", "net6.0", "Class Library", "classlib", "VB", null)] - [InlineData("TargetFramework", "net6.0", "--framework", "net6.0", "Class Library", "classlib", "F#", null)] - - [InlineData("TargetFramework", "net6.0", "-f", "net6.0", "Console App", "console", null, null)] - [InlineData("TargetFramework", "net6.0", "-f", "net6.0", "Console App", "console", "VB", null)] - [InlineData("TargetFramework", "net6.0", "-f", "net6.0", "Console App", "console", "F#", null)] - [InlineData("TargetFramework", "net6.0", "-f", "net6.0", "Class Library", "classlib", null, null)] - [InlineData("TargetFramework", "net6.0", "-f", "net6.0", "Class Library", "classlib", "VB", null)] - [InlineData("TargetFramework", "net6.0", "-f", "net6.0", "Class Library", "classlib", "F#", null)] - public void CanSetProperty(string propertyName, string? propertyValue, string argName, string argValue, string expectedTemplateName, string templateShortName, string? language, string? framework) - { - string workingDir = TestUtils.CreateTemporaryFolder(); - List args = new() { templateShortName, "--no-restore" }; - if (!string.IsNullOrWhiteSpace(language)) - { - args.Add("--language"); - args.Add(language); - } - if (!string.IsNullOrWhiteSpace(framework)) - { - args.Add("--framework"); - args.Add(framework); - } - if (!string.IsNullOrWhiteSpace(argName)) + string extension = language switch { - args.Add(argName); - args.Add(argValue); - } + "F#" => "fsproj", + "VB" => "vbproj", + _ => "csproj" + }; - new DotnetNewCommand(_log, args.ToArray()) - .WithCustomHive(_fixture.HomeDirectory) - .WithWorkingDirectory(workingDir) - .Execute() - .Should() - .ExitWith(0) - .And.NotHaveStdErr() - .And.HaveStdOut($@"The template ""{expectedTemplateName}"" was created successfully."); + string projectDir = Path.Combine(workingDir, outputDir); + string finalProjectName = Path.Combine(projectDir, $"{projName}.{extension}"); + + Dictionary environmentUnderTest = new() { ["DOTNET_NOLOGO"] = false.ToString() }; + TestContext.Current.AddTestEnvironmentVariables(environmentUnderTest); + + TemplateVerifierOptions options = new TemplateVerifierOptions(templateName: name) + { + TemplateSpecificArgs = args, + SnapshotsDirectory = "Approvals", + OutputDirectory = workingDir, + SettingsDirectory = _fixture.HomeDirectory, + VerifyCommandOutput = true, + DoNotPrependTemplateNameToScenarioName = false, + DoNotAppendTemplateArgsToScenarioName = true, + ScenarioName = + $"Nullable-{supportsNullable}#TopLevel-{supportsTopLevel}#ImplicitUsings-{supportsImplicitUsings}#FileScopedNs-{supportsFileScopedNs}" + + '#' + (language == null ? "cs" : language.Replace('#', 's').ToLower()) + + (langVersion == null ? "#NoLangVer" : (langVersionUnsupported ? "#UnsuportedLangVer" : null)), + VerificationExcludePatterns = new[] { "*/stderr.txt", "*\\stderr.txt" }, + DotnetExecutablePath = TestContext.Current.ToolsetUnderTest.DotNetHostPath, + } + .WithCustomEnvironment(environmentUnderTest) + .WithCustomScrubbers( + ScrubbersDefinition.Empty + .AddScrubber(sb => sb.Replace($"{langVersion}", "%LANG%")) + .AddScrubber(sb => sb.Replace($"{framework ?? currentDefaultFramework}", "%FRAMEWORK%")) + .AddScrubber(sb => sb.Replace(finalProjectName, "%PROJECT_PATH%").UnixifyDirSeparators().ScrubByRegex("(^ Restored .* \\()(.*)(\\)\\.)", "$1%DURATION%$3", RegexOptions.Multiline), "txt") + ); + + VerificationEngine engine = new VerificationEngine(_logger); + await engine.Execute(options).ConfigureAwait(false); - string expectedExtension = language switch - { - "C#" => "*.csproj", - "F#" => "*.fsproj", - "VB" => "*.vbproj", - _ => "*.csproj" - }; - string projectFile = Directory.GetFiles(workingDir, expectedExtension).Single(); - XDocument projectXml = XDocument.Load(projectFile); - XNamespace ns = projectXml.Root?.Name.Namespace ?? throw new Exception("Unexpected project file format"); - if (propertyValue != null) - { - Assert.Equal(propertyValue, projectXml.Root?.Element(ns + "PropertyGroup")?.Element(ns + propertyName)?.Value); - } - else + if (buildPass) { - Assert.Null(projectXml.Root?.Element(ns + "PropertyGroup")?.Element(ns + propertyName)); + new DotnetBuildCommand(_log, "MyProject") + .WithWorkingDirectory(workingDir) + .Execute() + .Should() + .Pass() + .And.NotHaveStdErr(); } + Directory.Delete(workingDir, true); } + + #endregion } } diff --git a/src/Tests/dotnet-new.Tests/DotnetNewInstantiateTests.Approval.cs b/src/Tests/dotnet-new.Tests/DotnetNewInstantiateTests.Approval.cs index 3521ff4abf97..fdf8000a1ae6 100644 --- a/src/Tests/dotnet-new.Tests/DotnetNewInstantiateTests.Approval.cs +++ b/src/Tests/dotnet-new.Tests/DotnetNewInstantiateTests.Approval.cs @@ -362,11 +362,10 @@ public Task CanInstantiateTemplate_ConditionalProcessing() string[] actualFiles = Directory.GetFiles(workingDirectory); return Task.WhenAll( - actualFiles.Select( + actualFiles.Where(f => Path.GetExtension(f).Equals(".txt")).Select( async (file) => await VerifyFile(file) .UseMethodName($"CanInstantiateTemplate_ConditionalProcessing_{Path.GetFileName(file)}") - .UseExtension("txt") )); } diff --git a/src/Tests/dotnet-new.Tests/PostActionTests.Approval.cs b/src/Tests/dotnet-new.Tests/PostActionTests.Approval.cs index 637b7c726193..e8a061fb774a 100644 --- a/src/Tests/dotnet-new.Tests/PostActionTests.Approval.cs +++ b/src/Tests/dotnet-new.Tests/PostActionTests.Approval.cs @@ -38,6 +38,7 @@ public Task Restore_Basic_Approval() // for Linux Verify.NET replaces sub path /tmp/ to be {TempPath} wrongly output.Replace("{TempPath}", "/tmp/"); output.Replace(workingDirectory, "%working directory%"); + output.UnixifyNewlines(); output.ScrubByRegex("(?<=Restoring %working directory%(\\\\|\\/)MyProject.csproj:\\n)(.*?)(?=\\nRestore succeeded)", "%RESTORE CALLBACK OUTPUT%", System.Text.RegularExpressions.RegexOptions.Singleline); }); } @@ -91,6 +92,7 @@ public Task AddPackageReference_Basic_Approval() // for Linux Verify.NET replaces sub path /tmp/ to be {TempPath} wrongly output.Replace("{TempPath}", "/tmp/"); output.Replace(workingDirectory, "%working directory%"); + output.UnixifyNewlines(); output.ScrubByRegex("(?<=Adding a package reference Newtonsoft.Json \\(version: 13.0.1\\) to project file %working directory%(\\\\|\\/)MyProject.csproj:\\n)(.*?)(?=\\nSuccessfully added a reference to the project file.)", "%CALLBACK OUTPUT%", System.Text.RegularExpressions.RegexOptions.Singleline); }); } @@ -121,6 +123,7 @@ public Task AddProjectReference_Basic_Approval() // for Linux Verify.NET replaces sub path /tmp/ to be {TempPath} wrongly output.Replace("{TempPath}", "/tmp/"); output.Replace(workingDirectory, "%working directory%"); + output.UnixifyNewlines(); output.ScrubByRegex("(?<=to project file %working directory%(\\\\|\\/)Project1(\\\\|\\/)Project1.csproj:\\n)(.*?)(?=\\nSuccessfully added a reference to the project file.)", "%CALLBACK OUTPUT%", System.Text.RegularExpressions.RegexOptions.Singleline); }); } @@ -160,6 +163,7 @@ public Task AddProjectToSolution_Basic_Approval() // for Linux Verify.NET replaces sub path /tmp/ to be {TempPath} wrongly output.Replace("{TempPath}", "/tmp/"); output.Replace(workingDirectory, "%working directory%"); + output.UnixifyNewlines(); output.ScrubByRegex("(?<=solution folder: src\\n)(.*?)(?=\\nSuccessfully added project\\(s\\) to a solution file.)", "%CALLBACK OUTPUT%", System.Text.RegularExpressions.RegexOptions.Singleline); }); } diff --git a/src/Tests/dotnet-new.Tests/VerifyScrubbers.cs b/src/Tests/dotnet-new.Tests/VerifyScrubbers.cs index 41425dbde15b..b61470d7597e 100644 --- a/src/Tests/dotnet-new.Tests/VerifyScrubbers.cs +++ b/src/Tests/dotnet-new.Tests/VerifyScrubbers.cs @@ -25,6 +25,24 @@ internal static void ScrubTableHeaderDelimiter(this StringBuilder output) output.ScrubByRegex("---[- ]*", "%TABLE HEADER DELIMITER%"); } + /// + /// Replaces Windows newlines (CRLF) with Unix style newlines (LF). + /// + /// + internal static StringBuilder UnixifyNewlines(this StringBuilder output) + { + return output.Replace("\r\n", "\n"); + } + + /// + /// Replaces Windows Directory separator char (\) with Unix Directory separator char (/). + /// + /// + internal static StringBuilder UnixifyDirSeparators(this StringBuilder output) + { + return output.Replace('\\', '/'); + } + /// /// Replaces content matching with . /// diff --git a/src/Tests/dotnet-new.Tests/VerifySettingsFixture.cs b/src/Tests/dotnet-new.Tests/VerifySettingsFixture.cs index 969efcb0f349..6a4c3807b9ac 100644 --- a/src/Tests/dotnet-new.Tests/VerifySettingsFixture.cs +++ b/src/Tests/dotnet-new.Tests/VerifySettingsFixture.cs @@ -8,7 +8,7 @@ public class VerifySettingsFixture : IDisposable { public VerifySettingsFixture() { - VerifierSettings.DerivePathInfo( + Verifier.DerivePathInfo( (_, _, type, method) => new( directory: "Approvals", typeName: type.Name, diff --git a/src/Tests/dotnet-new.Tests/dotnet-new.IntegrationTests.csproj b/src/Tests/dotnet-new.Tests/dotnet-new.IntegrationTests.csproj index c340204feff5..afbcb591ef26 100644 --- a/src/Tests/dotnet-new.Tests/dotnet-new.IntegrationTests.csproj +++ b/src/Tests/dotnet-new.Tests/dotnet-new.IntegrationTests.csproj @@ -15,10 +15,13 @@ - + + + + @@ -64,4 +67,9 @@ namespace Microsoft.DotNet.Cli.New.IntegrationTests + + + + +