예제 #1
0
        public void TryBindTypeCastSegmentForSingletonWorks(string identifier, bool caseInsensitive)
        {
            IList <PathSegment> path = new List <PathSegment>
            {
                new SingletonSegment(_customMe)
            };

            bool result = PathParser.TryBindTypeCastSegment(identifier, null, _edmModel, path, new PathParserSettings {
                EnableCaseInsensitive = caseInsensitive
            });

            Assert.True(result);
            Assert.Equal(2, path.Count);
            var typeSegment = Assert.IsType <TypeSegment>(path[1]);

            Assert.Equal("NS.VipCustomer", typeSegment.Identifier);
            Assert.True(typeSegment.IsSingle);
        }
예제 #2
0
        public void TryBindTypeCastSegmentForTypeCastAfterEntitySetWithKeyWorks()
        {
            IList <PathSegment> path = new List <PathSegment>
            {
                new EntitySetSegment(_customers)
            };

            bool result = PathParser.TryBindTypeCastSegment("NS.VipCustomer", "(FirstName={a},LastName={b})", _edmModel, path, PathParserSettings.Default);

            Assert.True(result);
            Assert.Equal(3, path.Count);
            var typeSegment = Assert.IsType <TypeSegment>(path[1]);

            Assert.Equal("Collection(NS.VipCustomer)", typeSegment.Identifier);
            Assert.False(typeSegment.IsSingle);

            var keySegment = Assert.IsType <KeySegment>(path[2]);

            Assert.Equal("FirstName={a},LastName={b}", keySegment.Identifier);
            Assert.Equal(new[] { "FirstName", "LastName" }, keySegment.Values.Keys);
            Assert.Equal(new[] { "{a}", "{b}" }, keySegment.Values.Values);
        }