You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2014/01/28 15:47:51 UTC
git commit: [OLINGO-62] more tests
Updated Branches:
refs/heads/master 8577d29d7 -> ab6dff292
[OLINGO-62] more tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/commit/ab6dff29
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/tree/ab6dff29
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/diff/ab6dff29
Branch: refs/heads/master
Commit: ab6dff2926e2c9a206782207fd47802b6d884fc2
Parents: 8577d29
Author: Christian Amend <ch...@apache.org>
Authored: Tue Jan 28 15:46:25 2014 +0100
Committer: Christian Amend <ch...@apache.org>
Committed: Tue Jan 28 15:46:25 2014 +0100
----------------------------------------------------------------------
.../core/edm/provider/EdmEntitySetInfoImpl.java | 3 +-
.../edm/provider/EdmFunctionImportInfoImpl.java | 3 +-
.../edm/provider/EdmServiceMetadataImpl.java | 52 ++++-
.../core/edm/provider/EdmSingletonInfoImpl.java | 3 +-
.../edm/provider/EdmEntitySetInfoImplTest.java | 51 +++++
.../provider/EdmFunctionImportInfoImplTest.java | 50 +++++
.../core/edm/provider/EdmMemberImplTest.java | 38 ++++
.../edm/provider/EdmReturnTypeImplTest.java | 103 +++++++++-
.../provider/EdmServiceMetadataImplTest.java | 188 +++++++++++++++++++
.../edm/provider/EdmSingletonInfoImplTest.java | 51 +++++
10 files changed, 527 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImpl.java
index 9fee4cd..c85a253 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImpl.java
@@ -21,6 +21,7 @@ package org.apache.olingo.odata4.commons.core.edm.provider;
import java.net.URI;
import org.apache.olingo.odata4.commons.api.edm.EdmEntitySetInfo;
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainer;
import org.apache.olingo.odata4.commons.api.edm.provider.EntitySet;
@@ -46,7 +47,7 @@ public class EdmEntitySetInfoImpl implements EdmEntitySetInfo {
@Override
public URI getEntitySetUri() {
- return null;
+ throw new EdmException("Not yet implemented");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImpl.java
index e782956..9655b09 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImpl.java
@@ -20,6 +20,7 @@ package org.apache.olingo.odata4.commons.core.edm.provider;
import java.net.URI;
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
import org.apache.olingo.odata4.commons.api.edm.EdmFunctionImportInfo;
import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainer;
import org.apache.olingo.odata4.commons.api.edm.provider.FunctionImport;
@@ -46,7 +47,7 @@ public class EdmFunctionImportInfoImpl implements EdmFunctionImportInfo {
@Override
public URI getFunctionImportUri() {
- return null;
+ throw new EdmException("Not yet implemented");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java
index 01aed04..cbf42ff 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImpl.java
@@ -42,6 +42,7 @@ public class EdmServiceMetadataImpl implements EdmServiceMetadata {
private ArrayList<EdmEntitySetInfo> entitySetInfos;
private ArrayList<EdmFunctionImportInfo> functionImportInfos;
private ArrayList<EdmSingletonInfo> singletonInfos;
+ private List<Schema> schemas;
public EdmServiceMetadataImpl(final EdmProvider provider) {
this.provider = provider;
@@ -62,10 +63,21 @@ public class EdmServiceMetadataImpl implements EdmServiceMetadata {
if (entitySetInfos == null) {
try {
entitySetInfos = new ArrayList<EdmEntitySetInfo>();
- for (Schema schema : provider.getSchemas()) {
+ if (schemas == null) {
+ schemas = provider.getSchemas();
+ if (schemas == null) {
+ throw new EdmException("Provider doe not define any schemas.");
+ }
+ }
+ for (Schema schema : schemas) {
EntityContainer entityContainer = schema.getEntityContainer();
- for (EntitySet set : entityContainer.getEntitySets()) {
- entitySetInfos.add(new EdmEntitySetInfoImpl(entityContainer, set));
+ if (entityContainer != null) {
+ List<EntitySet> entitySets = entityContainer.getEntitySets();
+ if (entitySets != null) {
+ for (EntitySet set : entitySets) {
+ entitySetInfos.add(new EdmEntitySetInfoImpl(entityContainer, set));
+ }
+ }
}
}
} catch (ODataException e) {
@@ -80,10 +92,21 @@ public class EdmServiceMetadataImpl implements EdmServiceMetadata {
if (singletonInfos == null) {
try {
singletonInfos = new ArrayList<EdmSingletonInfo>();
- for (Schema schema : provider.getSchemas()) {
+ if (schemas == null) {
+ schemas = provider.getSchemas();
+ if (schemas == null) {
+ throw new EdmException("Provider doe not define any schemas.");
+ }
+ }
+ for (Schema schema : schemas) {
EntityContainer entityContainer = schema.getEntityContainer();
- for (Singleton singleton : entityContainer.getSingletons()) {
- singletonInfos.add(new EdmSingletonInfoImpl(entityContainer, singleton));
+ if (entityContainer != null) {
+ List<Singleton> singletons = entityContainer.getSingletons();
+ if (singletons != null) {
+ for (Singleton singleton : singletons) {
+ singletonInfos.add(new EdmSingletonInfoImpl(entityContainer, singleton));
+ }
+ }
}
}
} catch (ODataException e) {
@@ -98,10 +121,21 @@ public class EdmServiceMetadataImpl implements EdmServiceMetadata {
if (functionImportInfos == null) {
try {
functionImportInfos = new ArrayList<EdmFunctionImportInfo>();
- for (Schema schema : provider.getSchemas()) {
+ if (schemas == null) {
+ schemas = provider.getSchemas();
+ if (schemas == null) {
+ throw new EdmException("Provider doe not define any schemas.");
+ }
+ }
+ for (Schema schema : schemas) {
EntityContainer entityContainer = schema.getEntityContainer();
- for (FunctionImport functionImport : entityContainer.getFunctionImports()) {
- functionImportInfos.add(new EdmFunctionImportInfoImpl(entityContainer, functionImport));
+ if (entityContainer != null) {
+ List<FunctionImport> functionImports = entityContainer.getFunctionImports();
+ if (functionImports != null) {
+ for (FunctionImport functionImport : functionImports) {
+ functionImportInfos.add(new EdmFunctionImportInfoImpl(entityContainer, functionImport));
+ }
+ }
}
}
} catch (ODataException e) {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImpl.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImpl.java b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImpl.java
index b96dbbe..512ddaf 100644
--- a/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImpl.java
+++ b/odata4-lib/odata4-commons-core/src/main/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImpl.java
@@ -20,6 +20,7 @@ package org.apache.olingo.odata4.commons.core.edm.provider;
import java.net.URI;
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
import org.apache.olingo.odata4.commons.api.edm.EdmSingletonInfo;
import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainer;
import org.apache.olingo.odata4.commons.api.edm.provider.Singleton;
@@ -46,7 +47,7 @@ public class EdmSingletonInfoImpl implements EdmSingletonInfo {
@Override
public URI getEntitySetUri() {
- return null;
+ throw new EdmException("Not yet implemented");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImplTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImplTest.java b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImplTest.java
new file mode 100644
index 0000000..a8d3be3
--- /dev/null
+++ b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmEntitySetInfoImplTest.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata4.commons.core.edm.provider;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmEntitySetInfo;
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
+import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.odata4.commons.api.edm.provider.EntitySet;
+import org.junit.Test;
+
+public class EdmEntitySetInfoImplTest {
+
+ @Test
+ public void entitySetTest() {
+ EntitySet providerEntitySet = new EntitySet().setName("name");
+ EntityContainer providerContainer = new EntityContainer().setName("container");
+
+ EdmEntitySetInfo info = new EdmEntitySetInfoImpl(providerContainer, providerEntitySet);
+
+ assertEquals("name", info.getEntitySetName());
+ assertEquals("container", info.getEntityContainerName());
+ }
+
+ @Test(expected = EdmException.class)
+ public void getUriTest() {
+ EntitySet providerEntitySet = new EntitySet().setName("name");
+ EntityContainer providerContainer = new EntityContainer().setName("container");
+
+ EdmEntitySetInfo info = new EdmEntitySetInfoImpl(providerContainer, providerEntitySet);
+ info.getEntitySetUri();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImplTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImplTest.java b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImplTest.java
new file mode 100644
index 0000000..bec40d3
--- /dev/null
+++ b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmFunctionImportInfoImplTest.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata4.commons.core.edm.provider;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
+import org.apache.olingo.odata4.commons.api.edm.EdmFunctionImportInfo;
+import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.odata4.commons.api.edm.provider.FunctionImport;
+import org.junit.Test;
+
+public class EdmFunctionImportInfoImplTest {
+
+ @Test
+ public void functionImportTest() {
+ FunctionImport providerFunctionImport = new FunctionImport().setName("name");
+ EntityContainer providerContainer = new EntityContainer().setName("container");
+
+ EdmFunctionImportInfo info = new EdmFunctionImportInfoImpl(providerContainer, providerFunctionImport);
+
+ assertEquals("name", info.getFunctionImportName());
+ assertEquals("container", info.getEntityContainerName());
+ }
+
+ @Test(expected = EdmException.class)
+ public void getUriTest() {
+ FunctionImport providerFunctionImport = new FunctionImport().setName("name");
+ EntityContainer providerContainer = new EntityContainer().setName("container");
+
+ EdmFunctionImportInfo info = new EdmFunctionImportInfoImpl(providerContainer, providerFunctionImport);
+ info.getFunctionImportUri();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmMemberImplTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmMemberImplTest.java b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmMemberImplTest.java
new file mode 100644
index 0000000..67bebf0
--- /dev/null
+++ b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmMemberImplTest.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata4.commons.core.edm.provider;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+
+import org.apache.olingo.odata4.commons.api.edm.provider.EnumMember;
+import org.junit.Test;
+
+public class EdmMemberImplTest {
+
+ @Test
+ public void enumMember() {
+ EnumMember member = new EnumMember().setName("name").setValue("value");
+ EdmMemberImpl memberImpl = new EdmMemberImpl(mock(EdmProviderImpl.class), member);
+
+ assertEquals("name", memberImpl.getName());
+ assertEquals("value", memberImpl.getValue());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmReturnTypeImplTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmReturnTypeImplTest.java b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmReturnTypeImplTest.java
index e70a133..8cabaaf 100644
--- a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmReturnTypeImplTest.java
+++ b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmReturnTypeImplTest.java
@@ -18,14 +18,111 @@
******************************************************************************/
package org.apache.olingo.odata4.commons.core.edm.provider;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.*;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmComplexType;
+import org.apache.olingo.odata4.commons.api.edm.EdmEntityType;
+import org.apache.olingo.odata4.commons.api.edm.EdmEnumType;
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
+import org.apache.olingo.odata4.commons.api.edm.EdmReturnType;
+import org.apache.olingo.odata4.commons.api.edm.EdmType;
+import org.apache.olingo.odata4.commons.api.edm.EdmTypeDefinition;
+import org.apache.olingo.odata4.commons.api.edm.provider.FullQualifiedName;
import org.apache.olingo.odata4.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.odata4.commons.core.edm.primitivetype.EdmPrimitiveTypeKind;
import org.junit.Test;
public class EdmReturnTypeImplTest {
@Test
- public void primitiveReturnType(){
+ public void primitiveReturnType() {
+ ReturnType providerType = new ReturnType().setType(new FullQualifiedName("Edm", "String"));
+
+ EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
+
+ assertEquals(EdmPrimitiveTypeKind.String.getEdmPrimitiveTypeInstance(), typeImpl.getType());
+ assertFalse(typeImpl.isCollection());
+
+ assertNull(typeImpl.getPrecision());
+ assertNull(typeImpl.getMaxLength());
+ assertNull(typeImpl.getScale());
+ assertNull(typeImpl.isNullable());
+ }
+
+ @Test
+ public void primitiveCollectionReturnType() {
+ ReturnType providerType = new ReturnType().setType(new FullQualifiedName("Edm", "String")).setCollection(true);
+
+ EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
+
+ assertEquals(EdmPrimitiveTypeKind.String.getEdmPrimitiveTypeInstance(), typeImpl.getType());
+ assertTrue(typeImpl.isCollection());
+ }
+
+ @Test(expected = EdmException.class)
+ public void invalidPrimitiveType() {
+ ReturnType providerType = new ReturnType().setType(new FullQualifiedName("Edm", "wrong")).setCollection(true);
+ EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
+ typeImpl.getType();
+ }
+
+ @Test
+ public void complexType() {
+ EdmProviderImpl mock = mock(EdmProviderImpl.class);
+ FullQualifiedName baseType = new FullQualifiedName("namespace", "type");
+ EdmComplexType edmType = mock(EdmComplexType.class);
+ when(mock.getComplexType(baseType)).thenReturn(edmType);
+ ReturnType providerType = new ReturnType().setType(baseType);
+ EdmReturnType typeImpl = new EdmReturnTypeImpl(mock, providerType);
+ EdmType returnedType = typeImpl.getType();
+ assertEquals(edmType, returnedType);
+ }
+
+ @Test
+ public void entityType() {
+ EdmProviderImpl mock = mock(EdmProviderImpl.class);
+ FullQualifiedName baseType = new FullQualifiedName("namespace", "type");
+ EdmEntityType edmType = mock(EdmEntityType.class);
+ when(mock.getEntityType(baseType)).thenReturn(edmType);
+ ReturnType providerType = new ReturnType().setType(baseType);
+ EdmReturnType typeImpl = new EdmReturnTypeImpl(mock, providerType);
+ EdmType returnedType = typeImpl.getType();
+ assertEquals(edmType, returnedType);
+ }
+
+ @Test
+ public void enumType() {
+ EdmProviderImpl mock = mock(EdmProviderImpl.class);
+ FullQualifiedName baseType = new FullQualifiedName("namespace", "type");
+ EdmEnumType edmType = mock(EdmEnumType.class);
+ when(mock.getEnumType(baseType)).thenReturn(edmType);
+ ReturnType providerType = new ReturnType().setType(baseType);
+ EdmReturnType typeImpl = new EdmReturnTypeImpl(mock, providerType);
+ EdmType returnedType = typeImpl.getType();
+ assertEquals(edmType, returnedType);
}
-
-
+
+ @Test
+ public void typeDefinition() {
+ EdmProviderImpl mock = mock(EdmProviderImpl.class);
+ FullQualifiedName baseType = new FullQualifiedName("namespace", "type");
+ EdmTypeDefinition edmType = mock(EdmTypeDefinition.class);
+ when(mock.getTypeDefinition(baseType)).thenReturn(edmType);
+ ReturnType providerType = new ReturnType().setType(baseType);
+ EdmReturnType typeImpl = new EdmReturnTypeImpl(mock, providerType);
+ EdmType returnedType = typeImpl.getType();
+ assertEquals(edmType, returnedType);
+ }
+
+ @Test(expected = EdmException.class)
+ public void invalidType() {
+ ReturnType providerType = new ReturnType().setType(new FullQualifiedName("wrong", "wrong"));
+ EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
+ typeImpl.getType();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImplTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImplTest.java b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImplTest.java
new file mode 100644
index 0000000..17b70a0
--- /dev/null
+++ b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmServiceMetadataImplTest.java
@@ -0,0 +1,188 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata4.commons.core.edm.provider;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmEntitySetInfo;
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
+import org.apache.olingo.odata4.commons.api.edm.EdmFunctionImportInfo;
+import org.apache.olingo.odata4.commons.api.edm.EdmServiceMetadata;
+import org.apache.olingo.odata4.commons.api.edm.EdmSingletonInfo;
+import org.apache.olingo.odata4.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.odata4.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.odata4.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.odata4.commons.api.edm.provider.FunctionImport;
+import org.apache.olingo.odata4.commons.api.edm.provider.Schema;
+import org.apache.olingo.odata4.commons.api.edm.provider.Singleton;
+import org.apache.olingo.odata4.commons.api.exception.ODataException;
+import org.junit.Test;
+
+public class EdmServiceMetadataImplTest {
+
+ @Test
+ public void allGettersMustDeliver() {
+ EdmServiceMetadata serviceMetadata = new EdmServiceMetadataImpl(new CustomProvider(true));
+ List<EdmEntitySetInfo> entitySetInfos = serviceMetadata.getEntitySetInfos();
+ assertNotNull(entitySetInfos);
+ assertEquals(2, entitySetInfos.size());
+
+ List<EdmSingletonInfo> singletonInfos = serviceMetadata.getSingletonInfos();
+ assertNotNull(singletonInfos);
+ assertEquals(2, singletonInfos.size());
+
+ List<EdmFunctionImportInfo> functionImportInfos = serviceMetadata.getFunctionImportInfos();
+ assertNotNull(functionImportInfos);
+ assertEquals(2, functionImportInfos.size());
+
+ // Cache test
+ assertTrue(entitySetInfos == serviceMetadata.getEntitySetInfos());
+ assertTrue(singletonInfos == serviceMetadata.getSingletonInfos());
+ assertTrue(functionImportInfos == serviceMetadata.getFunctionImportInfos());
+ }
+
+ @Test(expected = RuntimeException.class)
+ public void getMetadataAsInputStreamIsNotImplemented() {
+ EdmServiceMetadata serviceMetadata = new EdmServiceMetadataImpl(new CustomProvider(true));
+ serviceMetadata.getMetadata();
+ }
+
+ @Test
+ public void initialProvider() {
+ EdmProvider provider = new EdmProvider() {};
+ EdmServiceMetadata serviceMetadata = new EdmServiceMetadataImpl(provider);
+ assertEquals(ODataServiceVersion.V40, serviceMetadata.getDataServiceVersion());
+ }
+
+ @Test(expected = EdmException.class)
+ public void initialProviderEntitySetInfo() {
+ EdmProvider provider = new EdmProvider() {};
+ EdmServiceMetadata serviceMetadata = new EdmServiceMetadataImpl(provider);
+ serviceMetadata.getEntitySetInfos();
+ }
+
+ @Test(expected = EdmException.class)
+ public void initialProviderSingletonInfo() {
+ EdmProvider provider = new EdmProvider() {};
+ EdmServiceMetadata serviceMetadata = new EdmServiceMetadataImpl(provider);
+ serviceMetadata.getSingletonInfos();
+ }
+
+ @Test(expected = EdmException.class)
+ public void initialProviderFunctionImportInfo() {
+ EdmProvider provider = new EdmProvider() {};
+ EdmServiceMetadata serviceMetadata = new EdmServiceMetadataImpl(provider);
+ serviceMetadata.getFunctionImportInfos();
+ }
+
+ @Test
+ public void emptySchemaMustNotResultInException() {
+ EdmServiceMetadata serviceMetadata = new EdmServiceMetadataImpl(new CustomProvider(false));
+ assertNotNull(serviceMetadata.getEntitySetInfos());
+ assertEquals(0, serviceMetadata.getEntitySetInfos().size());
+
+ assertNotNull(serviceMetadata.getSingletonInfos());
+ assertEquals(0, serviceMetadata.getSingletonInfos().size());
+
+ assertNotNull(serviceMetadata.getFunctionImportInfos());
+ assertEquals(0, serviceMetadata.getFunctionImportInfos().size());
+ }
+
+ @Test
+ public void oDataExceptionsGetCaughtAndTransformed() {
+ EdmProvider provider = new EdmProvider() {
+ @Override
+ public List<Schema> getSchemas() throws ODataException {
+ throw new ODataException("msg");
+ }
+ };
+
+ EdmServiceMetadata serviceMetadata = new EdmServiceMetadataImpl(provider);
+ callGetEntitySetInfosAndExpectException(serviceMetadata);
+ callGetSingletonInfosAndExpectException(serviceMetadata);
+ callGetFunctionImportInfosAndExpectException(serviceMetadata);
+ }
+
+ private void callGetFunctionImportInfosAndExpectException(EdmServiceMetadata svc) {
+ try {
+ svc.getFunctionImportInfos();
+ } catch (EdmException e) {
+ assertEquals("org.apache.olingo.odata4.commons.api.exception.ODataException: msg", e.getMessage());
+ return;
+ }
+ fail("Expected EdmException was not thrown");
+
+ }
+
+ private void callGetSingletonInfosAndExpectException(EdmServiceMetadata svc) {
+ try {
+ svc.getSingletonInfos();
+ } catch (EdmException e) {
+ assertEquals("org.apache.olingo.odata4.commons.api.exception.ODataException: msg", e.getMessage());
+ return;
+ }
+ fail("Expected EdmException was not thrown");
+ }
+
+ private void callGetEntitySetInfosAndExpectException(EdmServiceMetadata svc) {
+ try {
+ svc.getEntitySetInfos();
+ } catch (EdmException e) {
+ assertEquals("org.apache.olingo.odata4.commons.api.exception.ODataException: msg", e.getMessage());
+ return;
+ }
+ fail("Expected EdmException was not thrown");
+ }
+
+ private class CustomProvider extends EdmProvider {
+ private List<Schema> schemas;
+
+ public CustomProvider(boolean fillSchema) {
+ schemas = new ArrayList<Schema>();
+ if (fillSchema) {
+ List<EntitySet> entitySets = new ArrayList<EntitySet>();
+ entitySets.add(new EntitySet().setName("1"));
+ entitySets.add(new EntitySet().setName("2"));
+ List<Singleton> singletons = new ArrayList<Singleton>();
+ singletons.add(new Singleton().setName("1"));
+ singletons.add(new Singleton().setName("2"));
+ List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
+ functionImports.add(new FunctionImport().setName("1"));
+ functionImports.add(new FunctionImport().setName("2"));
+ EntityContainer entityContainer =
+ new EntityContainer().setName("cont").setEntitySets(entitySets).setSingletons(singletons)
+ .setFunctionImports(functionImports);
+ Schema schema = new Schema().setEntityContainer(entityContainer);
+ schemas.add(schema);
+ }
+ }
+
+ @Override
+ public List<Schema> getSchemas() throws ODataException {
+ return schemas;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata4/blob/ab6dff29/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImplTest.java
----------------------------------------------------------------------
diff --git a/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImplTest.java b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImplTest.java
new file mode 100644
index 0000000..bd92137
--- /dev/null
+++ b/odata4-lib/odata4-commons-core/src/test/java/org/apache/olingo/odata4/commons/core/edm/provider/EdmSingletonInfoImplTest.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ******************************************************************************/
+package org.apache.olingo.odata4.commons.core.edm.provider;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.olingo.odata4.commons.api.edm.EdmException;
+import org.apache.olingo.odata4.commons.api.edm.EdmSingletonInfo;
+import org.apache.olingo.odata4.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.odata4.commons.api.edm.provider.Singleton;
+import org.junit.Test;
+
+public class EdmSingletonInfoImplTest {
+
+ @Test
+ public void singletonTest() {
+ Singleton providerSingleton = new Singleton().setName("name");
+ EntityContainer providerContainer = new EntityContainer().setName("container");
+
+ EdmSingletonInfo info = new EdmSingletonInfoImpl(providerContainer, providerSingleton);
+
+ assertEquals("name", info.getSingletonName());
+ assertEquals("container", info.getEntityContainerName());
+ }
+
+ @Test(expected = EdmException.class)
+ public void getUriTest() {
+ Singleton providerSingleton = new Singleton().setName("name");
+ EntityContainer providerContainer = new EntityContainer().setName("container");
+
+ EdmSingletonInfo info = new EdmSingletonInfoImpl(providerContainer, providerSingleton);
+ info.getEntitySetUri();
+ }
+
+}