public void EdmCastExpression()
        {
            var e = new EdmCastExpression(new EdmStringConstant("qwerty"), EdmCoreModel.Instance.GetBoolean(false));

            Assert.AreEqual(EdmExpressionKind.Cast, e.ExpressionKind, "e.ExpressionKind");
            Assert.AreEqual("qwerty", ((IEdmStringValue)e.Operand).Value, "((IEdmStringValue)e.Operand).Value");
            Assert.AreEqual("Edm.Boolean", e.Type.FullName(), "e.Type.FullName()");
            Assert.IsFalse(e.IsBad(), "e good");

            try
            {
                new EdmCastExpression(null, EdmCoreModel.Instance.GetBoolean(false));
                Assert.Fail("exception expected.");
            }
            catch (ArgumentNullException)
            {
            }

            try
            {
                new EdmCastExpression(new EdmStringConstant("qwerty"), null);
                Assert.Fail("exception expected.");
            }
            catch (ArgumentNullException)
            {
            }

            var ee = new MutableCastExpression();

            Assert.IsTrue(ee.IsBad(), "Expression is bad.");
            Assert.AreEqual(2, ee.Errors().Count(), "Expression has 2 errors");
        }
        public void EdmCastExpression()
        {
            var e = new EdmCastExpression(new EdmStringConstant("qwerty"), EdmCoreModel.Instance.GetBoolean(false));
            Assert.AreEqual(EdmExpressionKind.Cast, e.ExpressionKind, "e.ExpressionKind");
            Assert.AreEqual("qwerty", ((IEdmStringValue)e.Operand).Value, "((IEdmStringValue)e.Operand).Value");
            Assert.AreEqual("Edm.Boolean", e.Type.FullName(), "e.Type.FullName()");
            Assert.IsFalse(e.IsBad(), "e good");

            try
            {
                new EdmCastExpression(null, EdmCoreModel.Instance.GetBoolean(false));
                Assert.Fail("exception expected.");
            }
            catch (ArgumentNullException)
            {
            }

            try
            {
                new EdmCastExpression(new EdmStringConstant("qwerty"), null);
                Assert.Fail("exception expected.");
            }
            catch (ArgumentNullException)
            {
            }

            var ee = new MutableCastExpression();
            Assert.IsTrue(ee.IsBad(), "Expression is bad.");
            Assert.AreEqual(2, ee.Errors().Count(), "Expression has 2 errors");
        }