Repository: olingo-odata4 Updated Branches: refs/heads/OLINGO-423_EdmxReferenceHandling e3121831b -> fd033d7de
[OLINGO-423] Added convenience and tests Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/fd033d7d Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/fd033d7d Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/fd033d7d Branch: refs/heads/OLINGO-423_EdmxReferenceHandling Commit: fd033d7deccc833a2df2cb42530079bd2a7deea5 Parents: e312183 Author: Michael Bolz <[email protected]> Authored: Mon Oct 13 15:23:22 2014 +0200 Committer: Michael Bolz <[email protected]> Committed: Mon Oct 13 15:23:22 2014 +0200 ---------------------------------------------------------------------- .../EdmxReferenceIncludeAnnotationImpl.java | 4 +++ .../core/edmx/EdmxReferenceIncludeImpl.java | 4 +++ .../serializer/xml/MetadataDocumentTest.java | 35 +++++++++++++++++--- 3 files changed, 38 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd033d7d/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeAnnotationImpl.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeAnnotationImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeAnnotationImpl.java index 1a4d7b4..575c115 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeAnnotationImpl.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeAnnotationImpl.java @@ -34,6 +34,10 @@ public class EdmxReferenceIncludeAnnotationImpl implements EdmxReferenceIncludeA this.targetNamespace = targetNamespace; } + public EdmxReferenceIncludeAnnotationImpl(String termNamespace) { + this(termNamespace, null, null); + } + @Override public String getTermNamespace() { return termNamespace; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd033d7d/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeImpl.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeImpl.java index 0da95df..0a4ecd3 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeImpl.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edmx/EdmxReferenceIncludeImpl.java @@ -31,6 +31,10 @@ public class EdmxReferenceIncludeImpl implements EdmxReferenceInclude { this.alias = alias; } + public EdmxReferenceIncludeImpl(String namespace) { + this(namespace, null); + } + @Override public String getNamespace() { return namespace; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fd033d7d/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java index 85ac1e8..2856cc4 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java @@ -117,11 +117,26 @@ public class MetadataDocumentTest { new EdmxReferenceIncludeAnnotationImpl("ReferenceWithAllTermNs.5", "Q.5", "TargetNS.5")); edmxReferences.add(referenceWithAll); + EdmxReferenceImpl referenceWithAllAndNull = new EdmxReferenceImpl( + URI.create("http://localhost/odata/odata/v4.0/referenceWithAllAndNull")); + referenceWithAllAndNull.addInclude(new EdmxReferenceIncludeImpl("referenceWithAllAndNull.1")); + referenceWithAllAndNull.addInclude(new EdmxReferenceIncludeImpl("referenceWithAllAndNull.2", null)); + referenceWithAllAndNull.addIncludeAnnotation( + new EdmxReferenceIncludeAnnotationImpl("ReferenceWithAllTermNs.4")); + referenceWithAllAndNull.addIncludeAnnotation( + new EdmxReferenceIncludeAnnotationImpl("ReferenceWithAllTermAndNullNs.5", "Q.5", null)); + referenceWithAllAndNull.addIncludeAnnotation( + new EdmxReferenceIncludeAnnotationImpl("ReferenceWithAllTermAndNullNs.6", null, "TargetNS")); + referenceWithAllAndNull.addIncludeAnnotation( + new EdmxReferenceIncludeAnnotationImpl("ReferenceWithAllTermAndNullNs.7", null, null)); + edmxReferences.add(referenceWithAllAndNull); + ServiceMetadata serviceMetadata = new ServiceMetadataImpl(ODataServiceVersion.V40, new TestMetadataProvider(), edmxReferences); InputStream metadata = serializer.metadataDocument(serviceMetadata); assertNotNull(metadata); + String metadataString = IOUtils.toString(metadata); // edmx reference assertTrue(metadataString.contains( @@ -144,13 +159,23 @@ public class MetadataDocumentTest { "</edmx:Reference>")); assertTrue(metadataString.contains( "<edmx:Reference Uri=\"http://localhost/odata/odata/v4.0/referenceWithAll\">" + - "<edmx:Include Namespace=\"ReferenceWithAll.1\" Alias=\"Core1\"/>" + - "<edmx:Include Namespace=\"ReferenceWithAll.2\" Alias=\"Core2\"/>" + - "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.4\" " + + "<edmx:Include Namespace=\"ReferenceWithAll.1\" Alias=\"Core1\"/>" + + "<edmx:Include Namespace=\"ReferenceWithAll.2\" Alias=\"Core2\"/>" + + "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.4\" " + "Qualifier=\"Q.4\" TargetNamespace=\"TargetNS.4\"/>" + - "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.5\" " + + "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.5\" " + "Qualifier=\"Q.5\" TargetNamespace=\"TargetNS.5\"/>" + - "</edmx:Reference>")); + "</edmx:Reference>")); + assertTrue(metadataString.contains( + "<edmx:Reference Uri=\"http://localhost/odata/odata/v4.0/referenceWithAllAndNull\">" + + "<edmx:Include Namespace=\"referenceWithAllAndNull.1\"/>" + + "<edmx:Include Namespace=\"referenceWithAllAndNull.2\"/>" + + "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermNs.4\"/>" + + "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermAndNullNs.5\" Qualifier=\"Q.5\"/>" + + "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermAndNullNs.6\" " + + "TargetNamespace=\"TargetNS\"/>" + + "<edmx:IncludeAnnotations TermNamespace=\"ReferenceWithAllTermAndNullNs.7\"/>" + + "</edmx:Reference>")); } @Test
