| 
									
										
										
										
											2024-10-30 11:53:37 -07:00
										 |  |  | // Copyright (c) Microsoft Corporation. All rights reserved. | 
					
						
							|  |  |  | // FunctionCallTemplateEncodingTests.cs | 
					
						
							| 
									
										
										
										
											2024-07-15 12:33:10 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | using AutoGen.SourceGenerator.Template; // Needed for FunctionCallTemplate | 
					
						
							| 
									
										
										
										
											2024-07-15 12:33:10 -07:00
										 |  |  | using Xunit; // Needed for Fact and Assert | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  | namespace AutoGen.SourceGenerator.Tests; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public class FunctionCallTemplateEncodingTests | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |     [Fact] | 
					
						
							|  |  |  |     public void FunctionDescription_Should_Encode_DoubleQuotes() | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |         // Arrange | 
					
						
							|  |  |  |         var functionContracts = new List<SourceGeneratorFunctionContract> | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |         { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |             new SourceGeneratorFunctionContract | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |             { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |                 Name = "TestFunction", | 
					
						
							|  |  |  |                 Description = "This is a \"test\" function", | 
					
						
							|  |  |  |                 Parameters = new SourceGeneratorParameterContract[] | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |                     new SourceGeneratorParameterContract | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |                     { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |                         Name = "param1", | 
					
						
							|  |  |  |                         Description = "This is a \"parameter\" description", | 
					
						
							|  |  |  |                         Type = "string", | 
					
						
							|  |  |  |                         IsOptional = false | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 ReturnType = "void" | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |         var template = new FunctionCallTemplate | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             NameSpace = "TestNamespace", | 
					
						
							|  |  |  |             ClassName = "TestClass", | 
					
						
							|  |  |  |             FunctionContracts = functionContracts | 
					
						
							|  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |         // Act | 
					
						
							|  |  |  |         var result = template.TransformText(); | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |         // Assert | 
					
						
							|  |  |  |         Assert.Contains("Description = @\"This is a \"\"test\"\" function\"", result); | 
					
						
							|  |  |  |         Assert.Contains("Description = @\"This is a \"\"parameter\"\" description\"", result); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |     [Fact] | 
					
						
							|  |  |  |     public void ParameterDescription_Should_Encode_DoubleQuotes() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Arrange | 
					
						
							|  |  |  |         var functionContracts = new List<SourceGeneratorFunctionContract> | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |         { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |             new SourceGeneratorFunctionContract | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |             { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |                 Name = "TestFunction", | 
					
						
							|  |  |  |                 Description = "This is a test function", | 
					
						
							|  |  |  |                 Parameters = new SourceGeneratorParameterContract[] | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |                     new SourceGeneratorParameterContract | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |                     { | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |                         Name = "param1", | 
					
						
							|  |  |  |                         Description = "This is a \"parameter\" description", | 
					
						
							|  |  |  |                         Type = "string", | 
					
						
							|  |  |  |                         IsOptional = false | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 ReturnType = "void" | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |         var template = new FunctionCallTemplate | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             NameSpace = "TestNamespace", | 
					
						
							|  |  |  |             ClassName = "TestClass", | 
					
						
							|  |  |  |             FunctionContracts = functionContracts | 
					
						
							|  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |         // Act | 
					
						
							|  |  |  |         var result = template.TransformText(); | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 10:05:58 -07:00
										 |  |  |         // Assert | 
					
						
							|  |  |  |         Assert.Contains("Description = @\"This is a \"\"parameter\"\" description\"", result); | 
					
						
							| 
									
										
										
										
											2024-07-05 16:10:58 -07:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-07-15 12:33:10 -07:00
										 |  |  | } |