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)); }
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>(); }); }
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); }); }