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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. public class FunctionCallTemplateTests
  10. {
  11. [Fact]
  12. [UseReporter(typeof(DiffReporter))]
  13. [UseApprovalSubdirectory("ApprovalTests")]
  14. public void TestFunctionCallTemplate()
  15. {
  16. var functionExample = new FunctionExamples();
  17. var function = functionExample.AddAsyncFunctionContract;
  18. var functionCallTemplate = new FunctionCallTemplate()
  19. {
  20. ClassName = function.ClassName,
  21. NameSpace = function.Namespace,
  22. FunctionContracts = [new SourceGeneratorFunctionContract()
  23. {
  24. Name = function.Name,
  25. Description = function.Description,
  26. ReturnType = function.ReturnType!.ToString(),
  27. ReturnDescription = function.ReturnDescription,
  28. Parameters = function.Parameters!.Select(p => new SourceGeneratorParameterContract()
  29. {
  30. Name = p.Name,
  31. Description = p.Description,
  32. Type = p.ParameterType!.ToString(),
  33. IsOptional = !p.IsRequired,
  34. JsonType = p.ParameterType!.ToString(),
  35. }).ToArray()
  36. }]
  37. };
  38. var actual = functionCallTemplate.TransformText();
  39. Approvals.Verify(actual);
  40. }
  41. }