public void GetInstanceMethodDelegate1() { //Arrange var testClass = new MockClassForReflectionSource { Property1 = 1 }; var testClass1 = new MockClassForReflectionSource { Property1 = 1 }; //Act var method = testClass.GetType().GetInvoker("InstanceMethod1", typeof(int), typeof(object)); method(testClass, new object[] { 10, testClass }); method(testClass, new object[] { 100, testClass1 }); //Assert Assert.AreEqual(10, testClass.Property1); Assert.AreEqual(100, testClass1.Property1); }
public void GetInstanceMethodDelegate_no_method_found_wrong_types1() { //Arrange var testClass = new MockClassForReflectionSource { Property1 = 1 }; //Act //Assert Assert.Throws <MissingMethodException>(() => testClass.GetType().GetInvoker("InstanceMethod1", testClass.GetType(), typeof(bool))); }
public void GetStaticMethodDelegateTest() { //Arrange var testType = new MockClassForReflectionSource { Property1 = 1 }; //Act Assert.Throws <NotImplementedException>(() => testType.GetType().GetStaticFunctionDelegate <object, bool>("StaticMethod1")); //Assert }
public void GetInstanceMethodDelegate_empty_method_name() { //Arrange var testClass = new MockClassForReflectionSource { Property1 = 1 }; //Act //Assert Assert.Throws <ArgumentNullException>(() => testClass.GetType().GetInvoker(string.Empty, typeof(int), testClass.GetType())); }
public void GetInstansePropertyDelegateTest() { //Arrange var testType = new MockClassForReflectionSource { Property1 = 1 }; //Act var pDelegate = testType.GetType().GetInstancePropertyDelegate <int>("Property1"); var value = pDelegate(testType); //Assert Assert.AreEqual(1, value); }
public void GetInstanceMethodDelegate_no_parameters() { //Arrange var testClass = new MockClassForReflectionSource { Property1 = 1 }; //Act var method = testClass.GetType().GetInvoker("InstanceMethod3"); method(testClass, new object[] {}); //Assert Assert.AreEqual(-1, testClass.Property1); }
public void GetInstanceAsyncMethodDelegate_method_returning_task_int() { //Arrange var i = 0; var j = 0; var testClass = new MockClassForReflectionSource { Property1 = 1 }; //Act var method = testClass.GetType().GetAsyncInvoker("AsyncMethod1", typeof(Action)); var task1 = method(testClass, new object[] { new Action(() => i = 10) }); var task2 = method(testClass, new object[] { new Action(() => j = 100) }); Task.WaitAll(task1, task2); //Assert Assert.AreEqual(10, i); Assert.AreEqual(100, j); }
public void GetInstanceMethodDelegate() { //Arrange var i = 0; var j = 0; var testClass = new MockClassForReflectionSource { Property1 = 1 }; //Act var method = testClass.GetType().GetInvoker("InstanceMethod2", typeof(Action)); method(testClass, new object[] { new Action(() => i = 10) }); method(testClass, new object[] { new Action(() => j = 100) }); //Assert Assert.AreEqual(10, i); Assert.AreEqual(100, j); }
public void GetInstanceMethodDelegate_null_type() { //Arrange var testClass = new MockClassForReflectionSource { Property1 = 1 }; //Act //Assert Assert.Throws <ArgumentNullException>(() => TypeExtensions.GetInvoker(null, "InstanceMethod1", typeof(int), testClass.GetType())); }