Exemple #1
0
        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);
        }
Exemple #2
0
        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)));
        }
Exemple #3
0
        public void GetStaticMethodDelegateTest()
        {
            //Arrange
            var testType = new MockClassForReflectionSource {
                Property1 = 1
            };

            //Act

            Assert.Throws <NotImplementedException>(() => testType.GetType().GetStaticFunctionDelegate <object, bool>("StaticMethod1"));

            //Assert
        }
Exemple #4
0
        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()));
        }
Exemple #5
0
        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()));
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }