예제 #1
0
        public void TestUruchamianiaMetodyGenerycznych()
        {
            var obiekt = new ObiektZMetodami();
            var typ    = obiekt.GetType();

            var module   = GetModule();
            var monoType = module.Types.First(t => t.Name == "ObiektZMetodami");

            // metoda 4 - metoda generyczna - public int Metoda<T>(T t1) - T = DateTime?
            var numerMetody             = 4;
            var monoMethod              = monoType.Methods[numerMetody];
            var pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);

            pobierzObiekty_filtr_do = pobierzObiekty_filtr_do.MakeGenericMethod(typeof(DateTime?));
            var wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, new object[] { null });

            Assert.AreEqual(wynik, numerMetody);

            // metoda 4 - metoda generyczna - public int Metoda<T>(T t1) - T = DateTime
            numerMetody             = 4;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            pobierzObiekty_filtr_do = pobierzObiekty_filtr_do.MakeGenericMethod(typeof(DateTime));
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, new object[] { DateTime.Now });
            Assert.AreEqual(wynik, numerMetody);

            // metoda 5 - metoda generyczna - public int Metoda<T>(T t1, DateTime? data) - T = DateTime
            numerMetody             = 5;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            pobierzObiekty_filtr_do = pobierzObiekty_filtr_do.MakeGenericMethod(typeof(DateTime));
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, new object[] { DateTime.Now, null });
            Assert.AreEqual(wynik, numerMetody);

            // metoda 6 - metoda generyczna - public int Metoda<T>(T t1, DateTime data) - T = DateTime
            numerMetody             = 6;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            pobierzObiekty_filtr_do = pobierzObiekty_filtr_do.MakeGenericMethod(typeof(DateTime));
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, new object[] { DateTime.Now, DateTime.Now });
            Assert.AreEqual(wynik, numerMetody);

            // metoda 7 - metoda generyczna - public int Metoda<T, T2>(T t1, T2 t2, DateTime data) - T = int, T2 = Decimal
            numerMetody             = 7;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            pobierzObiekty_filtr_do = pobierzObiekty_filtr_do.MakeGenericMethod(typeof(int), typeof(Decimal));
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, new object[] { 1, new decimal(2), DateTime.Now });
            Assert.AreEqual(wynik, numerMetody);
        }
예제 #2
0
        public void TestUruchamianiaMetodyStatyczne()
        {
            var obiekt = new ObiektZMetodami();
            var typ    = obiekt.GetType();

            var module   = GetModule();
            var monoType = module.Types.First(t => t.Name == "ObiektZMetodami");

            // metoda 8
            var numerMetody             = 8;
            var monoMethod              = monoType.Methods[numerMetody];
            var pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            var wynik = pobierzObiekty_filtr_do.Wykonaj(null, new object[] { null });

            Assert.AreEqual(wynik, numerMetody);

            // metoda 8
            numerMetody             = 8;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            wynik = pobierzObiekty_filtr_do.Wykonaj(null, new object[] { DateTime.Now });
            Assert.AreEqual(wynik, numerMetody);

            // metoda 9
            numerMetody             = 9;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            wynik = pobierzObiekty_filtr_do.Wykonaj(null, new object[] { DateTime.Now });
            Assert.AreEqual(wynik, numerMetody);

            // metoda 10 public static int MetodaStatyczna<T>(DateTime date, T t1)
            numerMetody             = 10;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            pobierzObiekty_filtr_do = pobierzObiekty_filtr_do.MakeGenericMethod(typeof(Decimal));
            wynik = pobierzObiekty_filtr_do.Wykonaj(null, new object[] { DateTime.Now, new decimal(5), });
            Assert.AreEqual(wynik, numerMetody);


            // metoda 11 public static List<T> MetodaStatyczna<T>(T t1)
            numerMetody             = 11;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            pobierzObiekty_filtr_do = pobierzObiekty_filtr_do.MakeGenericMethod(typeof(Decimal));
            wynik = pobierzObiekty_filtr_do.Wykonaj(null, new object[] { new decimal(5) });
            Assert.IsNull(wynik);
        }
예제 #3
0
        public void TestUruchamianiaMetodyProstych()
        {
            var obiekt = new ObiektZMetodami();
            var typ    = obiekt.GetType();

            var module   = GetModule();
            var monoType = module.Types.First(t => t.Name == "ObiektZMetodami");

            // metoda 0
            var numerMetody             = 0;
            var monoMethod              = monoType.Methods[numerMetody];
            var pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            var wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt);

            Assert.AreEqual(wynik, numerMetody);

            // metoda 1
            numerMetody             = 1;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, new object[] { null });
            Assert.AreEqual(wynik, numerMetody);
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, DateTime.Now);
            Assert.AreEqual(wynik, numerMetody);

            // metoda 2
            numerMetody             = 2;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, new object[] { null });
            Assert.AreEqual(wynik, numerMetody);
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, DateTime.Now);
            Assert.AreEqual(wynik, numerMetody);

            // metoda 3
            numerMetody             = 3;
            monoMethod              = monoType.Methods[numerMetody];
            pobierzObiekty_filtr_do = typ.GetMethod(monoMethod);
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, new object[] { null, DateTime.Now });
            Assert.AreEqual(wynik, numerMetody);
            wynik = pobierzObiekty_filtr_do.Wykonaj(obiekt, DateTime.Now, DateTime.Now);
            Assert.AreEqual(wynik, numerMetody);
        }