Skip to content

Commit 632426e

Browse files
committed
fix(generator): trying to serialize multiple subscribedCallbacks fields when inheriting
Now every field gets the parent count appended to make sure they are unique.
1 parent d2db56e commit 632426e

File tree

5 files changed

+722
-669
lines changed

5 files changed

+722
-669
lines changed

Generator/Hertzole.ScriptableValues.Generator.Tests/Tests/Generator/SubscribedBitMaskTests.cs

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -7,72 +7,72 @@ namespace Hertzole.ScriptableValues.Generator.Tests;
77

88
public class SubscribedBitMaskTests
99
{
10-
private CodeWriter codeWriter;
11-
private Compilation compilation;
10+
private CodeWriter codeWriter;
11+
private Compilation compilation;
1212

13-
[SetUp]
14-
public void SetUp()
15-
{
16-
codeWriter = new CodeWriter();
17-
compilation = CompilationHelper.CreateStandardCompilation([], CSharpParseOptions.Default);
18-
}
13+
[SetUp]
14+
public void SetUp()
15+
{
16+
codeWriter = new CodeWriter();
17+
compilation = CompilationHelper.CreateStandardCompilation([], CSharpParseOptions.Default);
18+
}
1919

20-
[TearDown]
21-
public void TearDown()
22-
{
23-
codeWriter.Clear();
24-
}
20+
[TearDown]
21+
public void TearDown()
22+
{
23+
codeWriter.Clear();
24+
}
2525

26-
[Test]
27-
[TestCase(7, "byte")]
28-
[TestCase(8, "byte")]
29-
[TestCase(9, "ushort")]
30-
[TestCase(15, "ushort")]
31-
[TestCase(16, "ushort")]
32-
[TestCase(17, "uint")]
33-
[TestCase(31, "uint")]
34-
[TestCase(32, "uint")]
35-
[TestCase(33, "ulong")]
36-
[TestCase(63, "ulong")]
37-
[TestCase(64, "ulong")]
38-
public void EnumType_SupportsAmount(int amount, string type)
39-
{
40-
// Arrange
41-
EquatableArray<CallbackData> data;
42-
using (ArrayBuilder<CallbackData> builder = new ArrayBuilder<CallbackData>(amount))
43-
{
44-
for (int i = 0; i < amount; i++)
45-
{
46-
builder.Add(new CallbackData($"Test{i}", CallbackType.Event, CallbackFlags.None, null!, ScriptableType.Event, null!));
47-
}
26+
[Test]
27+
[TestCase(7, "byte")]
28+
[TestCase(8, "byte")]
29+
[TestCase(9, "ushort")]
30+
[TestCase(15, "ushort")]
31+
[TestCase(16, "ushort")]
32+
[TestCase(17, "uint")]
33+
[TestCase(31, "uint")]
34+
[TestCase(32, "uint")]
35+
[TestCase(33, "ulong")]
36+
[TestCase(63, "ulong")]
37+
[TestCase(64, "ulong")]
38+
public void EnumType_SupportsAmount(int amount, string type)
39+
{
40+
// Arrange
41+
EquatableArray<CallbackData> data;
42+
using (ArrayBuilder<CallbackData> builder = new ArrayBuilder<CallbackData>(amount))
43+
{
44+
for (int i = 0; i < amount; i++)
45+
{
46+
builder.Add(new CallbackData($"Test{i}", CallbackType.Event, CallbackFlags.None, null!, ScriptableType.Event, null!));
47+
}
4848

49-
data = new EquatableArray<CallbackData>(builder.ToImmutable());
50-
}
49+
data = new EquatableArray<CallbackData>(builder.ToImmutable());
50+
}
5151

52-
CodeWriter expectedWriter = new CodeWriter();
53-
expectedWriter.Append("private enum SubscribedCallbacksMask : ");
54-
expectedWriter.AppendLine(type);
55-
expectedWriter.AppendLine("{");
56-
expectedWriter.Indent++;
57-
expectedWriter.AppendLine("None = 0,");
58-
for (int i = 0; i < amount; i++)
59-
{
60-
if (i > 0)
61-
{
62-
expectedWriter.AppendLine(",");
63-
}
52+
CodeWriter expectedWriter = new CodeWriter();
53+
expectedWriter.Append("private enum SubscribedCallbacksMask : ");
54+
expectedWriter.AppendLine(type);
55+
expectedWriter.AppendLine("{");
56+
expectedWriter.Indent++;
57+
expectedWriter.AppendLine("None = 0,");
58+
for (int i = 0; i < amount; i++)
59+
{
60+
if (i > 0)
61+
{
62+
expectedWriter.AppendLine(",");
63+
}
6464

65-
expectedWriter.Append($"Test{i} = 1 << {i}");
66-
}
65+
expectedWriter.Append($"Test{i} = 1 << {i}");
66+
}
6767

68-
expectedWriter.AppendLine();
69-
expectedWriter.Indent--;
70-
expectedWriter.AppendLine("}");
68+
expectedWriter.AppendLine();
69+
expectedWriter.Indent--;
70+
expectedWriter.AppendLine("}");
7171

72-
// Act
73-
ScriptableCallbackGenerator.WriteSubscribedEnumMask(in codeWriter, in data, CancellationToken.None);
72+
// Act
73+
ScriptableCallbackGenerator.WriteSubscribedEnumMask(in codeWriter, in data, default, CancellationToken.None);
7474

75-
// Assert
76-
Assert.That(codeWriter.ToString(), Is.EqualTo(expectedWriter.ToString()));
77-
}
75+
// Assert
76+
Assert.That(codeWriter.ToString(), Is.EqualTo(expectedWriter.ToString()));
77+
}
7878
}

0 commit comments

Comments
 (0)