[OLINGO-866] Test and Bugfix for metadata action import serialization
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/6c267645 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/6c267645 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/6c267645 Branch: refs/heads/master Commit: 6c2676452cf5a11efdf57e46df6b56bff847e407 Parents: 1563f95 Author: Christian Amend <[email protected]> Authored: Tue Mar 1 13:50:48 2016 +0100 Committer: Christian Amend <[email protected]> Committed: Tue Mar 1 13:50:48 2016 +0100 ---------------------------------------------------------------------- .../org/apache/olingo/fit/tecsvc/client/BasicITCase.java | 10 ++++++++++ .../serializer/xml/MetadataDocumentXmlSerializer.java | 2 +- .../olingo/server/tecsvc/provider/ContainerProvider.java | 10 ++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6c267645/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java index a45f548..0a34983 100644 --- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BasicITCase.java @@ -69,6 +69,7 @@ import org.apache.olingo.client.api.domain.ClientValue; import org.apache.olingo.client.api.edm.xml.Reference; import org.apache.olingo.client.api.edm.xml.XMLMetadata; import org.apache.olingo.commons.api.edm.Edm; +import org.apache.olingo.commons.api.edm.EdmActionImport; import org.apache.olingo.commons.api.edm.EdmAnnotation; import org.apache.olingo.commons.api.edm.EdmEntitySet; import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException; @@ -159,6 +160,15 @@ public class BasicITCase extends AbstractParamTecSvcITCase { EdmAnnotation annotation = entitySet.getAnnotation(edm.getTerm(new FullQualifiedName("Org.OData.Core.V1", "Description")), null); assertNotNull(annotation); + + EdmActionImport actionImport = edm.getEntityContainer().getActionImport("AIRTString"); + annotations = actionImport.getAnnotations(); + assertNotNull(annotations); + // Just one is necessary to not make the test too strict + assertTrue(annotations.size() > 1); + annotation = + entitySet.getAnnotation(edm.getTerm(new FullQualifiedName("Org.OData.Core.V1", "Description")), null); + assertNotNull(annotation); } @Test http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6c267645/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java index 55c7ede..c867815 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java @@ -597,8 +597,8 @@ public class MetadataDocumentXmlSerializer { writer.writeStartElement(XML_ACTION_IMPORT); writer.writeAttribute(XML_NAME, actionImport.getName()); writer.writeAttribute(XML_ACTION, getAliasedFullQualifiedName(actionImport.getUnboundAction(), false)); - writer.writeEndElement(); appendAnnotations(writer, actionImport); + writer.writeEndElement(); } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/6c267645/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java index 0fa3e78..9f06b89 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java @@ -644,7 +644,7 @@ public class ContainerProvider { new CsdlAnnotation().setTerm("Core.Description") .setExpression(new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String) .setValue("Entity set will be streamed and it contains entities with various properties of " + - "type primitive, collection of primitive, complex and collection of complex")), + "type primitive, collection of primitive, complex and collection of complex")), new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")))); } @@ -659,7 +659,13 @@ public class ContainerProvider { if (name.equals(AIRT_STRING)) { return new CsdlActionImport() .setName(AIRT_STRING) - .setAction(ActionProvider.nameUARTString); + .setAction(ActionProvider.nameUARTString) + .setAnnotations(Arrays.asList(new CsdlAnnotation().setTerm("Core.Description").setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, + "Action Import returns a simple String")), + new CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, "true")) + )); } else if (name.equals(AIRT_COLL_STRING_TWO_PARAM)) { return new CsdlActionImport()
