コード例 #1
0
ファイル: InstanceTarget.cs プロジェクト: sk8tz/Mirror
        public R ToCall <R>(
            string methodName,
            object first,
            params object[] rest)
        {
            var parameters = MethodInvoke.NormalizeParameters(first, rest);

            return((R)MethodInvoke.InstanceMethod(@object, methodName, parameters).Value);
        }
コード例 #2
0
ファイル: InstanceTarget.cs プロジェクト: sk8tz/Mirror
        public void ToCall(
            string methodName,
            object first,
            params object[] rest)
        {
            var parameters = MethodInvoke.NormalizeParameters(first, rest);

            MethodInvoke.InstanceMethod(@object, methodName, parameters);
        }
コード例 #3
0
ファイル: MethodInvokeTests.cs プロジェクト: sk8tz/Mirror
        public void CanCallInstanceMethodWithoutArgsButWithResult()
        {
            // Arrange
            // Act
            var result = MethodInvoke.InstanceMethod(target, "InstanceStringMethodWithoutArgs", new object[0]);

            // Assert
            Assert.True(result.HasResult);
            Assert.Equal("successInstanceStringMethodWithoutArgs", result.Value);
        }
コード例 #4
0
ファイル: MethodInvokeTests.cs プロジェクト: sk8tz/Mirror
        public void CanCallInstanceMethodWithoutArgsAndWithoutResult()
        {
            // Arrange
            // Act
            var result = MethodInvoke.InstanceMethod(target, "InstanceVoidMethodWithoutArgs", new object[0]);

            // Assert
            Assert.False(result.HasResult);
            Assert.Null(result.Value);
        }
コード例 #5
0
ファイル: MethodInvokeTests.cs プロジェクト: sk8tz/Mirror
        public void CanCallInstanceMethodWithArgsAndWithResult()
        {
            // Arrange
            // Act
            var result = MethodInvoke.InstanceMethod(target, "InstanceStringMethodWithArgs", new object[] { trackable });

            // Assert
            Assert.True(result.HasResult);
            Assert.Equal("success", result.Value);
            trackable.Received(1).Touch();
        }
コード例 #6
0
ファイル: MethodInvokeTests.cs プロジェクト: sk8tz/Mirror
        public void CanCallInstanceMethodWithArgsButWithoutResult()
        {
            // Arrange
            // Act
            var result = MethodInvoke.InstanceMethod(target, "InstanceVoidMethodWithArgs", new object[] { trackable });

            // Assert
            Assert.False(result.HasResult);
            Assert.Null(result.Value);
            trackable.Received(1).Touch();
        }
コード例 #7
0
ファイル: MethodInvokeTests.cs プロジェクト: sk8tz/Mirror
        public void CanCallMethodWithNullArgs()
        {
            // Arrange
            // Act
            var result = (string)MethodInvoke
                         .InstanceMethod(target, "InstanceStringMethodWhichIsOkayWhenArgIsNull", new object[] { null })
                         .Value;

            // Assert
            Assert.Equal(result, "Arg is null");
        }
コード例 #8
0
ファイル: MethodInvokeTests.cs プロジェクト: sk8tz/Mirror
        public void CallingMethodWithNullForValueTypeParameterThrowsException()
        {
            // Arrange
            // Act
            var caught = Assert.Throws <InvalidOperationException>(() =>
                                                                   MethodInvoke.InstanceMethod(
                                                                       target,
                                                                       "InstanceVoidMethodWhichIsNotOkayWhenArgIsNull",
                                                                       new object[] { null }));

            // Assert
            Assert.Equal("Didn't find a method mathing passed parameters.", caught.Message);
        }
コード例 #9
0
ファイル: InstanceTarget.cs プロジェクト: sk8tz/Mirror
 public R ToCall <R>(string methodName)
 {
     return((R)MethodInvoke.InstanceMethod(@object, methodName, new object[0]).Value);
 }
コード例 #10
0
ファイル: InstanceTarget.cs プロジェクト: sk8tz/Mirror
 public void ToCall(string methodName)
 {
     MethodInvoke.InstanceMethod(@object, methodName, new object[0]);
 }