public void EdmIfExpression() { var e = new EdmIfExpression(new EdmStringConstant("if"), new EdmStringConstant("then"), new EdmStringConstant("else")); Assert.AreEqual(EdmExpressionKind.If, e.ExpressionKind, "e.ExpressionKind"); Assert.AreEqual("if", ((IEdmStringValue)e.TestExpression).Value, "e.TestExpression"); Assert.AreEqual("then", ((IEdmStringValue)e.TrueExpression).Value, "e.TrueExpression"); Assert.AreEqual("else", ((IEdmStringValue)e.FalseExpression).Value, "e.FalseExpression"); Assert.IsFalse(e.IsBad(), "e good"); try { new EdmIfExpression(null, new EdmStringConstant("then"), new EdmStringConstant("else")); Assert.Fail("exception expected"); } catch (ArgumentNullException) { } try { new EdmIfExpression(new EdmStringConstant("if"), null, new EdmStringConstant("else")); Assert.Fail("exception expected"); } catch (ArgumentNullException) { } try { new EdmIfExpression(new EdmStringConstant("if"), new EdmStringConstant("then"), null); Assert.Fail("exception expected"); } catch (ArgumentNullException) { } var ee = new MutableIfExpression(); Assert.IsNull(ee.TestExpression, "ee.TestExpression"); Assert.IsNull(ee.TrueExpression, "ee.TrueExpression"); Assert.IsNull(ee.FalseExpression, "ee.FalseExpression"); Assert.IsTrue(ee.IsBad(), "Expression is bad."); Assert.AreEqual(3, ee.Errors().Count(), "Expression has no errors"); }