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 2015/10/22 10:40:04 UTC
[21/48] olingo-odata4 git commit: [OLINGO-786] Enhance Edm Tests
[OLINGO-786] Enhance Edm 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/5d66c9cf
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/5d66c9cf
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/5d66c9cf
Branch: refs/heads/master
Commit: 5d66c9cf18d6abf77bc460fb441ba72adf255e22
Parents: d9d33ab
Author: Christian Amend <ch...@sap.com>
Authored: Mon Oct 12 15:59:33 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Mon Oct 12 15:59:33 2015 +0200
----------------------------------------------------------------------
.../olingo/commons/core/edm/AbstractEdm.java | 5 +-
.../core/edm/EdmNavigationPropertyImpl.java | 4 +-
.../olingo/commons/core/edm/EdmTermImpl.java | 4 +-
.../commons/core/edm/ActionMapKeyTest.java | 20 ++-
.../provider/EdmEntityContainerImplTest.java | 22 +---
.../core/edm/provider/EdmEntitySetImplTest.java | 35 ++++-
.../edm/provider/EdmEntityTypeImplTest.java | 5 +
.../edm/provider/EdmFunctionImportImplTest.java | 10 ++
.../provider/EdmNavigationPropertyImplTest.java | 11 ++
.../core/edm/provider/EdmParameterImplTest.java | 1 +
.../core/edm/provider/EdmPropertyImplTest.java | 1 +
.../core/edm/provider/EdmProviderImplTest.java | 26 ++++
.../provider/EdmReferentialConstraintTest.java | 53 ++++++++
.../edm/provider/EdmReturnTypeImplTest.java | 5 +-
.../core/edm/provider/EdmSchemaImplTest.java | 63 +++++++--
.../core/edm/provider/EdmTermImplTest.java | 131 +++++++++++++++++--
.../edm/provider/EdmTypeDefinitionImplTest.java | 25 +++-
17 files changed, 370 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
index a32f3ab..71f4d70 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
@@ -192,9 +192,10 @@ public abstract class AbstractEdm implements Edm {
@Override
public EdmAction getUnboundAction(final FullQualifiedName actionName) {
- EdmAction action = unboundActions.get(actionName);
+ final FullQualifiedName fqn = resolvePossibleAlias(actionName);
+ EdmAction action = unboundActions.get(fqn);
if (action == null) {
- action = createUnboundAction(resolvePossibleAlias(actionName));
+ action = createUnboundAction(fqn);
if (action != null) {
unboundActions.put(actionName, action);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java
index 73b918b..bf5dbc6 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmNavigationPropertyImpl.java
@@ -116,8 +116,8 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNamed implements EdmEl
}
}
- referentialConstraints = referentialConstraintsLocal;
+ referentialConstraints = Collections.unmodifiableList(referentialConstraintsLocal);
}
- return Collections.unmodifiableList(referentialConstraints);
+ return referentialConstraints;
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java
index 8a7603c..b15831c 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTermImpl.java
@@ -65,7 +65,9 @@ public class EdmTermImpl extends AbstractEdmNamed implements EdmTerm {
? typeInfo.getEnumType()
: typeInfo.isComplexType()
? typeInfo.getComplexType()
- : null;
+ : typeInfo.isEntityType()
+ ? typeInfo.getEntityType()
+ : null;
if (termType == null) {
throw new EdmException("Cannot find type with name: " + typeInfo.getFullQualifiedName());
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/ActionMapKeyTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/ActionMapKeyTest.java b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/ActionMapKeyTest.java
index 96b8f37..8c0a58e 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/ActionMapKeyTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/ActionMapKeyTest.java
@@ -29,7 +29,6 @@ import org.junit.Test;
public class ActionMapKeyTest {
private final FullQualifiedName fqn = new FullQualifiedName("namespace", "name");
-
private final FullQualifiedName fqnType = new FullQualifiedName("namespace2", "name2");
@Test
@@ -53,6 +52,23 @@ public class ActionMapKeyTest {
}
fail("EdmException expected for parameters: " + fqn + " " + typeName + " " + collection);
}
+
+ @Test
+ public void testNotEquals() {
+ ActionMapKey key;
+ ActionMapKey someKey;
+
+ key = new ActionMapKey(fqn, fqnType, false);
+ someKey = new ActionMapKey(fqnType, fqnType, false);
+ assertNotSame(key, someKey);
+
+ key = new ActionMapKey(fqn, fqnType, false);
+ someKey = new ActionMapKey(fqnType, fqnType, true);
+ assertNotSame(key, someKey);
+
+ key = new ActionMapKey(fqn, fqnType, false);
+ assertNotSame(key, null);
+ }
@Test
public void testEqualsMethod() {
@@ -60,6 +76,8 @@ public class ActionMapKeyTest {
ActionMapKey someKey;
key = new ActionMapKey(fqn, fqnType, false);
+ assertEquals(key, key);
+
someKey = new ActionMapKey(fqn, fqnType, false);
assertEquals(key, someKey);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
index 82aa145..1786c53 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
@@ -135,38 +135,25 @@ public class EdmEntityContainerImplTest {
CsdlEntityContainerInfo entityContainerInfo =
new CsdlEntityContainerInfo().setContainerName(containerName);
EdmEntityContainer container = new EdmEntityContainerImpl(edm, provider, entityContainerInfo);
- boolean thrown = false;
try {
container.getEntitySet(null);
- } catch (EdmException e) {
- thrown = true;
- }
- if (!thrown) {
fail("Expected EdmException not thrown");
+ } catch (EdmException e) {
}
try {
container.getSingleton(null);
- } catch (EdmException e) {
- thrown = true;
- }
- if (!thrown) {
fail("Expected EdmException not thrown");
+ } catch (EdmException e) {
}
try {
container.getActionImport(null);
- } catch (EdmException e) {
- thrown = true;
- }
- if (!thrown) {
fail("Expected EdmException not thrown");
+ } catch (EdmException e) {
}
try {
container.getFunctionImport(null);
- } catch (EdmException e) {
- thrown = true;
- }
- if (!thrown) {
fail("Expected EdmException not thrown");
+ } catch (EdmException e) {
}
}
@@ -174,6 +161,7 @@ public class EdmEntityContainerImplTest {
public void simpleContainerGetter() {
assertEquals("name", container.getName());
assertEquals("space", container.getNamespace());
+ assertEquals(new FullQualifiedName("space.name"), container.getFullQualifiedName());
}
@Test
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
index b80e59d..cf02023 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
@@ -19,7 +19,10 @@
package org.apache.olingo.server.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.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -29,6 +32,7 @@ import org.apache.olingo.commons.api.edm.EdmBindingTarget;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmEntitySet;
import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
@@ -63,7 +67,6 @@ public class EdmEntitySetImplTest {
final CsdlEntitySet entitySetProvider = new CsdlEntitySet()
.setName(entitySetName)
.setType(typeName)
- .setIncludeInServiceDocument(true)
.setNavigationPropertyBindings(Arrays.asList(
new CsdlNavigationPropertyBinding().setPath("path")
.setTarget(containerName.getFullQualifiedNameAsString() + "/" + entitySetName)));
@@ -79,5 +82,35 @@ public class EdmEntitySetImplTest {
assertNull(entitySet.getRelatedBindingTarget(null));
final EdmBindingTarget target = entitySet.getRelatedBindingTarget("path");
assertEquals(entitySetName, target.getName());
+ assertTrue(entitySet.isIncludeInServiceDocument());
+ }
+
+ @Test
+ public void entitySetIncludeInServiceDocumentFalseAndInvalidType() throws Exception {
+ CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
+ EdmProviderImpl edm = new EdmProviderImpl(provider);
+
+ final FullQualifiedName containerName = new FullQualifiedName("ns", "container");
+ final CsdlEntityContainerInfo containerInfo = new CsdlEntityContainerInfo().setContainerName(containerName);
+ when(provider.getEntityContainerInfo(containerName)).thenReturn(containerInfo);
+ final EdmEntityContainer entityContainer = new EdmEntityContainerImpl(edm, provider, containerInfo);
+
+ final String entitySetName = "entitySet";
+ final CsdlEntitySet entitySetProvider = new CsdlEntitySet()
+ .setName(entitySetName)
+ .setType("invalid.invalid")
+ .setIncludeInServiceDocument(false);
+ when(provider.getEntitySet(containerName, entitySetName)).thenReturn(entitySetProvider);
+
+ final EdmEntitySet entitySet = new EdmEntitySetImpl(edm, entityContainer, entitySetProvider);
+ assertFalse(entitySet.isIncludeInServiceDocument());
+
+ try {
+ entitySet.getEntityType();
+ fail("Expected an EdmException");
+ } catch (EdmException e) {
+ assertEquals("CanĀ“t find entity type: invalid.invalid for entity set or singleton: " + entitySetName, e
+ .getMessage());
+ }
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
index ac36a8a..6cbabff 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
@@ -379,6 +379,11 @@ public class EdmEntityTypeImplTest {
}
@Test
+ public void openTypeDefaultIsFalse() {
+ assertFalse(baseType.isOpenType());
+ }
+
+ @Test
public void abstractTypeWithAbstractBaseTypeDoesNotNeedKey() throws Exception {
CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
EdmProviderImpl edm = new EdmProviderImpl(provider);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
index 2131881..526badf 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
@@ -20,12 +20,15 @@ package org.apache.olingo.server.core.edm.provider;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.Arrays;
import java.util.Collections;
+import java.util.List;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmFunction;
@@ -75,14 +78,21 @@ public class EdmFunctionImportImplTest {
final EdmFunctionImport functionImport = new EdmFunctionImportImpl(edm, entityContainer, functionImportProvider);
assertEquals(functionImportName, entityContainer.getFunctionImport(functionImportName).getName());
assertEquals("functionImport", functionImport.getName());
+ assertEquals(new FullQualifiedName("ns", functionImportName), functionImport.getFullQualifiedName());
+ assertTrue(functionImport.isIncludeInServiceDocument());
final EdmFunction function = functionImport.getUnboundFunction(Collections.<String> emptyList());
assertEquals(functionName.getNamespace(), function.getNamespace());
assertEquals(functionName.getName(), function.getName());
+ assertEquals(functionName, function.getFullQualifiedName());
assertFalse(function.isBound());
assertFalse(function.isComposable());
assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean),
function.getReturnType().getType());
assertEquals(entityContainer, functionImport.getEntityContainer());
assertNull(functionImport.getReturnedEntitySet());
+
+ List<EdmFunction> functions = functionImport.getUnboundFunctions();
+ assertNotNull(functions);
+ assertEquals(1, functions.size());
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
index 94f6b93..1053e1b 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
@@ -32,6 +32,7 @@ import java.util.List;
import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
+import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
import org.apache.olingo.commons.api.edm.EdmType;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
@@ -66,6 +67,7 @@ public class EdmNavigationPropertyImplTest {
assertEquals("entity", type.getName());
assertNull(property.getReferencingPropertyName("referencedPropertyName"));
assertNull(property.getPartner());
+ assertFalse(property.containsTarget());
// Test caching
EdmType cachedType = property.getType();
@@ -83,13 +85,22 @@ public class EdmNavigationPropertyImplTest {
CsdlNavigationProperty propertyProvider = new CsdlNavigationProperty();
propertyProvider.setType(entityTypeName);
propertyProvider.setNullable(false);
+ propertyProvider.setContainsTarget(true);
List<CsdlReferentialConstraint> referentialConstraints = new ArrayList<CsdlReferentialConstraint>();
referentialConstraints.add(new CsdlReferentialConstraint().setProperty("property").setReferencedProperty(
"referencedProperty"));
propertyProvider.setReferentialConstraints(referentialConstraints);
+
EdmNavigationProperty property = new EdmNavigationPropertyImpl(edm, propertyProvider);
assertEquals("property", property.getReferencingPropertyName("referencedProperty"));
assertNull(property.getReferencingPropertyName("wrong"));
+ assertTrue(property.containsTarget());
+
+ assertNotNull(property.getReferentialConstraints());
+ List<EdmReferentialConstraint> edmReferentialConstraints = property.getReferentialConstraints();
+ assertEquals(1, edmReferentialConstraints.size());
+ assertTrue(edmReferentialConstraints == property.getReferentialConstraints());
+
}
@Test
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
index 5babbdb..8a25f38 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
@@ -120,6 +120,7 @@ public class EdmParameterImplTest {
assertEquals(Integer.valueOf(12), parameter.getScale());
assertEquals(Integer.valueOf(128), parameter.getMaxLength());
assertFalse(parameter.isNullable());
+ assertNull(parameter.getSrid());
}
@Test(expected = EdmException.class)
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
index ff68098..346baf2 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
@@ -154,5 +154,6 @@ public class EdmPropertyImplTest {
assertTrue(property.isUnicode());
assertFalse(property.isNullable());
assertEquals("x", property.getDefaultValue());
+ assertNull(property.getSrid());
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
index c094b1d..6ce6ab8 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
@@ -32,6 +32,7 @@ import java.util.List;
import org.apache.olingo.commons.api.ex.ODataException;
import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmAnnotations;
import org.apache.olingo.commons.api.edm.EdmComplexType;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmEntityType;
@@ -40,6 +41,7 @@ import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
@@ -81,6 +83,10 @@ public class EdmProviderImplTest {
aliasInfos.add(new CsdlAliasInfo().setAlias("alias").setNamespace("namespace"));
when(provider.getAliasInfos()).thenReturn(aliasInfos);
+ CsdlAnnotations annotationsGroup = new CsdlAnnotations();
+ annotationsGroup.setTarget("FQN.FQN");
+ when(provider.getAnnotationsGroup(FQN, null)).thenReturn(annotationsGroup);
+
edm = new EdmProviderImpl(provider);
}
@@ -112,6 +118,7 @@ public class EdmProviderImplTest {
when(localProvider.getComplexType(fqn)).thenThrow(new ODataException("msg"));
when(localProvider.getActions(fqn)).thenThrow(new ODataException("msg"));
when(localProvider.getFunctions(fqn)).thenThrow(new ODataException("msg"));
+ when(localProvider.getAnnotationsGroup(fqn, null)).thenThrow(new ODataException("msg"));
Edm localEdm = new EdmProviderImpl(localProvider);
@@ -124,23 +131,34 @@ public class EdmProviderImplTest {
// seperate because of signature
try {
localEdm.getUnboundAction(fqn);
+ fail("Expeced an EdmException");
} catch (EdmException e) {
assertEquals("org.apache.olingo.commons.api.ex.ODataException: msg", e.getMessage());
}
try {
localEdm.getUnboundFunction(fqn, null);
+ fail("Expeced an EdmException");
} catch (EdmException e) {
assertEquals("org.apache.olingo.commons.api.ex.ODataException: msg", e.getMessage());
}
try {
localEdm.getBoundAction(fqn, fqn, true);
+ fail("Expeced an EdmException");
} catch (EdmException e) {
assertEquals("org.apache.olingo.commons.api.ex.ODataException: msg", e.getMessage());
}
try {
localEdm.getBoundFunction(fqn, fqn, true, null);
+ fail("Expeced an EdmException");
+ } catch (EdmException e) {
+ assertEquals("org.apache.olingo.commons.api.ex.ODataException: msg", e.getMessage());
+ }
+
+ try {
+ localEdm.getAnnotationGroup(fqn, null);
+ fail("Expeced an EdmException");
} catch (EdmException e) {
assertEquals("org.apache.olingo.commons.api.ex.ODataException: msg", e.getMessage());
}
@@ -222,4 +240,12 @@ public class EdmProviderImplTest {
assertNull(edm.getComplexType(WRONG_FQN));
}
+
+ @Test
+ public void getAnnotations() {
+ EdmAnnotations annotationGroup = edm.getAnnotationGroup(FQN, null);
+ assertNotNull(annotationGroup);
+
+ assertNull(edm.getAnnotationGroup(WRONG_FQN, null));
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintTest.java
new file mode 100644
index 0000000..995584d
--- /dev/null
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReferentialConstraintTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.server.core.edm.provider;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+
+import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.CsdlReferentialConstraint;
+import org.apache.olingo.commons.core.edm.EdmReferentialConstraintImpl;
+import org.junit.Test;
+
+public class EdmReferentialConstraintTest {
+
+ @Test
+ public void initialConstraint() {
+ CsdlReferentialConstraint constraint = new CsdlReferentialConstraint();
+ EdmReferentialConstraint edmConstraint = new EdmReferentialConstraintImpl(mock(Edm.class), constraint);
+
+ assertNull(edmConstraint.getPropertyName());
+ assertNull(edmConstraint.getReferencedPropertyName());
+ }
+
+ @Test
+ public void basicConstraint() {
+ CsdlReferentialConstraint constraint = new CsdlReferentialConstraint();
+ constraint.setProperty("PropertyName");
+ constraint.setReferencedProperty("referencedProperty");
+ EdmReferentialConstraint edmConstraint = new EdmReferentialConstraintImpl(mock(Edm.class), constraint);
+
+ assertEquals("PropertyName", edmConstraint.getPropertyName());
+ assertEquals("referencedProperty", edmConstraint.getReferencedPropertyName());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
index ac36635..7b36854 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
@@ -55,6 +55,7 @@ public class EdmReturnTypeImplTest {
assertNull(typeImpl.getPrecision());
assertNull(typeImpl.getMaxLength());
assertNull(typeImpl.getScale());
+ assertNull(typeImpl.getSrid());
}
@Test
@@ -64,8 +65,10 @@ public class EdmReturnTypeImplTest {
EdmReturnType typeImpl = new EdmReturnTypeImpl(mock(EdmProviderImpl.class), providerType);
- assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String), typeImpl.getType());
+ EdmType cachedType = typeImpl.getType();
+ assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String), cachedType);
assertTrue(typeImpl.isCollection());
+ assertTrue(cachedType == typeImpl.getType());
}
@Test(expected = EdmException.class)
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
index fd344c5..22a371e 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
@@ -27,10 +27,10 @@ import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
-import org.apache.olingo.commons.api.ex.ODataException;
import org.apache.olingo.commons.api.edm.Edm;
import org.apache.olingo.commons.api.edm.EdmAction;
import org.apache.olingo.commons.api.edm.EdmActionImport;
+import org.apache.olingo.commons.api.edm.EdmAnnotations;
import org.apache.olingo.commons.api.edm.EdmComplexType;
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
import org.apache.olingo.commons.api.edm.EdmEntitySet;
@@ -43,10 +43,10 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
import org.apache.olingo.commons.api.edm.EdmSingleton;
import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.CsdlAbstractEdmProvider;
import org.apache.olingo.commons.api.edm.provider.CsdlAction;
import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
@@ -60,6 +60,7 @@ import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
+import org.apache.olingo.commons.api.ex.ODataException;
import org.apache.olingo.commons.core.edm.EdmProviderImpl;
import org.junit.Before;
import org.junit.Test;
@@ -68,6 +69,8 @@ public class EdmSchemaImplTest {
private EdmSchema schema;
private Edm edm;
+ public static final String NAMESPACE = "org.namespace";
+ public static final String ALIAS = "alias";
@Before
public void before() {
@@ -108,7 +111,8 @@ public class EdmSchemaImplTest {
assertEquals(2, typeDefinitions.size());
for (EdmTypeDefinition def : typeDefinitions) {
- assertTrue(def == edm.getTypeDefinition(new FullQualifiedName("org.namespace", def.getName())));
+ assertTrue(def == edm.getTypeDefinition(new FullQualifiedName(NAMESPACE, def.getName())));
+ assertTrue(def == edm.getTypeDefinition(new FullQualifiedName(ALIAS, def.getName())));
}
}
@@ -119,7 +123,8 @@ public class EdmSchemaImplTest {
assertEquals(2, enumTypes.size());
for (EdmEnumType enumType : enumTypes) {
- assertTrue(enumType == edm.getEnumType(new FullQualifiedName("org.namespace", enumType.getName())));
+ assertTrue(enumType == edm.getEnumType(new FullQualifiedName(NAMESPACE, enumType.getName())));
+ assertTrue(enumType == edm.getEnumType(new FullQualifiedName(ALIAS, enumType.getName())));
}
}
@@ -130,7 +135,8 @@ public class EdmSchemaImplTest {
assertEquals(2, entityTypes.size());
for (EdmEntityType entityType : entityTypes) {
- assertTrue(entityType == edm.getEntityType(new FullQualifiedName("org.namespace", entityType.getName())));
+ assertTrue(entityType == edm.getEntityType(new FullQualifiedName(NAMESPACE, entityType.getName())));
+ assertTrue(entityType == edm.getEntityType(new FullQualifiedName(ALIAS, entityType.getName())));
}
}
@@ -141,7 +147,8 @@ public class EdmSchemaImplTest {
assertEquals(2, complexTypes.size());
for (EdmComplexType complexType : complexTypes) {
- assertTrue(complexType == edm.getComplexType(new FullQualifiedName("org.namespace", complexType.getName())));
+ assertTrue(complexType == edm.getComplexType(new FullQualifiedName(NAMESPACE, complexType.getName())));
+ assertTrue(complexType == edm.getComplexType(new FullQualifiedName(ALIAS, complexType.getName())));
}
}
@@ -152,7 +159,8 @@ public class EdmSchemaImplTest {
assertEquals(2, actions.size());
for (EdmAction action : actions) {
- assertTrue(action == edm.getUnboundAction(new FullQualifiedName("org.namespace", action.getName())));
+ assertTrue(action == edm.getUnboundAction(new FullQualifiedName(NAMESPACE, action.getName())));
+ assertTrue(action == edm.getUnboundAction(new FullQualifiedName(ALIAS, action.getName())));
}
}
@@ -163,12 +171,30 @@ public class EdmSchemaImplTest {
assertEquals(2, functions.size());
for (EdmFunction function : functions) {
- FullQualifiedName functionName = new FullQualifiedName("org.namespace", function.getName());
+ FullQualifiedName functionName = new FullQualifiedName(NAMESPACE, function.getName());
+ assertTrue(function == edm.getUnboundFunction(functionName, null));
+
+ functionName = new FullQualifiedName(ALIAS, function.getName());
assertTrue(function == edm.getUnboundFunction(functionName, null));
}
}
@Test
+ public void getAnnotationGroups() {
+ List<EdmAnnotations> annotationGroups = schema.getAnnotationGroups();
+ assertNotNull(annotationGroups);
+ assertEquals(2, annotationGroups.size());
+
+ for (EdmAnnotations annotationGroup : annotationGroups) {
+ FullQualifiedName targetName = new FullQualifiedName(annotationGroup.getTargetPath());
+ assertTrue(annotationGroup == edm.getAnnotationGroup(targetName, null));
+ targetName = new FullQualifiedName(annotationGroup.getTargetPath().replace(NAMESPACE, ALIAS));
+ assertTrue(annotationGroup == edm.getAnnotationGroup(targetName, null));
+ }
+ }
+
+
+ @Test
public void getContainer() {
EdmEntityContainer container = schema.getEntityContainer();
assertNotNull(container);
@@ -205,10 +231,7 @@ public class EdmSchemaImplTest {
assertTrue(container == edm.getEntityContainer(null));
}
- private class LocalProvider extends CsdlAbstractEdmProvider {
-
- private static final String ALIAS = "alias";
- private static final String NAMESPACE = "org.namespace";
+ private class LocalProvider implements CsdlEdmProvider {
@Override
public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
@@ -350,6 +373,17 @@ public class EdmSchemaImplTest {
functions.add(new CsdlFunction().setName("function1"));
functions.add(new CsdlFunction().setName("function2"));
providerSchema.setFunctions(functions);
+
+ List<CsdlAnnotations> annotationGroups = new ArrayList<CsdlAnnotations>();
+ annotationGroups.add(new CsdlAnnotations().setTarget(NAMESPACE + ".entityType1"));
+ annotationGroups.add(new CsdlAnnotations().setTarget(NAMESPACE + ".entityType2"));
+ providerSchema.setAnnotationsGroup(annotationGroups);
+
+ List<CsdlTerm> terms = new ArrayList<CsdlTerm>();
+ terms.add(new CsdlTerm().setName("term1").setType("Edm.String"));
+ terms.add(new CsdlTerm().setName("term2").setType("Edm.String"));
+ providerSchema.setTerms(terms);
+
ArrayList<CsdlSchema> schemas = new ArrayList<CsdlSchema>();
schemas.add(providerSchema);
return schemas;
@@ -359,5 +393,10 @@ public class EdmSchemaImplTest {
public CsdlEntityContainer getEntityContainer() throws ODataException {
throw new RuntimeException("Provider must not be called in the schema case");
}
+
+ @Override
+ public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName, String qualifier) throws ODataException {
+ throw new RuntimeException("Provider must not be called in the schema case");
+ }
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTermImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTermImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTermImplTest.java
index c5919b4..cfd54bd 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTermImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTermImplTest.java
@@ -23,14 +23,22 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import org.apache.olingo.commons.api.edm.Edm;
+import org.apache.olingo.commons.api.edm.EdmComplexType;
+import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.edm.EdmEnumType;
+import org.apache.olingo.commons.api.edm.EdmException;
import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
import org.apache.olingo.commons.api.edm.EdmTerm;
+import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
import org.apache.olingo.commons.api.edm.FullQualifiedName;
import org.apache.olingo.commons.api.edm.TargetType;
import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
@@ -68,32 +76,32 @@ public class EdmTermImplTest {
derivedCsdlTerm.setAppliesTo(appliesTo);
List<CsdlAnnotation> csdlAnnotations = new ArrayList<CsdlAnnotation>();
csdlAnnotations.add(new CsdlAnnotation().setTerm("name1"));
- derivedCsdlTerm.setAnnotations(csdlAnnotations );
-
+ derivedCsdlTerm.setAnnotations(csdlAnnotations);
+
derivedCsdlTerm.setNullable(false);
derivedCsdlTerm.setMaxLength(new Integer(15));
derivedCsdlTerm.setDefaultValue("abc");
derivedCsdlTerm.setPrecision(new Integer(14));
derivedCsdlTerm.setScale(new Integer(13));
-
+
when(provider.getTerm(derivedTermName)).thenReturn(derivedCsdlTerm);
derivedTerm = new EdmTermImpl(edm, "namespace", derivedCsdlTerm);
-
+
}
@Test
public void termBasics() throws Exception {
assertEquals("name1", initialTerm.getName());
assertEquals(new FullQualifiedName("namespace", "name1"), initialTerm.getFullQualifiedName());
-
+
assertTrue(initialTerm.getAnnotations().isEmpty());
assertTrue(initialTerm.getAppliesTo().isEmpty());
assertNull(initialTerm.getBaseTerm());
EdmPrimitiveType type = (EdmPrimitiveType) initialTerm.getType();
assertEquals(type.getName(), "String");
-
- //initial facets
+
+ // initial facets
assertTrue(initialTerm.isNullable());
assertNull(initialTerm.getDefaultValue());
assertNull(initialTerm.getMaxLength());
@@ -101,12 +109,12 @@ public class EdmTermImplTest {
assertNull(initialTerm.getScale());
assertNull(initialTerm.getSrid());
}
-
- @Test
+
+ @Test
public void derivedTermTest() {
assertEquals("name2", derivedTerm.getName());
assertEquals(new FullQualifiedName("namespace", "name2"), derivedTerm.getFullQualifiedName());
-
+
assertNotNull(derivedTerm.getBaseTerm());
assertEquals("name1", derivedTerm.getBaseTerm().getName());
assertFalse(derivedTerm.getAnnotations().isEmpty());
@@ -116,8 +124,8 @@ public class EdmTermImplTest {
EdmPrimitiveType type = (EdmPrimitiveType) derivedTerm.getType();
assertEquals(type.getName(), "String");
-
- //set facets
+
+ // set facets
assertFalse(derivedTerm.isNullable());
assertEquals("abc", derivedTerm.getDefaultValue());
assertEquals(new Integer(15), derivedTerm.getMaxLength());
@@ -126,4 +134,103 @@ public class EdmTermImplTest {
assertNull(derivedTerm.getSrid());
}
+ @Test
+ public void termWithTypeDef() {
+ CsdlTerm csdlTerm = new CsdlTerm();
+ FullQualifiedName csdlTerm1Name = new FullQualifiedName("namespace", "name1");
+ csdlTerm.setName(csdlTerm1Name.getName());
+ String namespaceAndName = "mySchema.TypeDef";
+ String name = "TypeDef";
+ csdlTerm.setType(namespaceAndName);
+ Edm edm = mock(Edm.class);
+ EdmTypeDefinition typeMock = mock(EdmTypeDefinition.class);
+ when(typeMock.getName()).thenReturn(name);
+ when(edm.getTypeDefinition(new FullQualifiedName(namespaceAndName))).thenReturn(typeMock);
+ EdmTerm localTerm = new EdmTermImpl(edm, "namespace", csdlTerm);
+ assertNotNull(localTerm.getType());
+ assertEquals(name, localTerm.getType().getName());
+ }
+
+ @Test
+ public void termWithEnumType() {
+ CsdlTerm csdlTerm = new CsdlTerm();
+ FullQualifiedName csdlTerm1Name = new FullQualifiedName("namespace", "name1");
+ csdlTerm.setName(csdlTerm1Name.getName());
+ String namespaceAndName = "mySchema.Enum";
+ String name = "Enum";
+ csdlTerm.setType(namespaceAndName);
+ Edm edm = mock(Edm.class);
+ EdmEnumType typeMock = mock(EdmEnumType.class);
+ when(typeMock.getName()).thenReturn(name);
+ when(edm.getEnumType(new FullQualifiedName(namespaceAndName))).thenReturn(typeMock);
+ EdmTerm localTerm = new EdmTermImpl(edm, "namespace", csdlTerm);
+ assertNotNull(localTerm.getType());
+ assertEquals(name, localTerm.getType().getName());
+ }
+
+ @Test
+ public void termWithComplexType() {
+ CsdlTerm csdlTerm = new CsdlTerm();
+ FullQualifiedName csdlTerm1Name = new FullQualifiedName("namespace", "name1");
+ csdlTerm.setName(csdlTerm1Name.getName());
+ String namespaceAndName = "mySchema.Complex";
+ String name = "Complex";
+ csdlTerm.setType(namespaceAndName);
+ Edm edm = mock(Edm.class);
+ EdmComplexType typeMock = mock(EdmComplexType.class);
+ when(typeMock.getName()).thenReturn(name);
+ when(edm.getComplexType(new FullQualifiedName(namespaceAndName))).thenReturn(typeMock);
+ EdmTerm localTerm = new EdmTermImpl(edm, "namespace", csdlTerm);
+ assertNotNull(localTerm.getType());
+ assertEquals(name, localTerm.getType().getName());
+ }
+
+ @Test
+ public void termWithEntityType() {
+ CsdlTerm csdlTerm = new CsdlTerm();
+ FullQualifiedName csdlTerm1Name = new FullQualifiedName("namespace", "name1");
+ csdlTerm.setName(csdlTerm1Name.getName());
+ String namespaceAndName = "mySchema.Entity";
+ String name = "Entity";
+ csdlTerm.setType(namespaceAndName);
+ Edm edm = mock(Edm.class);
+ EdmEntityType typeMock = mock(EdmEntityType.class);
+ when(typeMock.getName()).thenReturn(name);
+ when(edm.getEntityType(new FullQualifiedName(namespaceAndName))).thenReturn(typeMock);
+ EdmTerm localTerm = new EdmTermImpl(edm, "namespace", csdlTerm);
+ assertNotNull(localTerm.getType());
+ assertEquals(name, localTerm.getType().getName());
+ }
+
+ @Test
+ public void invalidType() {
+ CsdlTerm csdlTerm = new CsdlTerm();
+ FullQualifiedName csdlTerm1Name = new FullQualifiedName("namespace", "name1");
+ csdlTerm.setName(csdlTerm1Name.getName());
+ csdlTerm.setType("invalid.invalid");
+ EdmTerm localTerm = new EdmTermImpl(mock(Edm.class), "namespace", csdlTerm);
+ try {
+ localTerm.getType();
+ fail("Expected an EdmException");
+ } catch (EdmException e) {
+ assertEquals("Cannot find type with name: invalid.invalid", e.getMessage());
+ }
+ }
+
+ @Test
+ public void invalidAppliesToContent() {
+ CsdlTerm csdlTerm = new CsdlTerm();
+ FullQualifiedName csdlTerm1Name = new FullQualifiedName("namespace", "name1");
+ csdlTerm.setName(csdlTerm1Name.getName());
+ csdlTerm.setType("Edm.String");
+ csdlTerm.setAppliesTo(Arrays.asList("Invalid"));
+ EdmTerm localTerm = new EdmTermImpl(mock(Edm.class), "namespace", csdlTerm);
+
+ try {
+ localTerm.getAppliesTo();
+ fail("Expected an EdmException");
+ } catch (EdmException e) {
+ assertEquals("Invalid AppliesTo value: Invalid", e.getMessage());
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/5d66c9cf/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
index 63d21f5..0cc37fa 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
@@ -21,6 +21,7 @@ package org.apache.olingo.server.core.edm.provider;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import org.apache.olingo.commons.api.edm.EdmException;
@@ -46,6 +47,7 @@ public class EdmTypeDefinitionImplTest {
assertEquals("name", typeDefImpl.getName());
assertEquals("namespace", typeDefImpl.getNamespace());
+ assertEquals(new FullQualifiedName("namespace.name"), typeDefImpl.getFullQualifiedName());
assertEquals(String.class, typeDefImpl.getDefaultType());
assertEquals(EdmTypeKind.DEFINITION, typeDefImpl.getKind());
assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String), typeDefImpl.getUnderlyingType());
@@ -63,15 +65,34 @@ public class EdmTypeDefinitionImplTest {
assertNull(typeDefImpl.getPrecision());
assertNull(typeDefImpl.getScale());
assertTrue(typeDefImpl.isUnicode());
+ assertNull(typeDefImpl.getSrid());
}
- @Test(expected = EdmException.class)
+ @Test
public void invalidTypeResultsInEdmException() throws Exception {
FullQualifiedName typeDefName = new FullQualifiedName("namespace", "name");
CsdlTypeDefinition providerTypeDef =
new CsdlTypeDefinition().setName("typeDef").setUnderlyingType(new FullQualifiedName("wrong", "wrong"));
EdmTypeDefinitionImpl def = new EdmTypeDefinitionImpl(mock(EdmProviderImpl.class), typeDefName, providerTypeDef);
- def.getUnderlyingType();
+ try {
+ def.getUnderlyingType();
+ fail("Expected an EdmException");
+ } catch (EdmException e) {
+ assertEquals("Invalid underlying type: wrong.wrong", e.getMessage());
+ }
+ }
+
+ @Test
+ public void nullTypeResultsInEdmException() throws Exception {
+ FullQualifiedName typeDefName = new FullQualifiedName("namespace", "name");
+ CsdlTypeDefinition providerTypeDef = new CsdlTypeDefinition().setName("typeDef");
+ EdmTypeDefinitionImpl def = new EdmTypeDefinitionImpl(mock(EdmProviderImpl.class), typeDefName, providerTypeDef);
+ try {
+ def.getUnderlyingType();
+ fail("Expected an EdmException");
+ } catch (EdmException e) {
+ assertEquals("Underlying Type for type definition: namespace.name must not be null.", e.getMessage());
+ }
}
}