Skip to content

Commit 04901f7

Browse files
author
Michael Ganss
committed
Refactor tests
1 parent f61b578 commit 04901f7

File tree

2 files changed

+8
-31
lines changed

2 files changed

+8
-31
lines changed

XmlSchemaClassGenerator.Tests/Compiler.cs

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -109,60 +109,37 @@ public static Assembly GenerateFiles(string name, IEnumerable<string> files, Gen
109109

110110
public static Assembly CompileFiles(string name, IEnumerable<string> files)
111111
{
112-
var trustedAssembliesPaths = ((string)AppContext.GetData("TRUSTED_PLATFORM_ASSEMBLIES")).Split(Path.PathSeparator);
113-
var references = trustedAssembliesPaths
114-
.Where(p => DependencyAssemblies.Contains(Path.GetFileNameWithoutExtension(p)))
115-
.Select(p => MetadataReference.CreateFromFile(p))
116-
.ToList();
117-
var syntaxTrees = files.Select(f => CSharpSyntaxTree.ParseText(File.ReadAllText(f))).ToList();
118-
var compilation = CSharpCompilation.Create(name, syntaxTrees)
119-
.AddReferences(references)
120-
.WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
121-
var result = Compiler.GenerateAssembly(compilation);
122-
123-
Assert.True(result.Result.Success);
124-
var errors = result.Result.Diagnostics.Where(d => d.Severity == DiagnosticSeverity.Error);
125-
Assert.False(errors.Any(), string.Join("\n", errors.Select(e => e.GetMessage())));
126-
var warnings = result.Result.Diagnostics.Where(d => d.Severity == DiagnosticSeverity.Warning);
127-
Assert.False(warnings.Any(), string.Join("\n", errors.Select(w => w.GetMessage())));
128-
Assert.NotNull(result.Assembly);
129-
130-
Assemblies[name] = result.Assembly;
131-
132-
return result.Assembly;
112+
return Compile(name, files.Select(f => File.ReadAllText(f)).ToArray());
133113
}
134114

135115
private static readonly LanguageVersion MaxLanguageVersion = Enum
136116
.GetValues(typeof(LanguageVersion))
137117
.Cast<LanguageVersion>()
138118
.Max();
139119

140-
public static Assembly Compile(string name, string contents, Generator generator)
120+
public static Assembly Compile(string name, params string[] contents)
141121
{
142122
var trustedAssembliesPaths = ((string)AppContext.GetData("TRUSTED_PLATFORM_ASSEMBLIES")).Split(Path.PathSeparator);
143123
var references = trustedAssembliesPaths
144124
.Where(p => DependencyAssemblies.Contains(Path.GetFileNameWithoutExtension(p)))
145125
.Select(p => MetadataReference.CreateFromFile(p))
146126
.ToList();
147-
148127
var options = new CSharpParseOptions(kind: SourceCodeKind.Regular, languageVersion: MaxLanguageVersion);
149-
150-
// Return a syntax tree of our source code
151-
var syntaxTree = CSharpSyntaxTree.ParseText(contents, options);
152-
153-
var compilation = CSharpCompilation.Create(name, new[] { syntaxTree })
128+
var syntaxTrees = contents.Select(c => CSharpSyntaxTree.ParseText(c, options));
129+
var compilation = CSharpCompilation.Create(name, syntaxTrees)
154130
.AddReferences(references)
155131
.WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
156132
var result = Compiler.GenerateAssembly(compilation);
157133

158-
159134
Assert.True(result.Result.Success);
160135
var errors = result.Result.Diagnostics.Where(d => d.Severity == DiagnosticSeverity.Error).ToList();
161136
Assert.False(errors.Any(), string.Join("\n", errors.Select(e => e.GetMessage())));
162137
var warnings = result.Result.Diagnostics.Where(d => d.Severity == DiagnosticSeverity.Warning).ToList();
163138
Assert.False(warnings.Any(), string.Join("\n", errors.Select(w => w.GetMessage())));
164139
Assert.NotNull(result.Assembly);
165140

141+
Assemblies[name] = result.Assembly;
142+
166143
return result.Assembly;
167144
}
168145
}

XmlSchemaClassGenerator.Tests/XmlTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ public void DoNotGenerateIntermediaryClassForArrayElements()
806806
var contents = ConvertXml(nameof(ComplexTypeWithAttributeGroupExtension), xsd, generator);
807807
var content = Assert.Single(contents);
808808

809-
var assembly = Compiler.Compile(nameof(DoNotGenerateIntermediaryClassForArrayElements), content, generator);
809+
var assembly = Compiler.Compile(nameof(DoNotGenerateIntermediaryClassForArrayElements), content);
810810

811811
var fooType = Assert.Single(assembly.DefinedTypes);
812812
Assert.NotNull(fooType);
@@ -851,7 +851,7 @@ public void GenerateIntermediaryClassForArrayElements()
851851
var contents = ConvertXml(nameof(GenerateIntermediaryClassForArrayElements), xsd, generator);
852852
var content = Assert.Single(contents);
853853

854-
var assembly = Compiler.Compile(nameof(GenerateIntermediaryClassForArrayElements), content, generator);
854+
var assembly = Compiler.Compile(nameof(GenerateIntermediaryClassForArrayElements), content);
855855

856856
Assert.True(assembly.DefinedTypes.Count() == 2);
857857
Assert.Single(assembly.DefinedTypes, x => x.FullName == "Test.Foo");

0 commit comments

Comments
 (0)