@alloy-js/csharp 0.18.0-dev.16 → 0.18.0-dev.18

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.
Files changed (60) hide show
  1. package/dist/src/components/ClassDeclaration.d.ts +14 -1
  2. package/dist/src/components/ClassDeclaration.d.ts.map +1 -1
  3. package/dist/src/components/ClassDeclaration.js +12 -25
  4. package/dist/src/components/ClassMethod.d.ts +14 -0
  5. package/dist/src/components/ClassMethod.d.ts.map +1 -1
  6. package/dist/src/components/ClassMethod.js +11 -1
  7. package/dist/src/components/index.d.ts +2 -0
  8. package/dist/src/components/index.d.ts.map +1 -1
  9. package/dist/src/components/index.js +3 -1
  10. package/dist/src/components/interface/declaration.d.ts +14 -1
  11. package/dist/src/components/interface/declaration.d.ts.map +1 -1
  12. package/dist/src/components/interface/declaration.js +12 -25
  13. package/dist/src/components/interface/declaration.test.js +84 -0
  14. package/dist/src/components/interface/method.d.ts +14 -0
  15. package/dist/src/components/interface/method.d.ts.map +1 -1
  16. package/dist/src/components/interface/method.js +11 -1
  17. package/dist/src/components/interface/method.test.js +79 -0
  18. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts +8 -0
  19. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts.map +1 -0
  20. package/dist/src/components/type-parameters/type-parameter-constraints.js +44 -0
  21. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts +2 -0
  22. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts.map +1 -0
  23. package/dist/src/components/type-parameters/type-parameter-constraints.test.js +67 -0
  24. package/dist/src/components/type-parameters/type-parameter.d.ts +20 -0
  25. package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -0
  26. package/dist/src/components/type-parameters/type-parameter.js +22 -0
  27. package/dist/src/components/type-parameters/type-parameters.d.ts +17 -0
  28. package/dist/src/components/type-parameters/type-parameters.d.ts.map +1 -0
  29. package/dist/src/components/type-parameters/type-parameters.js +65 -0
  30. package/dist/src/components/type-parameters/type-parameters.test.d.ts +2 -0
  31. package/dist/src/components/type-parameters/type-parameters.test.d.ts.map +1 -0
  32. package/dist/src/components/type-parameters/type-parameters.test.js +26 -0
  33. package/dist/src/components/var/declaration.d.ts +35 -0
  34. package/dist/src/components/var/declaration.d.ts.map +1 -0
  35. package/dist/src/components/var/declaration.js +40 -0
  36. package/dist/src/components/var/declaration.test.d.ts +2 -0
  37. package/dist/src/components/var/declaration.test.d.ts.map +1 -0
  38. package/dist/src/components/var/declaration.test.js +73 -0
  39. package/dist/src/name-policy.d.ts +1 -1
  40. package/dist/src/name-policy.d.ts.map +1 -1
  41. package/dist/test/class-declaration.test.js +79 -33
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +2 -2
  44. package/src/components/ClassDeclaration.tsx +23 -27
  45. package/src/components/ClassMethod.tsx +25 -1
  46. package/src/components/index.ts +2 -0
  47. package/src/components/interface/declaration.test.tsx +87 -0
  48. package/src/components/interface/declaration.tsx +23 -27
  49. package/src/components/interface/method.test.tsx +78 -0
  50. package/src/components/interface/method.tsx +24 -1
  51. package/src/components/type-parameters/type-parameter-constraints.test.tsx +93 -0
  52. package/src/components/type-parameters/type-parameter-constraints.tsx +46 -0
  53. package/src/components/type-parameters/type-parameter.tsx +35 -0
  54. package/src/components/type-parameters/type-parameters.test.tsx +19 -0
  55. package/src/components/type-parameters/type-parameters.tsx +72 -0
  56. package/src/components/var/declaration.test.tsx +59 -0
  57. package/src/components/var/declaration.tsx +47 -0
  58. package/src/name-policy.ts +1 -0
  59. package/temp/api.json +415 -23
  60. package/test/class-declaration.test.tsx +75 -25
