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

            Assert.AreEqual(EdmExpressionKind.IsType, 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 EdmIsTypeExpression(null, EdmCoreModel.Instance.GetBoolean(false));
                Assert.Fail("exception expected");
            }
            catch (ArgumentNullException)
            {
            }

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

            var ee = new MutableIsTypeExpression();

            Assert.IsNull(ee.Operand, "ee.Operand");
            Assert.IsNull(ee.Type, "ee.Type");
            Assert.IsTrue(ee.IsBad(), "Expression is bad.");
            Assert.AreEqual(2, ee.Errors().Count(), "Expression has no errors");
        }
        public void EdmIsTypeExpression()
        {
            var e = new EdmIsTypeExpression(new EdmStringConstant("qwerty"), EdmCoreModel.Instance.GetBoolean(false));
            Assert.AreEqual(EdmExpressionKind.IsType, 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 EdmIsTypeExpression(null, EdmCoreModel.Instance.GetBoolean(false));
                Assert.Fail("exception expected");
            }
            catch (ArgumentNullException)
            {
            }

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

            var ee = new MutableIsTypeExpression();
            Assert.IsNull(ee.Operand, "ee.Operand");
            Assert.IsNull(ee.Type, "ee.Type");
            Assert.IsTrue(ee.IsBad(), "Expression is bad.");
            Assert.AreEqual(2, ee.Errors().Count(), "Expression has no errors");
        }