You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

FunctionCallTemplateTests.cs 1.6 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright (c) Microsoft Corporation. All rights reserved.
  2. // FunctionCallTemplateTests.cs
  3. using ApprovalTests;
  4. using ApprovalTests.Namers;
  5. using ApprovalTests.Reporters;
  6. using AutoGen.SourceGenerator.Template;
  7. using Xunit;
  8. namespace AutoGen.SourceGenerator.Tests;
  9. [Trait("Category", "UnitV1")]
  10. public class FunctionCallTemplateTests
  11. {
  12. [Fact]
  13. [UseReporter(typeof(DiffReporter))]
  14. [UseApprovalSubdirectory("ApprovalTests")]
  15. public void TestFunctionCallTemplate()
  16. {
  17. var functionExample = new FunctionExamples();
  18. var function = functionExample.AddAsyncFunctionContract;
  19. var functionCallTemplate = new FunctionCallTemplate()
  20. {
  21. ClassName = function.ClassName,
  22. NameSpace = function.Namespace,
  23. FunctionContracts = [new SourceGeneratorFunctionContract()
  24. {
  25. Name = function.Name,
  26. Description = function.Description,
  27. ReturnType = function.ReturnType!.ToString(),
  28. ReturnDescription = function.ReturnDescription,
  29. Parameters = function.Parameters!.Select(p => new SourceGeneratorParameterContract()
  30. {
  31. Name = p.Name,
  32. Description = p.Description,
  33. Type = p.ParameterType!.ToString(),
  34. IsOptional = !p.IsRequired,
  35. JsonType = p.ParameterType!.ToString(),
  36. }).ToArray()
  37. }]
  38. };
  39. var actual = functionCallTemplate.TransformText();
  40. Approvals.Verify(actual);
  41. }
  42. }