public void ConditionalCall_Compile_Val() { var p = Expression.Parameter(typeof(Quz?)); var q = new Quz(); var m1 = CSharpExpression.ConditionalCall(p, typeof(Quz).GetMethod("X")); var f1 = Expression.Lambda <Func <Quz?, int?> >(m1, p); var d1 = f1.Compile(); Assert.AreEqual(42, d1(q)); Assert.IsNull(d1(null)); var m2 = CSharpExpression.ConditionalCall(p, typeof(Quz).GetMethod("N")); var f2 = Expression.Lambda <Func <Quz?, int?> >(m2, p); var d2 = f2.Compile(); Assert.AreEqual(42, d2(q)); Assert.IsNull(d2(null)); var m3 = CSharpExpression.ConditionalCall(p, typeof(Quz).GetMethod("S")); var f3 = Expression.Lambda <Func <Quz?, string> >(m3, p); var d3 = f3.Compile(); Assert.AreEqual("bar", d3(q)); Assert.IsNull(d3(null)); }
public void ConditionalMember_Compile_Field_Val() { var p = Expression.Parameter(typeof(Quz?)); var q = new Quz(false); var m1 = CSharpExpression.ConditionalField(p, "Y"); var f1 = Expression.Lambda <Func <Quz?, int?> >(m1, p); var d1 = f1.Compile(); Assert.AreEqual(42, d1(q)); Assert.IsNull(d1(null)); var m2 = CSharpExpression.ConditionalField(p, "O"); var f2 = Expression.Lambda <Func <Quz?, int?> >(m2, p); var d2 = f2.Compile(); Assert.AreEqual(42, d2(q)); Assert.IsNull(d2(null)); var m3 = CSharpExpression.ConditionalField(p, "T"); var f3 = Expression.Lambda <Func <Quz?, string> >(m3, p); var d3 = f3.Compile(); Assert.AreEqual("bar", d3(q)); Assert.IsNull(d3(null)); }
public void ConditionalCall_Compile_Val() { var p = Expression.Parameter(typeof(Quz?)); var q = new Quz(); var m1 = CSharpExpression.ConditionalCall(p, typeof(Quz).GetMethod("X")); var f1 = Expression.Lambda<Func<Quz?, int?>>(m1, p); var d1 = f1.Compile(); Assert.AreEqual(42, d1(q)); Assert.IsNull(d1(null)); var m2 = CSharpExpression.ConditionalCall(p, typeof(Quz).GetMethod("N")); var f2 = Expression.Lambda<Func<Quz?, int?>>(m2, p); var d2 = f2.Compile(); Assert.AreEqual(42, d2(q)); Assert.IsNull(d2(null)); var m3 = CSharpExpression.ConditionalCall(p, typeof(Quz).GetMethod("S")); var f3 = Expression.Lambda<Func<Quz?, string>>(m3, p); var d3 = f3.Compile(); Assert.AreEqual("bar", d3(q)); Assert.IsNull(d3(null)); }
public void ConditionalMember_Compile_Field_Val() { var p = Expression.Parameter(typeof(Quz?)); var q = new Quz(false); var m1 = CSharpExpression.ConditionalField(p, "Y"); var f1 = Expression.Lambda<Func<Quz?, int?>>(m1, p); var d1 = f1.Compile(); Assert.AreEqual(42, d1(q)); Assert.IsNull(d1(null)); var m2 = CSharpExpression.ConditionalField(p, "O"); var f2 = Expression.Lambda<Func<Quz?, int?>>(m2, p); var d2 = f2.Compile(); Assert.AreEqual(42, d2(q)); Assert.IsNull(d2(null)); var m3 = CSharpExpression.ConditionalField(p, "T"); var f3 = Expression.Lambda<Func<Quz?, string>>(m3, p); var d3 = f3.Compile(); Assert.AreEqual("bar", d3(q)); Assert.IsNull(d3(null)); }