Ejemplo n.º 1
0
        public static void TestMethodParameters()
        {
            // Check default parameters
            var ra = new ClassA();
            int r  = ra.Method5(5);

            Assert.AreEqual(5, r, "r 5");
            r = ra.Method5(i: 15);
            Assert.AreEqual(15, r, "r 15");
            r = ra.Method5(5, 6);
            Assert.AreEqual(11, r, "r 11");
            r = ra.Method5(k: 6);
            Assert.AreEqual(-44, r, "r -44");

            // Check referencing did not change data
            var a = new ClassA();
            var b = a.Method1();
            var c = b.Related;

            a.Method2(b);
            Assert.True(b != null, "b not null");
            Assert.AreEqual(2, b.Number, "b Number 2");
            Assert.True(b.Related != null, "b.Related not null");
            Assert.AreEqual(2, b.Related.Number, "b.Related Number 2");

            Assert.True(c != null, "c not null");
            Assert.AreEqual(1, c.Number, "c Number 1");
            Assert.True(c.Related == null, "c.Related null");

            // Check value local parameter
            var input  = 1;
            var result = a.Method4(input, 4);

            Assert.AreEqual(1, input, "input 1");
            Assert.AreEqual(5, result, "result 5");

            // TEST
            // [#86]
            var di = ClassA.GetDefaultInt();

            Assert.AreEqual(0, di, "di 0");

            // TEST
            // Check  "out parameter"
            // [#85]
            int i;
            var tryResult = ClassA.TryParse("", out i);

            Assert.True(tryResult, "tryResult");
            Assert.AreEqual(3, i, "i 3");
        }