-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCSharpCodeBuilderTests.Formatting.cs
More file actions
143 lines (127 loc) · 4.44 KB
/
CSharpCodeBuilderTests.Formatting.cs
File metadata and controls
143 lines (127 loc) · 4.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
namespace NetEvolve.CodeBuilder.Tests.Integration;
public partial class CSharpCodeBuilderTests
{
[Test]
public async Task GenerateClassWithFormatting_UsingSpaces_Should_ProduceCorrectIndentation()
{
var builder = new CSharpCodeBuilder { UseTabs = false };
_ = builder
.AppendLine("public class TestClass")
.Append("{")
.AppendLine("public void Method1()")
.Append("{")
.AppendLine("Console.WriteLine(\"Hello World\");")
.AppendLine("if (true)")
.Append("{")
.Append("Console.WriteLine(\"Nested\");")
.Append("}")
.Append("}")
.AppendLine()
.AppendLine("public void Method2()")
.Append("{")
.Append("try")
.Append("{")
.Append("DoSomething();")
.Append("}")
.Append("catch (Exception ex)")
.Append("{")
.Append("Console.WriteLine($\"Error: {ex.Message}\");")
.Append("}")
.Append("}")
.Append("}");
var result = builder.ToString();
_ = await Verify(result);
}
[Test]
public async Task GenerateClassWithFormatting_UsingTabs_Should_ProduceCorrectIndentation()
{
var builder = new CSharpCodeBuilder { UseTabs = true };
_ = builder
.AppendLine("public class TestClass")
.Append("{")
.AppendLine("public void Method1()")
.Append("{")
.AppendLine("Console.WriteLine(\"Hello World\");")
.AppendLine("if (true)")
.Append("{")
.Append("Console.WriteLine(\"Nested\");")
.Append("}")
.Append("}")
.AppendLine()
.AppendLine("public void Method2()")
.Append("{")
.Append("try")
.Append("{")
.Append("DoSomething();")
.Append("}")
.Append("catch (Exception ex)")
.Append("{")
.Append("Console.WriteLine($\"Error: {ex.Message}\");")
.Append("}")
.Append("}")
.Append("}");
var result = builder.ToString();
_ = await Verify(result);
}
[Test]
public async Task GenerateEnum_WithDocumentation_Should_ProduceCorrectOutput()
{
var builder = new CSharpCodeBuilder();
_ = builder
.AppendLine("using System;")
.AppendLine()
.AppendLine("namespace MyApplication.Enums")
.Append("{")
.AppendLine("/// <summary>")
.AppendLine("/// Represents the status of an order.")
.AppendLine("/// </summary>")
.AppendLine("[Flags]")
.AppendLine("public enum OrderStatus")
.Append("{")
.AppendLine("/// <summary>")
.AppendLine("/// The order is pending.")
.AppendLine("/// </summary>")
.AppendLine("Pending = 1,")
.AppendLine()
.AppendLine("/// <summary>")
.AppendLine("/// The order is being processed.")
.AppendLine("/// </summary>")
.AppendLine("Processing = 2,")
.AppendLine()
.AppendLine("/// <summary>")
.AppendLine("/// The order has been shipped.")
.AppendLine("/// </summary>")
.AppendLine("Shipped = 4,")
.AppendLine()
.AppendLine("/// <summary>")
.AppendLine("/// The order has been delivered.")
.AppendLine("/// </summary>")
.Append("Delivered = 8")
.Append("}")
.Append("}");
var result = builder.ToString();
_ = await Verify(result);
}
[Test]
public async Task Scopes_in_wild_nature()
{
var builder = new CSharpCodeBuilder()
.AppendLine("namespace Hello.World;")
.AppendLine()
.AppendXmlDocSummary("Represents the status of an order.")
.AppendLine("public enum Weekday");
using (builder.Scope())
{
_ = builder
.AppendLine("Monday,")
.AppendLine("Tuesday,")
.AppendLine("Wednesday,")
.AppendLine("Thursday,")
.AppendLine("Friday,")
.AppendLine("Saturday,")
.AppendLine("Sunday,");
}
var result = builder.ToString();
_ = await Verify(result);
}
}