@alloy-js/csharp 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/src/components/Class.d.ts.map +1 -1
- package/dist/src/components/Class.js +26 -14
- package/dist/src/components/Class.js.map +1 -1
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +0 -1
- package/dist/src/components/Declaration.js.map +1 -1
- package/dist/src/components/Enum.d.ts.map +1 -1
- package/dist/src/components/Enum.js +6 -6
- package/dist/src/components/Enum.js.map +1 -1
- package/dist/src/components/Name.js +1 -1
- package/dist/src/components/Name.js.map +1 -1
- package/dist/src/components/Namespace.js +0 -1
- package/dist/src/components/Namespace.js.map +1 -1
- package/dist/src/components/Parameters.d.ts +1 -1
- package/dist/src/components/Parameters.d.ts.map +1 -1
- package/dist/src/components/Parameters.js +6 -4
- package/dist/src/components/Parameters.js.map +1 -1
- package/dist/src/components/ProjectDirectory.d.ts.map +1 -1
- package/dist/src/components/ProjectDirectory.js +1 -1
- package/dist/src/components/ProjectDirectory.js.map +1 -1
- package/dist/src/components/Reference.js +1 -1
- package/dist/src/components/Reference.js.map +1 -1
- package/dist/src/components/SourceFile.d.ts +2 -0
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +7 -9
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/UsingDirective.d.ts +2 -1
- package/dist/src/components/UsingDirective.d.ts.map +1 -1
- package/dist/src/components/UsingDirective.js +7 -7
- package/dist/src/components/UsingDirective.js.map +1 -1
- package/dist/src/components/stc/index.d.ts +5 -5
- package/dist/test/utils.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -5
- package/src/components/Class.tsx +48 -42
- package/src/components/Declaration.tsx +1 -3
- package/src/components/Enum.tsx +15 -13
- package/src/components/Namespace.tsx +5 -5
- package/src/components/Parameters.tsx +9 -9
- package/src/components/ProjectDirectory.tsx +9 -7
- package/src/components/SourceFile.tsx +20 -12
- package/src/components/UsingDirective.tsx +8 -9
- package/temp/api.json +8 -20
- package/test/class.test.tsx +106 -38
- package/test/enum.test.tsx +19 -22
- package/test/namespace.test.tsx +6 -10
- package/test/projectdirectory.test.tsx +19 -12
- package/test/sourcefile.test.tsx +7 -8
- package/test/using.test.tsx +26 -14
- package/test/utils.tsx +2 -4
package/test/class.test.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import * as utils from "./utils.js";
|
|
|
6
6
|
|
|
7
7
|
it("declares class with no members", () => {
|
|
8
8
|
const res = utils.toSourceText(
|
|
9
|
-
<csharp.Class accessModifier=
|
|
9
|
+
<csharp.Class accessModifier="public" name="TestClass" />,
|
|
10
10
|
);
|
|
11
11
|
|
|
12
12
|
expect(res).toBe(coretest.d`
|
|
@@ -14,15 +14,24 @@ it("declares class with no members", () => {
|
|
|
14
14
|
{
|
|
15
15
|
public class TestClass;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
17
|
`);
|
|
19
18
|
});
|
|
20
19
|
|
|
21
20
|
it("declares class with some members", () => {
|
|
22
21
|
const res = utils.toSourceText(
|
|
23
|
-
<csharp.Class accessModifier=
|
|
24
|
-
<
|
|
25
|
-
|
|
22
|
+
<csharp.Class accessModifier="public" name="TestClass">
|
|
23
|
+
<core.StatementList>
|
|
24
|
+
<csharp.ClassMember
|
|
25
|
+
accessModifier="public"
|
|
26
|
+
name="MemberOne"
|
|
27
|
+
type="string"
|
|
28
|
+
/>
|
|
29
|
+
<csharp.ClassMember
|
|
30
|
+
accessModifier="private"
|
|
31
|
+
name="MemberTwo"
|
|
32
|
+
type="int"
|
|
33
|
+
/>
|
|
34
|
+
</core.StatementList>
|
|
26
35
|
</csharp.Class>,
|
|
27
36
|
);
|
|
28
37
|
|
|
@@ -35,15 +44,20 @@ it("declares class with some members", () => {
|
|
|
35
44
|
private int memberTwo;
|
|
36
45
|
}
|
|
37
46
|
}
|
|
38
|
-
|
|
39
47
|
`);
|
|
40
48
|
});
|
|
41
49
|
|
|
42
50
|
it("declares class with some methods", () => {
|
|
43
51
|
const res = utils.toSourceText(
|
|
44
|
-
<csharp.Class accessModifier=
|
|
45
|
-
<
|
|
46
|
-
|
|
52
|
+
<csharp.Class accessModifier="public" name="TestClass">
|
|
53
|
+
<core.List>
|
|
54
|
+
<csharp.ClassMethod accessModifier="public" name="MethodOne" />
|
|
55
|
+
<csharp.ClassMethod
|
|
56
|
+
accessModifier="private"
|
|
57
|
+
methodModifier="virtual"
|
|
58
|
+
name="MethodTwo"
|
|
59
|
+
/>
|
|
60
|
+
</core.List>
|
|
47
61
|
</csharp.Class>,
|
|
48
62
|
);
|
|
49
63
|
|
|
@@ -56,7 +70,6 @@ it("declares class with some methods", () => {
|
|
|
56
70
|
private virtual void MethodTwo() {}
|
|
57
71
|
}
|
|
58
72
|
}
|
|
59
|
-
|
|
60
73
|
`);
|
|
61
74
|
});
|
|
62
75
|
|
|
@@ -72,8 +85,13 @@ it("declares class with params and return type", () => {
|
|
|
72
85
|
},
|
|
73
86
|
];
|
|
74
87
|
const res = utils.toSourceText(
|
|
75
|
-
<csharp.Class accessModifier=
|
|
76
|
-
<csharp.ClassMethod
|
|
88
|
+
<csharp.Class accessModifier="public" name="TestClass">
|
|
89
|
+
<csharp.ClassMethod
|
|
90
|
+
accessModifier="public"
|
|
91
|
+
name="MethodOne"
|
|
92
|
+
parameters={params}
|
|
93
|
+
returns="string"
|
|
94
|
+
/>
|
|
77
95
|
</csharp.Class>,
|
|
78
96
|
);
|
|
79
97
|
|
|
@@ -85,7 +103,6 @@ it("declares class with params and return type", () => {
|
|
|
85
103
|
public string MethodOne(int intParam, string stringParam) {}
|
|
86
104
|
}
|
|
87
105
|
}
|
|
88
|
-
|
|
89
106
|
`);
|
|
90
107
|
});
|
|
91
108
|
|
|
@@ -107,17 +124,45 @@ it("uses refkeys for members, params, and return type", () => {
|
|
|
107
124
|
|
|
108
125
|
const res = core.render(
|
|
109
126
|
<core.Output namePolicy={csharp.createCSharpNamePolicy()}>
|
|
110
|
-
<csharp.Namespace name=
|
|
127
|
+
<csharp.Namespace name="TestCode">
|
|
111
128
|
<csharp.SourceFile path="Test.cs">
|
|
112
|
-
<csharp.Enum
|
|
113
|
-
|
|
114
|
-
|
|
129
|
+
<csharp.Enum
|
|
130
|
+
accessModifier="public"
|
|
131
|
+
name="TestEnum"
|
|
132
|
+
refkey={enumTypeRefkey}
|
|
133
|
+
>
|
|
134
|
+
<core.List comma hardline>
|
|
135
|
+
<csharp.EnumMember name="One" />
|
|
136
|
+
<csharp.EnumMember name="Two" />
|
|
137
|
+
</core.List>
|
|
115
138
|
</csharp.Enum>
|
|
116
|
-
<
|
|
117
|
-
<csharp.Class
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
139
|
+
<hbr />
|
|
140
|
+
<csharp.Class
|
|
141
|
+
accessModifier="public"
|
|
142
|
+
name="TestInput"
|
|
143
|
+
refkey={inputTypeRefkey}
|
|
144
|
+
/>
|
|
145
|
+
<hbr />
|
|
146
|
+
<csharp.Class
|
|
147
|
+
accessModifier="public"
|
|
148
|
+
name="TestResult"
|
|
149
|
+
refkey={testResultTypeRefkey}
|
|
150
|
+
/>
|
|
151
|
+
<hbr />
|
|
152
|
+
<csharp.Class accessModifier="public" name="TestClass">
|
|
153
|
+
<csharp.ClassMember
|
|
154
|
+
accessModifier="private"
|
|
155
|
+
name="MemberOne"
|
|
156
|
+
type={enumTypeRefkey}
|
|
157
|
+
/>
|
|
158
|
+
;
|
|
159
|
+
<hbr />
|
|
160
|
+
<csharp.ClassMethod
|
|
161
|
+
accessModifier="public"
|
|
162
|
+
name="MethodOne"
|
|
163
|
+
parameters={params}
|
|
164
|
+
returns={testResultTypeRefkey}
|
|
165
|
+
>
|
|
121
166
|
return new {testResultTypeRefkey}();
|
|
122
167
|
</csharp.ClassMethod>
|
|
123
168
|
</csharp.Class>
|
|
@@ -145,7 +190,6 @@ it("uses refkeys for members, params, and return type", () => {
|
|
|
145
190
|
}
|
|
146
191
|
}
|
|
147
192
|
}
|
|
148
|
-
|
|
149
193
|
`);
|
|
150
194
|
});
|
|
151
195
|
|
|
@@ -156,9 +200,23 @@ it("declares class with generic parameters", () => {
|
|
|
156
200
|
};
|
|
157
201
|
|
|
158
202
|
const res = utils.toSourceText(
|
|
159
|
-
<csharp.Class
|
|
160
|
-
|
|
161
|
-
|
|
203
|
+
<csharp.Class
|
|
204
|
+
accessModifier="public"
|
|
205
|
+
name="TestClass"
|
|
206
|
+
typeParameters={typeParameters}
|
|
207
|
+
>
|
|
208
|
+
<csharp.ClassMember
|
|
209
|
+
accessModifier="public"
|
|
210
|
+
name="memberOne"
|
|
211
|
+
type={typeParameters.T}
|
|
212
|
+
/>
|
|
213
|
+
;<hbr />
|
|
214
|
+
<csharp.ClassMember
|
|
215
|
+
accessModifier="private"
|
|
216
|
+
name="memberTwo"
|
|
217
|
+
type={typeParameters.U}
|
|
218
|
+
/>
|
|
219
|
+
;
|
|
162
220
|
</csharp.Class>,
|
|
163
221
|
);
|
|
164
222
|
|
|
@@ -171,16 +229,16 @@ it("declares class with generic parameters", () => {
|
|
|
171
229
|
private U memberTwo;
|
|
172
230
|
}
|
|
173
231
|
}
|
|
174
|
-
|
|
175
232
|
`);
|
|
176
233
|
});
|
|
177
234
|
|
|
178
235
|
it("declares class with invalid members", () => {
|
|
179
|
-
const decl =
|
|
180
|
-
<csharp.Class accessModifier=
|
|
181
|
-
<csharp.EnumMember name="One"
|
|
236
|
+
const decl = (
|
|
237
|
+
<csharp.Class accessModifier="public" name="TestClass">
|
|
238
|
+
<csharp.EnumMember name="One" />,<hbr />
|
|
182
239
|
<csharp.EnumMember name="Two" />
|
|
183
|
-
</csharp.Class
|
|
240
|
+
</csharp.Class>
|
|
241
|
+
);
|
|
184
242
|
|
|
185
243
|
expect(() => utils.toSourceText(decl)).toThrow(
|
|
186
244
|
"can't define an enum member outside of an enum-decl scope",
|
|
@@ -189,7 +247,7 @@ it("declares class with invalid members", () => {
|
|
|
189
247
|
|
|
190
248
|
it("declares class with constructor", () => {
|
|
191
249
|
const res = utils.toSourceText(
|
|
192
|
-
<csharp.Class accessModifier=
|
|
250
|
+
<csharp.Class accessModifier="public" name="TestClass">
|
|
193
251
|
<csharp.ClassConstructor accessModifier="public" />
|
|
194
252
|
</csharp.Class>,
|
|
195
253
|
);
|
|
@@ -202,7 +260,6 @@ it("declares class with constructor", () => {
|
|
|
202
260
|
public TestClass() {}
|
|
203
261
|
}
|
|
204
262
|
}
|
|
205
|
-
|
|
206
263
|
`);
|
|
207
264
|
});
|
|
208
265
|
|
|
@@ -226,11 +283,23 @@ it("declares class with constructor params and assigns values to fields", () =>
|
|
|
226
283
|
];
|
|
227
284
|
|
|
228
285
|
const res = utils.toSourceText(
|
|
229
|
-
<csharp.Class accessModifier=
|
|
230
|
-
<csharp.ClassMember
|
|
231
|
-
|
|
286
|
+
<csharp.Class accessModifier="public" name="TestClass">
|
|
287
|
+
<csharp.ClassMember
|
|
288
|
+
accessModifier="private"
|
|
289
|
+
name="name"
|
|
290
|
+
type="string"
|
|
291
|
+
refkey={thisNameRefkey}
|
|
292
|
+
/>
|
|
293
|
+
;<hbr />
|
|
294
|
+
<csharp.ClassMember
|
|
295
|
+
accessModifier="private"
|
|
296
|
+
name="size"
|
|
297
|
+
type="int"
|
|
298
|
+
refkey={thisSizeRefkey}
|
|
299
|
+
/>
|
|
300
|
+
;<hbr />
|
|
232
301
|
<csharp.ClassConstructor accessModifier="public" parameters={ctorParams}>
|
|
233
|
-
{thisNameRefkey} = {paramNameRefkey}
|
|
302
|
+
{thisNameRefkey} = {paramNameRefkey};<hbr />
|
|
234
303
|
{thisSizeRefkey} = {paramSizeRefkey};
|
|
235
304
|
</csharp.ClassConstructor>
|
|
236
305
|
</csharp.Class>,
|
|
@@ -252,6 +321,5 @@ it("declares class with constructor params and assigns values to fields", () =>
|
|
|
252
321
|
}
|
|
253
322
|
}
|
|
254
323
|
}
|
|
255
|
-
|
|
256
324
|
`);
|
|
257
325
|
});
|
package/test/enum.test.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import * as utils from "./utils.js";
|
|
|
6
6
|
|
|
7
7
|
it("declares enum with no members", () => {
|
|
8
8
|
const res = utils.toSourceText(
|
|
9
|
-
<csharp.Enum accessModifier=
|
|
9
|
+
<csharp.Enum accessModifier="public" name="TestEnum" />,
|
|
10
10
|
);
|
|
11
11
|
|
|
12
12
|
expect(res).toBe(coretest.d`
|
|
@@ -14,14 +14,13 @@ it("declares enum with no members", () => {
|
|
|
14
14
|
{
|
|
15
15
|
public enum TestEnum;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
17
|
`);
|
|
19
18
|
});
|
|
20
19
|
|
|
21
20
|
it("declares enum with members", () => {
|
|
22
21
|
const res = utils.toSourceText(
|
|
23
|
-
<csharp.Enum accessModifier=
|
|
24
|
-
<csharp.EnumMember name="One"
|
|
22
|
+
<csharp.Enum accessModifier="public" name="TestEnum">
|
|
23
|
+
<csharp.EnumMember name="One" />,<hbr />
|
|
25
24
|
<csharp.EnumMember name="Two" />
|
|
26
25
|
</csharp.Enum>,
|
|
27
26
|
);
|
|
@@ -35,14 +34,13 @@ it("declares enum with members", () => {
|
|
|
35
34
|
Two
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
|
-
|
|
39
37
|
`);
|
|
40
38
|
});
|
|
41
39
|
|
|
42
40
|
it("applies naming policy to enum and members", () => {
|
|
43
41
|
const res = utils.toSourceText(
|
|
44
|
-
<csharp.Enum accessModifier=
|
|
45
|
-
<csharp.EnumMember name="one"
|
|
42
|
+
<csharp.Enum accessModifier="public" name="testEnum">
|
|
43
|
+
<csharp.EnumMember name="one" />,<hbr />
|
|
46
44
|
<csharp.EnumMember name="two" />
|
|
47
45
|
</csharp.Enum>,
|
|
48
46
|
);
|
|
@@ -56,7 +54,6 @@ it("applies naming policy to enum and members", () => {
|
|
|
56
54
|
Two
|
|
57
55
|
}
|
|
58
56
|
}
|
|
59
|
-
|
|
60
57
|
`);
|
|
61
58
|
});
|
|
62
59
|
|
|
@@ -66,13 +63,14 @@ it("can reference things by refkey", () => {
|
|
|
66
63
|
|
|
67
64
|
const res = core.render(
|
|
68
65
|
<core.Output>
|
|
69
|
-
<csharp.Namespace name=
|
|
66
|
+
<csharp.Namespace name="TestCode">
|
|
70
67
|
<csharp.SourceFile path="Test.cs">
|
|
71
|
-
<csharp.Enum accessModifier=
|
|
72
|
-
<csharp.EnumMember name="One"
|
|
68
|
+
<csharp.Enum accessModifier="public" name="TestEnum" refkey={enumRK}>
|
|
69
|
+
<csharp.EnumMember name="One" />,<hbr />
|
|
73
70
|
<csharp.EnumMember name="Two" refkey={twoRK} />
|
|
74
71
|
</csharp.Enum>
|
|
75
|
-
|
|
72
|
+
<hbr />
|
|
73
|
+
{enumRK};<hbr />
|
|
76
74
|
{twoRK};
|
|
77
75
|
</csharp.SourceFile>
|
|
78
76
|
</csharp.Namespace>
|
|
@@ -90,7 +88,6 @@ it("can reference things by refkey", () => {
|
|
|
90
88
|
TestEnum;
|
|
91
89
|
TestEnum.Two;
|
|
92
90
|
}
|
|
93
|
-
|
|
94
91
|
`);
|
|
95
92
|
});
|
|
96
93
|
|
|
@@ -100,21 +97,23 @@ it("can reference things by refkey across files", () => {
|
|
|
100
97
|
|
|
101
98
|
const res = core.render(
|
|
102
99
|
<core.Output>
|
|
103
|
-
<csharp.Namespace name=
|
|
100
|
+
<csharp.Namespace name="TestCode">
|
|
104
101
|
<csharp.SourceFile path="Test.cs">
|
|
105
|
-
<csharp.Enum accessModifier=
|
|
106
|
-
<csharp.EnumMember name="One"
|
|
102
|
+
<csharp.Enum accessModifier="public" name="TestEnum">
|
|
103
|
+
<csharp.EnumMember name="One" />,<hbr />
|
|
107
104
|
<csharp.EnumMember name="Two" />
|
|
108
105
|
</csharp.Enum>
|
|
109
|
-
|
|
106
|
+
<hbr />
|
|
107
|
+
{enumRK};<hbr />
|
|
110
108
|
{barRK};
|
|
111
109
|
</csharp.SourceFile>
|
|
112
110
|
<csharp.SourceFile path="Other.cs">
|
|
113
|
-
<csharp.Enum accessModifier=
|
|
114
|
-
<csharp.EnumMember name="Foo"
|
|
111
|
+
<csharp.Enum accessModifier="public" name="OtherEnum" refkey={enumRK}>
|
|
112
|
+
<csharp.EnumMember name="Foo" />,<hbr />
|
|
115
113
|
<csharp.EnumMember name="Bar" refkey={barRK} />
|
|
116
114
|
</csharp.Enum>
|
|
117
|
-
|
|
115
|
+
<hbr />
|
|
116
|
+
{enumRK};<hbr />
|
|
118
117
|
{barRK};
|
|
119
118
|
</csharp.SourceFile>
|
|
120
119
|
</csharp.Namespace>
|
|
@@ -133,7 +132,6 @@ it("can reference things by refkey across files", () => {
|
|
|
133
132
|
OtherEnum;
|
|
134
133
|
OtherEnum.Bar;
|
|
135
134
|
}
|
|
136
|
-
|
|
137
135
|
`);
|
|
138
136
|
|
|
139
137
|
expect(res.contents[1].path).toBe("Other.cs");
|
|
@@ -148,6 +146,5 @@ it("can reference things by refkey across files", () => {
|
|
|
148
146
|
OtherEnum;
|
|
149
147
|
OtherEnum.Bar;
|
|
150
148
|
}
|
|
151
|
-
|
|
152
149
|
`);
|
|
153
150
|
});
|
package/test/namespace.test.tsx
CHANGED
|
@@ -6,20 +6,20 @@ import * as csharp from "../src/index.js";
|
|
|
6
6
|
it("defines multiple namespaces and source files with unique content", () => {
|
|
7
7
|
const res = core.render(
|
|
8
8
|
<core.Output>
|
|
9
|
-
<csharp.Namespace name=
|
|
9
|
+
<csharp.Namespace name="Namespace1">
|
|
10
10
|
<csharp.SourceFile path="Model1.cs">
|
|
11
|
-
<csharp.Class accessModifier=
|
|
11
|
+
<csharp.Class accessModifier="public" name="Model1" />
|
|
12
12
|
</csharp.SourceFile>
|
|
13
13
|
<csharp.SourceFile path="Model2.cs">
|
|
14
|
-
<csharp.Class accessModifier=
|
|
14
|
+
<csharp.Class accessModifier="public" name="Model2" />
|
|
15
15
|
</csharp.SourceFile>
|
|
16
16
|
</csharp.Namespace>
|
|
17
|
-
<csharp.Namespace name=
|
|
17
|
+
<csharp.Namespace name="Namespace2">
|
|
18
18
|
<csharp.SourceFile path="Model3.cs">
|
|
19
|
-
<csharp.Class accessModifier=
|
|
19
|
+
<csharp.Class accessModifier="public" name="Model3" />
|
|
20
20
|
</csharp.SourceFile>
|
|
21
21
|
<csharp.SourceFile path="Model4.cs">
|
|
22
|
-
<csharp.Class accessModifier=
|
|
22
|
+
<csharp.Class accessModifier="public" name="Model4" />
|
|
23
23
|
</csharp.SourceFile>
|
|
24
24
|
</csharp.Namespace>
|
|
25
25
|
</core.Output>,
|
|
@@ -31,7 +31,6 @@ it("defines multiple namespaces and source files with unique content", () => {
|
|
|
31
31
|
{
|
|
32
32
|
public class Model1;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
34
|
`);
|
|
36
35
|
|
|
37
36
|
expect(res.contents[1].path).equals("Model2.cs");
|
|
@@ -40,7 +39,6 @@ it("defines multiple namespaces and source files with unique content", () => {
|
|
|
40
39
|
{
|
|
41
40
|
public class Model2;
|
|
42
41
|
}
|
|
43
|
-
|
|
44
42
|
`);
|
|
45
43
|
|
|
46
44
|
expect(res.contents[2].path).equals("Model3.cs");
|
|
@@ -49,7 +47,6 @@ it("defines multiple namespaces and source files with unique content", () => {
|
|
|
49
47
|
{
|
|
50
48
|
public class Model3;
|
|
51
49
|
}
|
|
52
|
-
|
|
53
50
|
`);
|
|
54
51
|
|
|
55
52
|
expect(res.contents[3].path).equals("Model4.cs");
|
|
@@ -58,6 +55,5 @@ it("defines multiple namespaces and source files with unique content", () => {
|
|
|
58
55
|
{
|
|
59
56
|
public class Model4;
|
|
60
57
|
}
|
|
61
|
-
|
|
62
58
|
`);
|
|
63
59
|
});
|
|
@@ -6,13 +6,18 @@ import * as csharp from "../src/index.js";
|
|
|
6
6
|
it("defines a project directory file with multiple source files", () => {
|
|
7
7
|
const res = core.render(
|
|
8
8
|
<core.Output>
|
|
9
|
-
<csharp.ProjectDirectory
|
|
10
|
-
|
|
9
|
+
<csharp.ProjectDirectory
|
|
10
|
+
name="TestProject"
|
|
11
|
+
path="~/projects"
|
|
12
|
+
version="0.1.0"
|
|
13
|
+
description="a test project"
|
|
14
|
+
>
|
|
15
|
+
<csharp.Namespace name="TestCode">
|
|
11
16
|
<csharp.SourceFile path="Test1.cs">
|
|
12
|
-
<csharp.Class accessModifier=
|
|
17
|
+
<csharp.Class accessModifier="public" name="TestClass1" />
|
|
13
18
|
</csharp.SourceFile>
|
|
14
19
|
<csharp.SourceFile path="Test2.cs">
|
|
15
|
-
<csharp.Class accessModifier=
|
|
20
|
+
<csharp.Class accessModifier="public" name="TestClass2" />
|
|
16
21
|
</csharp.SourceFile>
|
|
17
22
|
</csharp.Namespace>
|
|
18
23
|
</csharp.ProjectDirectory>
|
|
@@ -43,7 +48,6 @@ it("defines a project directory file with multiple source files", () => {
|
|
|
43
48
|
{
|
|
44
49
|
public class TestClass1;
|
|
45
50
|
}
|
|
46
|
-
|
|
47
51
|
`);
|
|
48
52
|
|
|
49
53
|
expect(srcDir.contents[1].path).equals("~/projects/TestProject/src/Test2.cs");
|
|
@@ -52,20 +56,25 @@ it("defines a project directory file with multiple source files", () => {
|
|
|
52
56
|
{
|
|
53
57
|
public class TestClass2;
|
|
54
58
|
}
|
|
55
|
-
|
|
56
59
|
`);
|
|
57
60
|
});
|
|
58
61
|
|
|
59
62
|
it("defines a project directory file with multiple source files and a custom TFM", () => {
|
|
60
63
|
const res = core.render(
|
|
61
64
|
<core.Output>
|
|
62
|
-
<csharp.ProjectDirectory
|
|
63
|
-
|
|
65
|
+
<csharp.ProjectDirectory
|
|
66
|
+
name="TestProject"
|
|
67
|
+
path="~/projects"
|
|
68
|
+
version="0.1.0"
|
|
69
|
+
description="a test project"
|
|
70
|
+
targetFrameworkMoniker="netstandard2.1"
|
|
71
|
+
>
|
|
72
|
+
<csharp.Namespace name="TestCode">
|
|
64
73
|
<csharp.SourceFile path="Test1.cs">
|
|
65
|
-
<csharp.Class accessModifier=
|
|
74
|
+
<csharp.Class accessModifier="public" name="TestClass1" />
|
|
66
75
|
</csharp.SourceFile>
|
|
67
76
|
<csharp.SourceFile path="Test2.cs">
|
|
68
|
-
<csharp.Class accessModifier=
|
|
77
|
+
<csharp.Class accessModifier="public" name="TestClass2" />
|
|
69
78
|
</csharp.SourceFile>
|
|
70
79
|
</csharp.Namespace>
|
|
71
80
|
</csharp.ProjectDirectory>
|
|
@@ -96,7 +105,6 @@ it("defines a project directory file with multiple source files and a custom TFM
|
|
|
96
105
|
{
|
|
97
106
|
public class TestClass1;
|
|
98
107
|
}
|
|
99
|
-
|
|
100
108
|
`);
|
|
101
109
|
|
|
102
110
|
expect(srcDir.contents[1].path).equals("~/projects/TestProject/src/Test2.cs");
|
|
@@ -105,6 +113,5 @@ it("defines a project directory file with multiple source files and a custom TFM
|
|
|
105
113
|
{
|
|
106
114
|
public class TestClass2;
|
|
107
115
|
}
|
|
108
|
-
|
|
109
116
|
`);
|
|
110
117
|
});
|
package/test/sourcefile.test.tsx
CHANGED
|
@@ -6,12 +6,12 @@ import * as csharp from "../src/index.js";
|
|
|
6
6
|
it("defines multiple source files with unique content", () => {
|
|
7
7
|
const res = core.render(
|
|
8
8
|
<core.Output>
|
|
9
|
-
<csharp.Namespace name=
|
|
9
|
+
<csharp.Namespace name="TestCode">
|
|
10
10
|
<csharp.SourceFile path="Test1.cs">
|
|
11
|
-
<csharp.Class accessModifier=
|
|
11
|
+
<csharp.Class accessModifier="public" name="TestClass1" />
|
|
12
12
|
</csharp.SourceFile>
|
|
13
13
|
<csharp.SourceFile path="Test2.cs">
|
|
14
|
-
<csharp.Class accessModifier=
|
|
14
|
+
<csharp.Class accessModifier="public" name="TestClass2" />
|
|
15
15
|
</csharp.SourceFile>
|
|
16
16
|
</csharp.Namespace>
|
|
17
17
|
</core.Output>,
|
|
@@ -23,7 +23,6 @@ it("defines multiple source files with unique content", () => {
|
|
|
23
23
|
{
|
|
24
24
|
public class TestClass1;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
26
|
`);
|
|
28
27
|
|
|
29
28
|
expect(res.contents[1].path).equals("Test2.cs");
|
|
@@ -32,15 +31,15 @@ it("defines multiple source files with unique content", () => {
|
|
|
32
31
|
{
|
|
33
32
|
public class TestClass2;
|
|
34
33
|
}
|
|
35
|
-
|
|
36
34
|
`);
|
|
37
35
|
});
|
|
38
36
|
|
|
39
37
|
it("throws when declaring a source file outside a namespace", () => {
|
|
40
|
-
const decl =
|
|
38
|
+
const decl = (
|
|
41
39
|
<core.Output>
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
<csharp.SourceFile path="Test.cs" />
|
|
41
|
+
</core.Output>
|
|
42
|
+
);
|
|
44
43
|
|
|
45
44
|
expect(() => core.render(decl)).toThrow(
|
|
46
45
|
"SourceFile must be declared inside a namespace",
|
package/test/using.test.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import * as csharp from "../src/index.js";
|
|
|
6
6
|
it("uses a single namespace", () => {
|
|
7
7
|
const res = core.render(
|
|
8
8
|
<core.Output>
|
|
9
|
-
<csharp.Namespace name=
|
|
9
|
+
<csharp.Namespace name="TestCode">
|
|
10
10
|
<csharp.SourceFile path="Test1.cs" using={["Foo"]} />
|
|
11
11
|
</csharp.Namespace>
|
|
12
12
|
</core.Output>,
|
|
@@ -16,14 +16,13 @@ it("uses a single namespace", () => {
|
|
|
16
16
|
using Foo;
|
|
17
17
|
|
|
18
18
|
namespace TestCode {}
|
|
19
|
-
|
|
20
19
|
`);
|
|
21
20
|
});
|
|
22
21
|
|
|
23
22
|
it("uses multiple namespaces", () => {
|
|
24
23
|
const res = core.render(
|
|
25
24
|
<core.Output>
|
|
26
|
-
<csharp.Namespace name=
|
|
25
|
+
<csharp.Namespace name="TestCode">
|
|
27
26
|
<csharp.SourceFile path="Test1.cs" using={["Foo", "Bar.Baz"]} />
|
|
28
27
|
</csharp.Namespace>
|
|
29
28
|
</core.Output>,
|
|
@@ -34,7 +33,6 @@ it("uses multiple namespaces", () => {
|
|
|
34
33
|
using Foo;
|
|
35
34
|
|
|
36
35
|
namespace TestCode {}
|
|
37
|
-
|
|
38
36
|
`);
|
|
39
37
|
});
|
|
40
38
|
|
|
@@ -52,21 +50,37 @@ it("adds using statement across namespaces", () => {
|
|
|
52
50
|
|
|
53
51
|
const res = core.render(
|
|
54
52
|
<core.Output namePolicy={csharp.createCSharpNamePolicy()}>
|
|
55
|
-
<csharp.Namespace name=
|
|
53
|
+
<csharp.Namespace name="Models">
|
|
56
54
|
<csharp.SourceFile path="Models.cs">
|
|
57
|
-
<csharp.Class
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
<csharp.Class
|
|
56
|
+
accessModifier="public"
|
|
57
|
+
name="Input"
|
|
58
|
+
refkey={inputTypeRefkey}
|
|
59
|
+
/>
|
|
60
|
+
<hbr />
|
|
61
|
+
<csharp.Class
|
|
62
|
+
accessModifier="public"
|
|
63
|
+
name="Output"
|
|
64
|
+
refkey={outputTypeRefkey}
|
|
65
|
+
/>
|
|
66
|
+
<hbr />
|
|
67
|
+
<csharp.Enum accessModifier="public" name="TestEnum">
|
|
68
|
+
<csharp.EnumMember name="One" />,<hbr />
|
|
61
69
|
<csharp.EnumMember name="Two" refkey={twoValRefkey} />
|
|
62
70
|
</csharp.Enum>
|
|
63
71
|
</csharp.SourceFile>
|
|
64
72
|
</csharp.Namespace>
|
|
65
|
-
<csharp.Namespace name=
|
|
73
|
+
<csharp.Namespace name="Client">
|
|
66
74
|
<csharp.SourceFile path="Client.cs" using={["System"]}>
|
|
67
|
-
<csharp.Class accessModifier=
|
|
68
|
-
<csharp.ClassMethod
|
|
75
|
+
<csharp.Class accessModifier="public" name="Client">
|
|
76
|
+
<csharp.ClassMethod
|
|
77
|
+
accessModifier="public"
|
|
78
|
+
name="MethodOne"
|
|
79
|
+
parameters={params}
|
|
80
|
+
returns={outputTypeRefkey}
|
|
81
|
+
/>
|
|
69
82
|
</csharp.Class>
|
|
83
|
+
<hbr />
|
|
70
84
|
{twoValRefkey};
|
|
71
85
|
</csharp.SourceFile>
|
|
72
86
|
</csharp.Namespace>
|
|
@@ -84,7 +98,6 @@ it("adds using statement across namespaces", () => {
|
|
|
84
98
|
Two
|
|
85
99
|
}
|
|
86
100
|
}
|
|
87
|
-
|
|
88
101
|
`);
|
|
89
102
|
|
|
90
103
|
expect(res.contents[1].contents).toBe(coretest.d`
|
|
@@ -99,6 +112,5 @@ it("adds using statement across namespaces", () => {
|
|
|
99
112
|
}
|
|
100
113
|
TestEnum.Two;
|
|
101
114
|
}
|
|
102
|
-
|
|
103
115
|
`);
|
|
104
116
|
});
|
package/test/utils.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import * as csharp from "../src/index.js";
|
|
|
6
6
|
export function toSourceText(c: core.Children): string {
|
|
7
7
|
const res = core.render(
|
|
8
8
|
<core.Output namePolicy={csharp.createCSharpNamePolicy()}>
|
|
9
|
-
<csharp.Namespace name=
|
|
9
|
+
<csharp.Namespace name="TestCode">
|
|
10
10
|
<csharp.SourceFile path="Test.cs">{c}</csharp.SourceFile>
|
|
11
11
|
</csharp.Namespace>
|
|
12
12
|
</core.Output>,
|
|
@@ -19,9 +19,7 @@ export function toSourceText(c: core.Children): string {
|
|
|
19
19
|
export function testRender(c: core.Children): core.OutputDirectory {
|
|
20
20
|
return core.render(
|
|
21
21
|
<core.Output>
|
|
22
|
-
<csharp.Namespace name=
|
|
23
|
-
{c}
|
|
24
|
-
</csharp.Namespace>
|
|
22
|
+
<csharp.Namespace name="TestCode">{c}</csharp.Namespace>
|
|
25
23
|
</core.Output>,
|
|
26
24
|
);
|
|
27
25
|
}
|