public void EdmPathExpression()
        {
            var e = new EdmPathExpression("x", "y");

            Assert.IsFalse(e.IsBad(), "e good");
            Assert.AreEqual(EdmExpressionKind.Path, e.ExpressionKind, "e.ExpressionKind");
            Assert.AreEqual(2, e.Path.Count(), "e.Path.Count()");
            var s1 = e.Path.First();

            Assert.AreEqual("x", s1, "s1");
            Assert.AreEqual("y", e.Path.Last(), "e.Path.Last()");

            try
            {
                new EdmPathExpression((string[])null);
                Assert.Fail("exception expected");
            }
            catch (ArgumentNullException)
            {
            }

            var ee = new MutablePathExpression();

            Assert.IsNull(ee.Path, "ee.Path");
            Assert.IsTrue(ee.IsBad(), "Expression is bad.");
            Assert.AreEqual(1, ee.Errors().Count(), "Expression has no errors");
        }
        public void EdmPathExpression()
        {
            var e = new EdmPathExpression("x", "y");
            Assert.IsFalse(e.IsBad(), "e good");
            Assert.AreEqual(EdmExpressionKind.Path, e.ExpressionKind, "e.ExpressionKind");
            Assert.AreEqual(2, e.Path.Count(), "e.Path.Count()");
            var s1 = e.Path.First();
            Assert.AreEqual("x", s1, "s1");
            Assert.AreEqual("y", e.Path.Last(), "e.Path.Last()");

            try
            {
                new EdmPathExpression((string[])null);
                Assert.Fail("exception expected");
            }
            catch (ArgumentNullException)
            {
            }

            var ee = new MutablePathExpression();
            Assert.IsNull(ee.Path, "ee.Path");
            Assert.IsTrue(ee.IsBad(), "Expression is bad.");
            Assert.AreEqual(1, ee.Errors().Count(), "Expression has no errors");
        }