private static string GenerateMethodWithRefOutOrNoParameters(MethodInfo baseMethod, string delegateCast, string argumentNameList, string outInitializers, string methodDescriptionWithOverride, string visibility, RequiresIsNewImplementation requiresIsNewImplementation, SortedSet <string> namespaces, bool isMake, bool hasEvents) { var requiresNew = requiresIsNewImplementation == RequiresIsNewImplementation.Yes ? "new" : string.Empty; var returnTypeName = $"{baseMethod.ReturnType.GetFullName(namespaces, baseMethod.ReturnParameter)}"; if (baseMethod.ReturnType != typeof(void)) { var returnTypeAttributes = baseMethod.ReturnParameter.GetAttributes(true, namespaces); return(isMake ? MethodTemplates.GetFunctionForMake(outInitializers, methodDescriptionWithOverride, visibility, requiresNew, returnTypeAttributes, baseMethod.ReturnType) : baseMethod.ReturnType.RequiresExplicitCast() ? MethodTemplates.GetFunctionWithValueTypeReturnValueAndNoArguments( baseMethod.MetadataToken, argumentNameList, returnTypeName, delegateCast, outInitializers, methodDescriptionWithOverride, visibility, requiresNew, returnTypeAttributes, hasEvents) : MethodTemplates.GetFunctionWithReferenceTypeReturnValueAndNoArguments( baseMethod.MetadataToken, argumentNameList, returnTypeName, delegateCast, outInitializers, methodDescriptionWithOverride, visibility, requiresNew, returnTypeAttributes, hasEvents)); } else { return(isMake ? MethodTemplates.GetActionMethodWithNoArgumentsForMake(outInitializers, methodDescriptionWithOverride, visibility) : MethodTemplates.GetActionMethodWithNoArguments(baseMethod.MetadataToken, argumentNameList, delegateCast, outInitializers, methodDescriptionWithOverride, visibility, hasEvents)); } }
public static void GetActionMethodWithNoArgumentsAndHasEventsIsFalse() => Assert.That(MethodTemplates.GetActionMethodWithNoArguments(1, "b", "c", "d", "e", "f", false), Is.EqualTo( @"f e { d if (this.handlers.TryGetValue(1, out var methodHandlers)) { var methodHandler = methodHandlers[0]; if(methodHandler.Method != null) { ((c)methodHandler.Method)(b); } methodHandler.IncrementCallCount(); } else { throw new RE.ExpectationException($""No handlers were found for e""); } }"));
public static void GetActionMethodWithNoArgumentsAndHasEventsIsTrue() => Assert.That(MethodTemplates.GetActionMethodWithNoArguments(1, "b", "c", "d", "e", "f", true), Is.EqualTo( @"f e { d if (this.handlers.TryGetValue(1, out var methodHandlers)) { var methodHandler = methodHandlers[0]; if(methodHandler.Method != null) { #pragma warning disable CS8604 ((c)methodHandler.Method)(b); #pragma warning restore CS8604 } methodHandler.RaiseEvents(this); methodHandler.IncrementCallCount(); } else { throw new RE.ExpectationException($""No handlers were found for e""); } }"));