Example #1
0
        public void ShouldThrowNotImplementedIfTypeIsOpen()
        {
            const string         OpenPropertyName     = "Style";
            var                  token                = new EndPathToken(OpenPropertyName, new RangeVariableToken("a"));
            EntityCollectionNode entityCollectionNode = new EntitySetNode(HardCodedTestModel.GetPaintingsSet());
            SingleValueNode      parentNode           = new EntityRangeVariableReferenceNode("a", new EntityRangeVariable("a", HardCodedTestModel.GetPaintingTypeReference(), entityCollectionNode));
            var                  propertyNode         = EndPathBinder.GeneratePropertyAccessQueryForOpenType(
                token, parentNode);

            propertyNode.ShouldBeSingleValueOpenPropertyAccessQueryNode(OpenPropertyName);
        }
Example #2
0
        public void ShouldThrowIfTypeNotOpen()
        {
            var token = new EndPathToken("Color", new RangeVariableToken("a"));
            EntityCollectionNode entityCollectionNode = new EntitySetNode(HardCodedTestModel.GetDogsSet());
            SingleValueNode      parentNode           = new EntityRangeVariableReferenceNode("a", new EntityRangeVariable("a", HardCodedTestModel.GetPersonTypeReference(), entityCollectionNode));
            Action getQueryNode = () => EndPathBinder.GeneratePropertyAccessQueryForOpenType(
                token, parentNode);

            getQueryNode.ShouldThrow <ODataException>().WithMessage(
                Strings.MetadataBinder_PropertyNotDeclared(parentNode.GetEdmTypeReference().FullName(),
                                                           token.Identifier));
        }
        public void ShouldThrowNotImplementedIfTypeIsOpen()
        {
            const string           OpenPropertyName     = "Style";
            var                    token                = new EndPathToken(OpenPropertyName, new RangeVariableToken("a"));
            CollectionResourceNode entityCollectionNode = new EntitySetNode(HardCodedTestModel.GetPaintingsSet());
            SingleValueNode        parentNode           = new ResourceRangeVariableReferenceNode("a", new ResourceRangeVariable("a", HardCodedTestModel.GetPaintingTypeReference(), entityCollectionNode));

            var state          = new BindingState(this.configuration);
            var metadataBinder = new MetadataBinder(state);
            var endPathBinder  = new EndPathBinder(metadataBinder.Bind, state);
            var propertyNode   = endPathBinder.GeneratePropertyAccessQueryForOpenType(
                token, parentNode);

            propertyNode.ShouldBeSingleValueOpenPropertyAccessQueryNode(OpenPropertyName);
        }
        public void ShouldThrowIfTypeNotOpen()
        {
            var token = new EndPathToken("Color", new RangeVariableToken("a"));
            CollectionResourceNode entityCollectionNode = new EntitySetNode(HardCodedTestModel.GetDogsSet());
            SingleValueNode        parentNode           = new ResourceRangeVariableReferenceNode("a", new ResourceRangeVariable("a", HardCodedTestModel.GetPersonTypeReference(), entityCollectionNode));

            var    state          = new BindingState(this.configuration);
            var    metadataBinder = new MetadataBinder(state);
            var    endPathBinder  = new EndPathBinder(metadataBinder.Bind, state);
            Action getQueryNode   = () => endPathBinder.GeneratePropertyAccessQueryForOpenType(
                token, parentNode);

            getQueryNode.Throws <ODataException>(
                Strings.MetadataBinder_PropertyNotDeclared(parentNode.GetEdmTypeReference().FullName(),
                                                           token.Identifier));
        }
        public void ShouldNotThrowIfTypeNotOpenButAggregateApplied()
        {
            var token = new EndPathToken("Color", new RangeVariableToken("a"));
            CollectionResourceNode entityCollectionNode = new EntitySetNode(HardCodedTestModel.GetDogsSet());
            SingleValueNode        parentNode           = new ResourceRangeVariableReferenceNode("a", new ResourceRangeVariable("a", HardCodedTestModel.GetPersonTypeReference(), entityCollectionNode));

            var state = new BindingState(this.configuration);

            state.AggregatedPropertyNames = new HashSet <EndPathToken> {
                new EndPathToken("Color", new RangeVariableToken("a"))
            };
            var metadataBinder = new MetadataBinder(state);
            var endPathBinder  = new EndPathBinder(metadataBinder.Bind, state);
            var propertyNode   = endPathBinder.GeneratePropertyAccessQueryForOpenType(
                token, parentNode);

            propertyNode.ShouldBeSingleValueOpenPropertyAccessQueryNode("Color");
        }