Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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"");
	}
}"));
Beispiel #3
0
        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"");
	}
}"));