public void InstanceMethodPair_Constructor_AsynchronousMethodAndSimpleMethodParams() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.EchoAsync)); var subject = (IProxySubject) new ProxySubject(); var pair = new InstanceMethodPair(subject, methodInfo); Assert.IsNotNull(pair); }
public async Task InstanceMethodPair_Invoke_SynchronousMethodAndSimpleMethodParams_ThrowsArgumentNullException() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.Echo)); var subject = (IProxySubject) new ProxySubject(); var pair = new InstanceMethodPair(subject, methodInfo); IRequest request = null; var response = await pair.InvokeAsync(request); }
public void InstanceMethodPair_GetArguments_NullRequest_ThrowsArgumentNullException() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.Echo)); var parameters = methodInfo.GetParameters(); var subject = (IProxySubject) new ProxySubject(); var pair = new InstanceMethodPair(subject, methodInfo); IRequest request = null; var arguments = InstanceMethodPair.GetArguments(request, parameters); }
public void InstanceMethodPair_GetArguments_Fails_DueToUnsupportedParamsKeyword() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.PassStringParams)); var parameters = methodInfo.GetParameters(); var request = new Request(methodInfo, new object[] { ProxySubject.EchoValueConst }, Constants.OrganizationId, Constants.InstanceId, Constants.MessageReplyPath); Assert.AreEqual(1, request.ArgumentCount); Assert.AreEqual(1, parameters.Length); var arguments = InstanceMethodPair.GetArguments(request, parameters); }
public void InstanceMethodPair_GetArguments_Fails_DueToTypeMismatch() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.Echo)); var parameters = methodInfo.GetParameters(); var request = new Request(methodInfo, new object[] { 3 }, Constants.OrganizationId, Constants.InstanceId, Constants.MessageReplyPath); Assert.AreEqual(1, request.ArgumentCount); Assert.AreEqual(1, parameters.Length); var arguments = InstanceMethodPair.GetArguments(request, parameters); }
public void InstanceMethodPair_GetArguments_NullParameters_ThrowsArgumentNullException() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.Echo)); ParameterInfo[] parameters = null; var subject = (IProxySubject) new ProxySubject(); var pair = new InstanceMethodPair(subject, methodInfo); var request = new Request(methodInfo, new object[1] { ProxySubject.EchoValueConst }, Constants.OrganizationId, Constants.InstanceId, Constants.MessageReplyPath); var arguments = InstanceMethodPair.GetArguments(request, parameters); }
public void InstanceMethodPair_GetArguments_Succeeds_ReturnsNonNullArguments() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.Echo)); var parameters = methodInfo.GetParameters(); var request = new Request(methodInfo, new object[] { ProxySubject.EchoValueConst }, Constants.OrganizationId, Constants.InstanceId, Constants.MessageReplyPath); Assert.AreEqual(1, request.ArgumentCount); Assert.AreEqual(1, parameters.Length); var arguments = InstanceMethodPair.GetArguments(request, parameters); Assert.IsNotNull(arguments); }
public async Task InstanceMethodPair_Invoke_AsynchronousMethodAndSimpleMethodParams_ReturnsNonNullResponse() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.EchoAsync)); var subject = (IProxySubject) new ProxySubject(); var pair = new InstanceMethodPair(subject, methodInfo); var request = new Request(methodInfo, new object[1] { ProxySubject.EchoValueConst }, Constants.OrganizationId, Constants.InstanceId, Constants.MessageReplyPath); var response = await pair.InvokeAsync(request); Assert.IsNotNull(response); }
public async Task InstanceMethodPair_Invoke_SynchronousMethodAndSimpleMethodParams_ReturnsCorrectResponse() { var methodInfo = typeof(ProxySubject).GetMethod(nameof(ProxySubject.Echo)); var subject = (IProxySubject) new ProxySubject(); var pair = new InstanceMethodPair(subject, methodInfo); var request = new Request(methodInfo, new object[1] { ProxySubject.EchoValueConst }, Constants.OrganizationId, Constants.InstanceId, Constants.MessageReplyPath); var response = await pair.InvokeAsync(request); Assert.AreEqual(request.CorrelationId, response.CorrelationId); Assert.AreEqual(request.Id, response.RequestId); Assert.AreEqual(ProxySubject.EchoValueConst, response.ReturnValue); Assert.AreEqual(ProxySubject.EchoValueConst, response.GetTypedReturnValue <string>()); }
public static List<InstanceMethodPair> GenerateMethodList(Camera camToCopy) { var result = new List<InstanceMethodPair>(); foreach (var script in camToCopy.gameObject.GetComponents<MonoBehaviour>()) { if (script.enabled) { Type scriptType = script.GetType(); MethodInfo m = scriptType.GetMethod("OnRenderImage", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { typeof(RenderTexture), typeof(RenderTexture) }, null); if (m != null) { InstanceMethodPair pair = new InstanceMethodPair(); pair.Instance = script; pair.Method = m; result.Add(pair); } } } return result; }
public static List <InstanceMethodPair> GenerateMethodList(Camera camToCopy) { var result = new List <InstanceMethodPair>(); foreach (var script in camToCopy.gameObject.GetComponents <MonoBehaviour>()) { if (script.enabled) { Type scriptType = script.GetType(); MethodInfo m = scriptType.GetMethod("OnRenderImage", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { typeof(RenderTexture), typeof(RenderTexture) }, null); if (m != null) { InstanceMethodPair pair = new InstanceMethodPair(); pair.Instance = script; pair.Method = m; result.Add(pair); } } } return(result); }