コード例 #1
0
        public void CheckTest()
        {
            var c = new Class3();

            Assert.AreEqual(true, c.Check(c.a == 1, c.b == 2, c.c == "3", c.d == "4", c.E == 5, c.F == 6).All(true));
            Assert.AreEqual(true, c.Check(c.a == 1, c.b == 2, c.c == "3", c.d == "4", c.E == 5, c.F == 6).Any(true));
            Assert.AreEqual(true, c.Check(c.a == 2, c.b == 3, c.c == "4", c.d == "5", c.E == 6, c.F == 7).All(false));
            Assert.AreEqual(true, c.Check(c.a == 2, c.b == 3, c.c == "4", c.d == "5", c.E == 6, c.F == 7).Any(false));
        }
コード例 #2
0
        public void Cast_Test()
        {
            var nullClass2 = null as Class2;
            var nullClass1 = nullClass2.Cast <Class1>();

            Assert.AreEqual(nullClass1, null);
            Assert.AreEqual(nullClass2, null);

            Class1 class3 = new Class3();
            { var result = class3.Cast <Class1>(); }
            Class2 class2 = new Class2();

            Assert.ThrowsException <InvalidCastException>(() => { class2.Cast <Class3>(); });
            Assert.ThrowsException <InvalidCastException>(() => { var a = (int)(object)class2; });
            Assert.ThrowsException <InvalidCastException>(() => { var a = class2.Cast <int>(); });
            Assert.ThrowsException <InvalidCastException>(() => { class2.Cast <short>(); });
            Assert.ThrowsException <InvalidCastException>(() => { class2.Cast <double>(); });
            Assert.ThrowsException <InvalidCastException>(() => { class2.Cast <char>(); });
        }
コード例 #3
0
        public void CastTo_Test()
        {
            // все это дело - проверить на cast+присваивание, а не по отдельности.
            // А остальные паттерны я делать буду уже в Rider.

            var nullClass2 = null as Class2;
            //var nullClass1 = nullClass2.CastTo<Class1>(out nullClass1); // у nullClass1 тип пока что неопределен (var), поэтому cannot use local variable nullClass1 before it is declared.
            Class1 nullClass1 = nullClass2.CastTo(out nullClass1); // а вот так вот можно

            Assert.AreEqual(nullClass1, null);
            Assert.AreEqual(nullClass2, null);

            Class1 class3 = new Class3();
            { class3.CastTo <Class1>(out var r); }//так тоже можно
            Class2 class2 = new Class2();

            Assert.ThrowsException <InvalidCastException>(() => { class2.CastTo <Class3>(out var res); });
            Assert.ThrowsException <InvalidCastException>(() => { class2.CastTo <int>(out var res); });
            Assert.ThrowsException <InvalidCastException>(() => { class2.CastTo <double>(out var r); });
            Assert.ThrowsException <InvalidCastException>(() => { class2.CastTo <short>(out var r); });
            Assert.ThrowsException <InvalidCastException>(() => { class2.CastTo <DateTime>(out var r); });
            Assert.ThrowsException <InvalidCastException>(() => { class2.CastTo <char>(out var r); });
        }