Skip to content

Commit

Permalink
Add compiler regression test for string enums
Browse files Browse the repository at this point in the history
  • Loading branch information
glopesdev committed Jan 7, 2024
1 parent 9708b8e commit 9ba745f
Showing 1 changed file with 34 additions and 1 deletion.
35 changes: 34 additions & 1 deletion Bonsai.Sgen.Tests/EnumGenerationTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using NJsonSchema;
Expand Down Expand Up @@ -44,5 +45,37 @@ public void GenerateStringEnum_SerializerAnnotationsUseStringValues()
Assert.IsTrue(code.Contains("EnumMemberAttribute(Value=\"A\")"));
Assert.IsTrue(code.Contains("YamlMemberAttribute(Alias=\"A\")"));
}

[TestMethod]
public async Task GenerateStringEnum_StringEnumTypeDefinitionWithStringEnumConverter()
{
var schema = await JsonSchema.FromJsonAsync(@"
{
""$schema"": ""http://json-schema.org/draft-04/schema#"",
""type"": ""object"",
""title"": ""Container"",
""additionalProperties"": false,
""properties"": {
""Enum"": {
""$ref"": ""#/definitions/StringEnum""
}
},
""definitions"": {
""StringEnum"": {
""enum"": [
""This is a string A"",
""This is a string B""
],
""title"": ""StringEnum"",
""type"": ""string""
}
}
}
");
var generator = TestHelper.CreateGenerator(schema);
var code = generator.GenerateFile();
Assert.IsTrue(code.Contains("StringEnumConverter"));
CompilerTestHelper.CompileFromSource(code);
}
}
}

0 comments on commit 9ba745f

Please sign in to comment.