@@ -1,8 +1,15 @@
1
1
  import * as core from "@alloy-js/core";
2
+ import { List, refkey } from "@alloy-js/core";
2
3
  import * as coretest from "@alloy-js/core/testing";
3
4
  import { describe, expect, it } from "vitest";
5
+ import { TypeParameterProps } from "../src/components/type-parameters/type-parameter.jsx";
4
6
  import * as csharp from "../src/index.js";
5
- import { ClassDeclaration, ClassMember } from "../src/index.js";
7
+ import {
8
+ ClassDeclaration,
9
+ ClassMember,
10
+ Property,
11
+ SourceFile,
12
+ } from "../src/index.js";
6
13
  import * as utils from "./utils.jsx";
7
14
 
8
15
  it("declares class with no members", () => {
@@ -217,34 +224,77 @@ it("uses refkeys for members, params, and return type", () => {
217
224
  `);
218
225
  });
219
226
 
220
- it("declares class with generic parameters", () => {
221
- const typeParameters = {
222
- T: core.refkey(),
223
- U: core.refkey(),
224
- };
227
+ describe("with type parameters", () => {
228
+ it("reference parameters", () => {
229
+ const typeParameters: TypeParameterProps[] = [
230
+ {
231
+ name: "T",
232
+ refkey: refkey(),
233
+ },
234
+ {
235
+ name: "U",
236
+ refkey: refkey(),
237
+ },
238
+ ];
225
239
 
226
- const res = utils.toSourceText(
227
- <csharp.ClassDeclaration
228
- public
229
- name="TestClass"
230
- typeParameters={typeParameters}
231
- >
232
- <csharp.ClassMember public name="memberOne" type={typeParameters.T} />
233
- ;<hbr />
234
- <csharp.ClassMember private name="memberTwo" type={typeParameters.U} />;
235
- </csharp.ClassDeclaration>,
236
- );
237
-
238
- expect(res).toBe(coretest.d`
239
- namespace TestCode
240
- {
240
+ expect(
241
+ <utils.TestNamespace>
242
+ <SourceFile path="Test.cs">
243
+ <ClassDeclaration
244
+ public
245
+ name="TestClass"
246
+ typeParameters={typeParameters}
247
+ >
248
+ <List>
249
+ <Property name="PropA" type={typeParameters[0].refkey} get set />
250
+ <Property name="PropB" type={typeParameters[1].refkey} get set />
251
+ </List>
252
+ </ClassDeclaration>
253
+ </SourceFile>
254
+ </utils.TestNamespace>,
255
+ ).toRenderTo(`
256
+ namespace TestCode
257
+ {
241
258
  public class TestClass<T, U>
242
259
  {
243
- public T MemberOne;
244
- private U memberTwo;
260
+ T PropA { get; set; }
261
+ U PropB { get; set; }
245
262
  }
246
- }
247
- `);
263
+ }
264
+ `);
265
+ });
266
+
267
+ it("defines with constraints", () => {
268
+ const typeParameters: TypeParameterProps[] = [
269
+ {
270
+ name: "T",
271
+ constraints: "IFoo",
272
+ },
273
+ {
274
+ name: "U",
275
+ constraints: "IBar",
276
+ },
277
+ ];
278
+
279
+ expect(
280
+ <utils.TestNamespace>
281
+ <ClassDeclaration
282
+ public
283
+ name="TestClass"
284
+ typeParameters={typeParameters}
285
+ >
286
+ // Body
287
+ </ClassDeclaration>
288
+ </utils.TestNamespace>,
289
+ ).toRenderTo(`
290
+ public class TestClass<T, U>
291
+ where T : IFoo
292
+ where U : IBar
293
+ {
294
+ // Body
295
+ }
296
+ `);
297
+ });
248
298
  });
249
299
 
250
300
  it("declares class with invalid members", () => {