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:39:56 UTC
[13/48] olingo-odata4 git commit: [OLINGO-786] Move edm tests to
commons core
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/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
new file mode 100644
index 0000000..63d21f5
--- /dev/null
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
@@ -0,0 +1,77 @@
+/*
+ * 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.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+
+import org.apache.olingo.commons.api.edm.EdmException;
+import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
+import org.apache.olingo.commons.core.edm.EdmProviderImpl;
+import org.apache.olingo.commons.core.edm.EdmTypeDefinitionImpl;
+import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
+import org.junit.Test;
+
+public class EdmTypeDefinitionImplTest {
+
+ @Test
+ public void typeDefOnStringNoFacets() throws Exception {
+ final FullQualifiedName typeDefName = new FullQualifiedName("namespace", "name");
+ final CsdlTypeDefinition providerTypeDef =
+ new CsdlTypeDefinition().setName("typeDef").setUnderlyingType(new FullQualifiedName("Edm", "String"));
+ final EdmTypeDefinition typeDefImpl =
+ new EdmTypeDefinitionImpl(mock(EdmProviderImpl.class), typeDefName, providerTypeDef);
+
+ assertEquals("name", typeDefImpl.getName());
+ assertEquals("namespace", typeDefImpl.getNamespace());
+ assertEquals(String.class, typeDefImpl.getDefaultType());
+ assertEquals(EdmTypeKind.DEFINITION, typeDefImpl.getKind());
+ assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String), typeDefImpl.getUnderlyingType());
+ assertTrue(typeDefImpl.isCompatible(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String)));
+
+ // String validation
+ assertEquals("'StringValue'", typeDefImpl.toUriLiteral("StringValue"));
+ assertEquals("String''Value", typeDefImpl.fromUriLiteral("'String''''Value'"));
+ assertTrue(typeDefImpl.validate("text", null, null, null, null, null));
+ assertEquals("text", typeDefImpl.valueToString("text", null, null, null, null, null));
+ assertEquals("text", typeDefImpl.valueOfString("text", null, null, null, null, null, String.class));
+
+ // Facets must be initial
+ assertNull(typeDefImpl.getMaxLength());
+ assertNull(typeDefImpl.getPrecision());
+ assertNull(typeDefImpl.getScale());
+ assertTrue(typeDefImpl.isUnicode());
+ }
+
+ @Test(expected = EdmException.class)
+ 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();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java
new file mode 100644
index 0000000..64c9744
--- /dev/null
+++ b/lib/commons-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeImplTest.java
@@ -0,0 +1,62 @@
+/*
+ * 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.assertNotNull;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.EdmAnnotatable;
+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;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
+import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
+import org.apache.olingo.commons.core.edm.EdmTypeImpl;
+import org.junit.Test;
+
+public class EdmTypeImplTest {
+
+ @Test
+ public void getterTest() {
+ EdmType type = new EdmTypeImplTester(new FullQualifiedName("namespace", "name"), EdmTypeKind.PRIMITIVE);
+ assertEquals("name", type.getName());
+ assertEquals("namespace", type.getNamespace());
+ assertEquals(EdmTypeKind.PRIMITIVE, type.getKind());
+ EdmAnnotatable an = (EdmAnnotatable) type;
+ assertNotNull(an.getAnnotations().get(0));
+ }
+
+ private class EdmTypeImplTester extends EdmTypeImpl {
+ public EdmTypeImplTester(final FullQualifiedName name, final EdmTypeKind kind) {
+ super(null, name, kind, new AnnoTester());
+ }
+ }
+
+ private class AnnoTester implements CsdlAnnotatable {
+ @Override
+ public List<CsdlAnnotation> getAnnotations() {
+ CsdlAnnotation annotation = new CsdlAnnotation();
+ annotation.setTerm("NS.SimpleTerm");
+ return Arrays.asList(annotation);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java
deleted file mode 100644
index 5e12b7c..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/AbstractEdmNamedTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.assertNotNull;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.EdmAnnotatable;
-import org.apache.olingo.commons.api.edm.EdmNamed;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
-import org.apache.olingo.commons.core.edm.AbstractEdmNamed;
-import org.junit.Test;
-
-public class AbstractEdmNamedTest {
-
- @Test
- public void getNameTest() {
- EdmNamed obj = new EdmNamedImplTester("Name");
- assertEquals("Name", obj.getName());
- EdmAnnotatable an = (EdmAnnotatable) obj;
- assertNotNull(an.getAnnotations().get(0));
- }
-
- private class EdmNamedImplTester extends AbstractEdmNamed {
-
- public EdmNamedImplTester(final String name) {
- super(null, name, new AnnoTester());
- }
- }
-
- private class AnnoTester implements CsdlAnnotatable {
- @Override
- public List<CsdlAnnotation> getAnnotations() {
- CsdlAnnotation annotation = new CsdlAnnotation();
- annotation.setTerm("NS.SimpleTerm");
- return Arrays.asList(annotation);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
deleted file mode 100644
index 86bd9f4..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * 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.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.List;
-
-import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmEntitySet;
-import org.apache.olingo.commons.api.edm.EdmException;
-import org.apache.olingo.commons.api.edm.EdmParameter;
-import org.apache.olingo.commons.api.edm.EdmSingleton;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.CsdlAction;
-import org.apache.olingo.commons.api.edm.provider.CsdlParameter;
-import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
-import org.apache.olingo.commons.core.edm.EdmActionImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.junit.Before;
-import org.junit.Test;
-
-public class EdmActionImplTest {
-
- private EdmAction actionImpl1;
- private EdmAction actionImpl2;
- private EdmAction actionImpl3;
-
- @Before
- public void setup() {
- EdmProviderImpl provider = mock(EdmProviderImpl.class);
- List<CsdlParameter> parameters = new ArrayList<CsdlParameter>();
- parameters.add(new CsdlParameter().setName("Id").setType(new FullQualifiedName("namespace", "name")));
- FullQualifiedName action1Name = new FullQualifiedName("namespace", "action1");
- CsdlAction action1 = new CsdlAction().setName("action1").setBound(true).setParameters(parameters);
- actionImpl1 = new EdmActionImpl(provider, action1Name, action1);
-
- FullQualifiedName action2Name = new FullQualifiedName("namespace", "action2");
- FullQualifiedName returnTypeName = new FullQualifiedName("Edm", "String");
- CsdlReturnType returnType = new CsdlReturnType().setType(returnTypeName);
- CsdlAction action2 = new CsdlAction().setName("action2").setParameters(parameters).setReturnType(returnType);
- actionImpl2 = new EdmActionImpl(provider, action2Name, action2);
-
- FullQualifiedName action3Name = new FullQualifiedName("namespace", "action3");
- CsdlAction action3 =
- new CsdlAction().setName("action3").setParameters(parameters).setReturnType(returnType).setEntitySetPath(
- "path/Id");
- actionImpl3 = new EdmActionImpl(provider, action3Name, action3);
- }
-
- @Test
- public void action1BasicMethodCalls() {
- assertTrue(actionImpl1.isBound());
- assertEquals(EdmTypeKind.ACTION, actionImpl1.getKind());
- assertNull(actionImpl1.getReturnType());
- // assertEquals("returnName", actionImpl1.getReturnType().getType().getName());
- assertNotNull(actionImpl1.getParameterNames());
-
- for (String name : actionImpl1.getParameterNames()) {
- EdmParameter parameter = actionImpl1.getParameter(name);
- assertNotNull(parameter);
- assertEquals(name, parameter.getName());
- }
-
- assertNull(actionImpl1.getReturnedEntitySet(null));
- assertNull(actionImpl1.getReturnedEntitySet(mock(EdmEntitySet.class)));
- }
-
- @Test
- public void action2BasicMethodCalls() {
- assertFalse(actionImpl2.isBound());
- assertEquals(EdmTypeKind.ACTION, actionImpl2.getKind());
- assertEquals("String", actionImpl2.getReturnType().getType().getName());
- assertNotNull(actionImpl2.getParameterNames());
-
- for (String name : actionImpl2.getParameterNames()) {
- EdmParameter parameter = actionImpl2.getParameter(name);
- assertNotNull(parameter);
- assertEquals(name, parameter.getName());
- }
-
- assertNull(actionImpl2.getReturnedEntitySet(null));
- assertNull(actionImpl2.getReturnedEntitySet(mock(EdmEntitySet.class)));
- }
-
- @Test
- public void action3BasicMethodCalls() {
- assertFalse(actionImpl3.isBound());
- assertEquals(EdmTypeKind.ACTION, actionImpl3.getKind());
- assertEquals("String", actionImpl3.getReturnType().getType().getName());
- assertNotNull(actionImpl3.getParameterNames());
-
- for (String name : actionImpl3.getParameterNames()) {
- EdmParameter parameter = actionImpl3.getParameter(name);
- assertNotNull(parameter);
- assertEquals(name, parameter.getName());
- }
-
- actionImpl3.getReturnedEntitySet(null);
- }
-
- @Test
- public void action3getReturnedEntitySetWithEntitySet() {
- EdmEntitySet set = mock(EdmEntitySet.class);
- when(set.getRelatedBindingTarget("path/Id")).thenReturn(set);
-
- EdmEntitySet returnedEntitySet = actionImpl3.getReturnedEntitySet(set);
-
- assertEquals(set, returnedEntitySet);
- }
-
- @Test(expected = EdmException.class)
- public void action3getReturnedEntitySetWithNullReturn() {
- EdmEntitySet set = mock(EdmEntitySet.class);
- when(set.getRelatedBindingTarget("path")).thenReturn(null);
-
- actionImpl3.getReturnedEntitySet(set);
- fail();
- }
-
- @Test(expected = EdmException.class)
- public void action3getReturnedEntitySetWithSingleton() {
- EdmSingleton singleton = mock(EdmSingleton.class);
- EdmEntitySet set = mock(EdmEntitySet.class);
- when(set.getRelatedBindingTarget("path")).thenReturn(singleton);
-
- actionImpl3.getReturnedEntitySet(set);
- fail();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
deleted file mode 100644
index 02824f4..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * 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.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmActionImport;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.EdmEntitySet;
-import org.apache.olingo.commons.api.edm.EdmException;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.CsdlActionImport;
-import org.apache.olingo.commons.core.edm.EdmActionImportImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.junit.Before;
-import org.junit.Test;
-
-public class EdmActionImportImplTest {
-
- EdmEntityContainer container;
-
- EdmActionImport actionImport;
-
- private EdmAction action;
-
- private EdmEntitySet entitySet;
-
- @Before
- public void setup() {
- FullQualifiedName actionFqn = new FullQualifiedName("namespace", "actionName");
- FullQualifiedName entityContainerFqn = new FullQualifiedName("namespace", "containerName");
- String target = entityContainerFqn.getFullQualifiedNameAsString() + "/entitySetName";
- CsdlActionImport providerActionImport =
- new CsdlActionImport().setName("actionImportName").setAction(actionFqn).setEntitySet(target);
-
- EdmProviderImpl edm = mock(EdmProviderImpl.class);
- container = mock(EdmEntityContainer.class);
- when(edm.getEntityContainer(entityContainerFqn)).thenReturn(container);
- action = mock(EdmAction.class);
- when(edm.getUnboundAction(actionFqn)).thenReturn(action);
-
- entitySet = mock(EdmEntitySet.class);
- when(container.getEntitySet("entitySetName")).thenReturn(entitySet);
- actionImport = new EdmActionImportImpl(edm, container, providerActionImport);
- }
-
- @Test
- public void simpleActionTest() {
- assertEquals("actionImportName", actionImport.getName());
- assertTrue(container == actionImport.getEntityContainer());
- assertTrue(action == actionImport.getUnboundAction());
- }
-
- @Test
- public void getReturnedEntitySet() {
- EdmEntitySet returnedEntitySet = actionImport.getReturnedEntitySet();
- assertNotNull(returnedEntitySet);
- assertTrue(returnedEntitySet == entitySet);
-
- // Chaching
- assertTrue(returnedEntitySet == actionImport.getReturnedEntitySet());
- }
-
- @Test(expected = EdmException.class)
- public void getReturnedEntitySetNonExistingContainer() {
- String target = "alias.nonexisting/Es";
- CsdlActionImport providerActionImport = new CsdlActionImport().setName("actionImportName").setEntitySet(target);
- EdmActionImport actionImport =
- new EdmActionImportImpl(mock(EdmProviderImpl.class), container, providerActionImport);
- actionImport.getReturnedEntitySet();
- }
-
- @Test(expected = EdmException.class)
- public void getReturnedEntitySetNonExistingEntitySet() {
- String target = "nonExisting";
- CsdlActionImport providerActionImport = new CsdlActionImport().setName("actionImportName").setEntitySet(target);
- EdmProviderImpl edm = mock(EdmProviderImpl.class);
- when(edm.getEntityContainer(null)).thenReturn(container);
- EdmActionImport actionImport = new EdmActionImportImpl(edm, container, providerActionImport);
- actionImport.getReturnedEntitySet();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
deleted file mode 100644
index b97c995..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * 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.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.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.EdmComplexType;
-import org.apache.olingo.commons.api.edm.EdmElement;
-import org.apache.olingo.commons.api.edm.EdmException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-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.CsdlNavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
-import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.junit.Before;
-import org.junit.Test;
-
-public class EdmComplexTypeImplTest {
-
- private EdmComplexType baseType;
-
- private EdmComplexType type;
-
- @Before
- public void setupTypes() throws Exception {
- CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
- EdmProviderImpl edm = new EdmProviderImpl(provider);
-
- FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
- CsdlComplexType baseComplexType = new CsdlComplexType();
- List<CsdlProperty> baseProperties = new ArrayList<CsdlProperty>();
- baseProperties.add(new CsdlProperty().setName("prop1").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- List<CsdlNavigationProperty> baseNavigationProperties = new ArrayList<CsdlNavigationProperty>();
- baseNavigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
- baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)
- .setNavigationProperties(baseNavigationProperties);
- when(provider.getComplexType(baseName)).thenReturn(baseComplexType);
-
- baseType = new EdmComplexTypeImpl(edm, baseName, baseComplexType);
-
- FullQualifiedName name = new FullQualifiedName("namespace", "typeName");
- CsdlComplexType complexType = new CsdlComplexType().setBaseType(baseName);
- List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
- properties.add(new CsdlProperty().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
- navigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
- complexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(properties)
- .setNavigationProperties(navigationProperties);
- when(provider.getComplexType(name)).thenReturn(complexType);
-
- type = new EdmComplexTypeImpl(edm, name, complexType);
- }
-
- @Test
- public void noPropertiesAndNoNavPropertiesMustNotResultInException() {
- EdmProviderImpl edm = mock(EdmProviderImpl.class);
- CsdlComplexType complexType = new CsdlComplexType().setName("n");
- new EdmComplexTypeImpl(edm, new FullQualifiedName("n", "n"), complexType);
- }
-
- @Test
- public void typeMustBeCompatibletoBasetype() {
- assertTrue(type.compatibleTo(baseType));
- }
-
- @Test
- public void baseTypeMustNotBeCompatibleToType() {
- assertFalse(baseType.compatibleTo(type));
- }
-
- @Test(expected = EdmException.class)
- public void nullForCompatibleTypeMustResultInEdmException() {
- assertFalse(type.compatibleTo(null));
- }
-
- @Test
- public void getBaseType() {
- assertNull(baseType.getBaseType());
- assertNotNull(type.getBaseType());
- }
-
- @Test
- public void propertiesBehaviour() {
- List<String> propertyNames = baseType.getPropertyNames();
- assertEquals(1, propertyNames.size());
- assertEquals("prop1", baseType.getProperty("prop1").getName());
- }
-
- @Test
- public void propertiesBehaviourWithBaseType() {
- List<String> propertyNames = type.getPropertyNames();
- assertEquals(2, propertyNames.size());
- assertEquals("prop1", type.getProperty("prop1").getName());
- assertEquals("prop2", type.getProperty("prop2").getName());
- }
-
- @Test
- public void navigationPropertiesBehaviour() {
- List<String> navigationPropertyNames = baseType.getNavigationPropertyNames();
- assertEquals(1, navigationPropertyNames.size());
- assertEquals("nav1", baseType.getProperty("nav1").getName());
- }
-
- @Test
- public void navigationPropertiesBehaviourWithBaseType() {
- List<String> navigationPropertyNames = type.getNavigationPropertyNames();
- assertEquals(2, navigationPropertyNames.size());
- assertEquals("nav1", type.getProperty("nav1").getName());
- assertEquals("nav2", type.getProperty("nav2").getName());
- }
-
- @Test
- public void propertyCaching() {
- EdmElement property = type.getProperty("prop1");
- assertTrue(property == type.getProperty("prop1"));
-
- property = type.getProperty("prop2");
- assertTrue(property == type.getProperty("prop2"));
-
- property = type.getProperty("nav1");
- assertTrue(property == type.getProperty("nav1"));
-
- property = type.getProperty("nav2");
- assertTrue(property == type.getProperty("nav2"));
- }
-
- @Test(expected = EdmException.class)
- public void nonExistingBaseType() throws Exception {
- CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
- EdmProviderImpl edm = new EdmProviderImpl(provider);
- FullQualifiedName typeWithNonexistingBaseTypeName = new FullQualifiedName("namespace", "typeName");
- CsdlComplexType complexTypeForNonexistingBaseType =
- new CsdlComplexType().setBaseType(new FullQualifiedName("wrong", "wrong"));
- complexTypeForNonexistingBaseType.setName("typeName");
- when(provider.getComplexType(typeWithNonexistingBaseTypeName)).thenReturn(complexTypeForNonexistingBaseType);
- EdmComplexTypeImpl instance =
- new EdmComplexTypeImpl(edm, typeWithNonexistingBaseTypeName, complexTypeForNonexistingBaseType);
- instance.getBaseType();
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
deleted file mode 100644
index 82aa145..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * 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.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.List;
-
-import org.apache.olingo.commons.api.ex.ODataException;
-import org.apache.olingo.commons.api.edm.EdmActionImport;
-import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.commons.api.edm.EdmEntitySet;
-import org.apache.olingo.commons.api.edm.EdmException;
-import org.apache.olingo.commons.api.edm.EdmFunctionImport;
-import org.apache.olingo.commons.api.edm.EdmSingleton;
-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.CsdlActionImport;
-import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainer;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
-import org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
-import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
-import org.apache.olingo.commons.core.edm.EdmEntityContainerImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.junit.Before;
-import org.junit.Test;
-
-public class EdmEntityContainerImplTest {
-
- EdmEntityContainer container;
-
- @Before
- public void setup() {
- CsdlEdmProvider provider = new CustomProvider();
- EdmProviderImpl edm = new EdmProviderImpl(provider);
- CsdlEntityContainerInfo entityContainerInfo =
- new CsdlEntityContainerInfo().setContainerName(new FullQualifiedName("space", "name"));
- container = new EdmEntityContainerImpl(edm, provider, entityContainerInfo);
- }
-
- @Test
- public void getAllEntitySetInitial() {
- List<EdmEntitySet> entitySets = container.getEntitySets();
- assertNotNull(entitySets);
- assertEquals(2, entitySets.size());
- }
-
- @Test
- public void getAllEntitySetsAfterOneWasAlreadyLoaded() {
- container.getEntitySet("entitySetName");
- List<EdmEntitySet> entitySets = container.getEntitySets();
- assertNotNull(entitySets);
- assertEquals(2, entitySets.size());
- }
-
- @Test
- public void getAllSingletonsInitial() {
- List<EdmSingleton> singletons = container.getSingletons();
- assertNotNull(singletons);
- assertEquals(2, singletons.size());
- }
-
- @Test
- public void getAllSingletonsAfterOneWasAlreadyLoaded() {
- container.getSingleton("singletonName");
- List<EdmSingleton> singletons = container.getSingletons();
- assertNotNull(singletons);
- assertEquals(2, singletons.size());
- }
-
- @Test
- public void getAllActionImportsInitial() {
- List<EdmActionImport> actionImports = container.getActionImports();
- assertNotNull(actionImports);
- assertEquals(2, actionImports.size());
- }
-
- @Test
- public void getAllActionImportsAfterOneWasAlreadyLoaded() {
- container.getActionImport("actionImportName");
- List<EdmActionImport> actionImports = container.getActionImports();
- assertNotNull(actionImports);
- assertEquals(2, actionImports.size());
- }
-
- @Test
- public void getAllFunctionImportsInitial() {
- List<EdmFunctionImport> functionImports = container.getFunctionImports();
- assertNotNull(functionImports);
- assertEquals(2, functionImports.size());
- }
-
- @Test
- public void getAllFunctionImportsAfterOneWasAlreadyLoaded() {
- container.getFunctionImport("functionImportName");
- List<EdmFunctionImport> functionImports = container.getFunctionImports();
- assertNotNull(functionImports);
- assertEquals(2, functionImports.size());
- }
-
- @Test
- public void checkEdmExceptionConversion() throws Exception {
- CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
- FullQualifiedName containerName = new FullQualifiedName("space", "name");
- when(provider.getEntitySet(containerName, null)).thenThrow(new ODataException("msg"));
- when(provider.getSingleton(containerName, null)).thenThrow(new ODataException("msg"));
- when(provider.getFunctionImport(containerName, null)).thenThrow(new ODataException("msg"));
- when(provider.getActionImport(containerName, null)).thenThrow(new ODataException("msg"));
- EdmProviderImpl edm = new EdmProviderImpl(provider);
- 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");
- }
- try {
- container.getSingleton(null);
- } catch (EdmException e) {
- thrown = true;
- }
- if (!thrown) {
- fail("Expected EdmException not thrown");
- }
- try {
- container.getActionImport(null);
- } catch (EdmException e) {
- thrown = true;
- }
- if (!thrown) {
- fail("Expected EdmException not thrown");
- }
- try {
- container.getFunctionImport(null);
- } catch (EdmException e) {
- thrown = true;
- }
- if (!thrown) {
- fail("Expected EdmException not thrown");
- }
- }
-
- @Test
- public void simpleContainerGetter() {
- assertEquals("name", container.getName());
- assertEquals("space", container.getNamespace());
- }
-
- @Test
- public void getExistingFunctionImport() {
- EdmFunctionImport functionImport = container.getFunctionImport("functionImportName");
- assertNotNull(functionImport);
- assertEquals("functionImportName", functionImport.getName());
- // Caching
- assertTrue(functionImport == container.getFunctionImport("functionImportName"));
- }
-
- @Test
- public void getNonExistingFunctionImport() {
- assertNull(container.getFunctionImport(null));
- }
-
- @Test
- public void getExistingActionImport() {
- EdmActionImport actionImport = container.getActionImport("actionImportName");
- assertNotNull(actionImport);
- assertEquals("actionImportName", actionImport.getName());
- // Caching
- assertTrue(actionImport == container.getActionImport("actionImportName"));
- }
-
- @Test
- public void getNonExistingActionImport() {
- assertNull(container.getActionImport(null));
- }
-
- @Test
- public void getExistingSingleton() {
- EdmSingleton singleton = container.getSingleton("singletonName");
- assertNotNull(singleton);
- assertEquals("singletonName", singleton.getName());
- // Caching
- assertTrue(singleton == container.getSingleton("singletonName"));
- }
-
- @Test
- public void getNonExistingSingleton() {
- assertNull(container.getSingleton(null));
- }
-
- @Test
- public void getExistingEntitySet() {
- EdmEntitySet entitySet = container.getEntitySet("entitySetName");
- assertNotNull(entitySet);
- assertEquals("entitySetName", entitySet.getName());
- // Caching
- assertTrue(entitySet == container.getEntitySet("entitySetName"));
- }
-
- @Test
- public void getNonExistingEntitySet() {
- assertNull(container.getEntitySet(null));
- }
-
- private class CustomProvider extends CsdlAbstractEdmProvider {
- @Override
- public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
- throws ODataException {
- if (entitySetName != null) {
- return new CsdlEntitySet().setName("entitySetName");
- }
- return null;
- }
-
- @Override
- public CsdlSingleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
- throws ODataException {
- if (singletonName != null) {
- return new CsdlSingleton().setName("singletonName");
- }
- return null;
- }
-
- @Override
- public CsdlActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
- throws ODataException {
- if (actionImportName != null) {
- return new CsdlActionImport().setName("actionImportName");
- }
- return null;
- }
-
- @Override
- public CsdlFunctionImport getFunctionImport(final FullQualifiedName entityContainer,
- final String functionImportName)
- throws ODataException {
- if (functionImportName != null) {
- return new CsdlFunctionImport().setName("functionImportName");
- }
- return null;
- }
-
- @Override
- public CsdlEntityContainer getEntityContainer() throws ODataException {
- CsdlEntityContainer container = new CsdlEntityContainer();
- List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>();
- entitySets.add(new CsdlEntitySet().setName("entitySetName"));
- entitySets.add(new CsdlEntitySet().setName("entitySetName2"));
- container.setEntitySets(entitySets);
-
- List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>();
- singletons.add(new CsdlSingleton().setName("singletonName"));
- singletons.add(new CsdlSingleton().setName("singletonName2"));
- container.setSingletons(singletons);
-
- List<CsdlActionImport> actionImports = new ArrayList<CsdlActionImport>();
- actionImports.add(new CsdlActionImport().setName("actionImportName"));
- actionImports.add(new CsdlActionImport().setName("actionImportName2"));
- container.setActionImports(actionImports);
-
- List<CsdlFunctionImport> functionImports = new ArrayList<CsdlFunctionImport>();
- functionImports.add(new CsdlFunctionImport().setName("functionImportName"));
- functionImports.add(new CsdlFunctionImport().setName("functionImportName2"));
- container.setFunctionImports(functionImports);
-
- return container;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
deleted file mode 100644
index b80e59d..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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 static org.mockito.Mockito.when;
-
-import java.util.Arrays;
-
-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.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityContainerInfo;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntitySet;
-import org.apache.olingo.commons.api.edm.provider.CsdlEntityType;
-import org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
-import org.apache.olingo.commons.core.edm.EdmEntityContainerImpl;
-import org.apache.olingo.commons.core.edm.EdmEntitySetImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.junit.Test;
-
-public class EdmEntitySetImplTest {
-
- @Test
- public void entitySet() throws Exception {
- CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
- EdmProviderImpl edm = new EdmProviderImpl(provider);
-
- final FullQualifiedName typeName = new FullQualifiedName("ns", "entityType");
- final CsdlEntityType entityTypeProvider = new CsdlEntityType()
- .setName(typeName.getName())
- .setKey(Arrays.asList(new CsdlPropertyRef().setName("Id")));
- when(provider.getEntityType(typeName)).thenReturn(entityTypeProvider);
-
- 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(typeName)
- .setIncludeInServiceDocument(true)
- .setNavigationPropertyBindings(Arrays.asList(
- new CsdlNavigationPropertyBinding().setPath("path")
- .setTarget(containerName.getFullQualifiedNameAsString() + "/" + entitySetName)));
- when(provider.getEntitySet(containerName, entitySetName)).thenReturn(entitySetProvider);
-
- final EdmEntitySet entitySet = new EdmEntitySetImpl(edm, entityContainer, entitySetProvider);
- assertEquals(entitySetName, entityContainer.getEntitySet(entitySetName).getName());
- assertEquals(entitySetName, entitySet.getName());
- final EdmEntityType entityType = entitySet.getEntityType();
- assertEquals(typeName.getNamespace(), entityType.getNamespace());
- assertEquals(typeName.getName(), entityType.getName());
- assertEquals(entityContainer, entitySet.getEntityContainer());
- assertNull(entitySet.getRelatedBindingTarget(null));
- final EdmBindingTarget target = entitySet.getRelatedBindingTarget("path");
- assertEquals(entitySetName, target.getName());
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
deleted file mode 100644
index ac36a8a..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * 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.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.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.EdmComplexType;
-import org.apache.olingo.commons.api.edm.EdmElement;
-import org.apache.olingo.commons.api.edm.EdmEntityType;
-import org.apache.olingo.commons.api.edm.EdmException;
-import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.EdmProperty;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-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.CsdlEntityType;
-import org.apache.olingo.commons.api.edm.provider.CsdlNavigationProperty;
-import org.apache.olingo.commons.api.edm.provider.CsdlProperty;
-import org.apache.olingo.commons.api.edm.provider.CsdlPropertyRef;
-import org.apache.olingo.commons.core.edm.EdmEntityTypeImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.junit.Before;
-import org.junit.Test;
-
-public class EdmEntityTypeImplTest {
-
- private EdmEntityType baseType;
-
- private EdmEntityType typeWithBaseType;
-
- private EdmEntityType typeWithComplexKey;
-
- @Before
- public void setupTypes() throws Exception {
- CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
- EdmProviderImpl edm = new EdmProviderImpl(provider);
-
- FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
- CsdlEntityType baseType = new CsdlEntityType();
- baseType.setName(baseName.getName());
- List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
- properties.add(new CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- properties.add(new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- baseType.setProperties(properties);
- List<CsdlPropertyRef> key = new ArrayList<CsdlPropertyRef>();
- key.add(new CsdlPropertyRef().setName("Id"));
- baseType.setKey(key);
- List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
- navigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
- baseType.setNavigationProperties(navigationProperties);
- when(provider.getEntityType(baseName)).thenReturn(baseType);
-
- this.baseType = new EdmEntityTypeImpl(edm, baseName, baseType);
-
- FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName");
- CsdlEntityType type = new CsdlEntityType();
- type.setName(typeName.getName());
- type.setBaseType(baseName);
- List<CsdlProperty> typeProperties = new ArrayList<CsdlProperty>();
- typeProperties.add(new CsdlProperty().setName("address").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- typeProperties.add(new CsdlProperty().setName("email").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- type.setProperties(typeProperties);
- List<CsdlNavigationProperty> typeNavigationProperties = new ArrayList<CsdlNavigationProperty>();
- typeNavigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
- type.setNavigationProperties(typeNavigationProperties);
- when(provider.getEntityType(typeName)).thenReturn(type);
-
- typeWithBaseType = new EdmEntityTypeImpl(edm, typeName, type);
-
- FullQualifiedName typeWithComplexKeyName = new FullQualifiedName("namespace", "typeName");
- CsdlEntityType typeWithComplexKeyProvider = new CsdlEntityType();
- typeWithComplexKeyProvider.setName(typeWithComplexKeyName.getName());
- List<CsdlProperty> typeWithComplexKeyProperties = new ArrayList<CsdlProperty>();
- typeWithComplexKeyProperties.add(new CsdlProperty().setName("Id").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-
- List<CsdlProperty> complexTypeProperties = new ArrayList<CsdlProperty>();
- complexTypeProperties.add(new CsdlProperty().setName("ComplexPropName").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- FullQualifiedName complexTypeName = new FullQualifiedName("namespace", "complexTypeName");
- when(provider.getComplexType(complexTypeName)).thenReturn(
- new CsdlComplexType().setName("complexTypeName").setProperties(complexTypeProperties));
-
- typeWithComplexKeyProperties.add(new CsdlProperty().setName("Comp").setType(complexTypeName));
- typeWithComplexKeyProvider.setProperties(typeWithComplexKeyProperties);
- List<CsdlPropertyRef> keyForTypeWithComplexKey = new ArrayList<CsdlPropertyRef>();
- keyForTypeWithComplexKey.add(new CsdlPropertyRef().setName("Id"));
- keyForTypeWithComplexKey.add(new CsdlPropertyRef().setName("Comp/ComplexPropName").setAlias("alias"));
- typeWithComplexKeyProvider.setKey(keyForTypeWithComplexKey);
- when(provider.getEntityType(typeWithComplexKeyName)).thenReturn(typeWithComplexKeyProvider);
-
- typeWithComplexKey = new EdmEntityTypeImpl(edm, typeWithComplexKeyName, typeWithComplexKeyProvider);
- }
-
- @Test
- public void testAbstractBaseTypeWithoutKey() throws Exception {
- CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
- EdmProviderImpl edm = new EdmProviderImpl(provider);
-
- FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
- CsdlEntityType baseType = new CsdlEntityType();
- baseType.setName(baseName.getName());
- List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
- properties.add(new CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- properties.add(new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- baseType.setProperties(properties);
- List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
- navigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
- baseType.setNavigationProperties(navigationProperties);
- when(provider.getEntityType(baseName)).thenReturn(baseType);
- baseType.setAbstract(true);
- EdmEntityType edmAbstarctBaseType = new EdmEntityTypeImpl(edm, baseName, baseType);
-
- assertEquals(2, edmAbstarctBaseType.getPropertyNames().size());
- assertEquals("Id", edmAbstarctBaseType.getPropertyNames().get(0));
- assertEquals("Name", edmAbstarctBaseType.getPropertyNames().get(1));
-
- FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName");
- CsdlEntityType type = new CsdlEntityType();
- type.setName(typeName.getName());
- type.setBaseType(baseName);
- List<CsdlProperty> typeProperties = new ArrayList<CsdlProperty>();
- typeProperties.add(new CsdlProperty().setName("address").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- typeProperties.add(new CsdlProperty().setName("email").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- type.setProperties(typeProperties);
- List<CsdlPropertyRef> key = new ArrayList<CsdlPropertyRef>();
- key.add(new CsdlPropertyRef().setName("email"));
- type.setKey(key);
- List<CsdlNavigationProperty> typeNavigationProperties = new ArrayList<CsdlNavigationProperty>();
- typeNavigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
- type.setNavigationProperties(typeNavigationProperties);
- when(provider.getEntityType(typeName)).thenReturn(type);
-
- EdmEntityType edmType = new EdmEntityTypeImpl(edm, typeName, type);
-
- assertNotNull(edmType.getBaseType());
- assertEquals(2, edmAbstarctBaseType.getPropertyNames().size());
-
- assertEquals(1, edmType.getKeyPropertyRefs().size());
- assertEquals("email", edmType.getKeyPredicateNames().get(0));
-
- assertEquals(4, edmType.getPropertyNames().size());
- assertEquals("Id", edmType.getPropertyNames().get(0));
- assertEquals("Name", edmType.getPropertyNames().get(1));
- assertEquals("address", edmType.getPropertyNames().get(2));
- assertEquals("email", edmType.getPropertyNames().get(3));
-
- assertEquals(2, edmType.getNavigationPropertyNames().size());
- assertEquals("nav1", edmType.getNavigationPropertyNames().get(0));
- assertEquals("nav2", edmType.getNavigationPropertyNames().get(1));
- }
-
- @Test
- public void testAbstractBaseTypeWithtKey() throws Exception {
- CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
- EdmProviderImpl edm = new EdmProviderImpl(provider);
-
- FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
- CsdlEntityType baseType = new CsdlEntityType();
- baseType.setName(baseName.getName());
- List<CsdlProperty> properties = new ArrayList<CsdlProperty>();
- properties.add(new CsdlProperty().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- properties.add(new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- baseType.setProperties(properties);
- List<CsdlPropertyRef> key = new ArrayList<CsdlPropertyRef>();
- key.add(new CsdlPropertyRef().setName("Id"));
- baseType.setKey(key);
- List<CsdlNavigationProperty> navigationProperties = new ArrayList<CsdlNavigationProperty>();
- navigationProperties.add(new CsdlNavigationProperty().setName("nav1"));
- baseType.setNavigationProperties(navigationProperties);
- when(provider.getEntityType(baseName)).thenReturn(baseType);
- baseType.setAbstract(true);
- EdmEntityType edmAbstarctBaseType = new EdmEntityTypeImpl(edm, baseName, baseType);
-
- FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName");
- CsdlEntityType type = new CsdlEntityType();
- type.setName(typeName.getName());
- type.setBaseType(baseName);
- List<CsdlProperty> typeProperties = new ArrayList<CsdlProperty>();
- typeProperties.add(new CsdlProperty().setName("address").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- typeProperties.add(new CsdlProperty().setName("email").setType(
- EdmPrimitiveTypeKind.String.getFullQualifiedName()));
- type.setProperties(typeProperties);
- List<CsdlNavigationProperty> typeNavigationProperties = new ArrayList<CsdlNavigationProperty>();
- typeNavigationProperties.add(new CsdlNavigationProperty().setName("nav2"));
- type.setNavigationProperties(typeNavigationProperties);
- when(provider.getEntityType(typeName)).thenReturn(type);
- EdmEntityType edmType = new EdmEntityTypeImpl(edm, typeName, type);
-
- assertNotNull(edmType.getBaseType());
- assertEquals(2, edmAbstarctBaseType.getPropertyNames().size());
-
- assertEquals(1, edmType.getKeyPropertyRefs().size());
- assertEquals("Id", edmType.getKeyPredicateNames().get(0));
-
- assertEquals(4, edmType.getPropertyNames().size());
- assertEquals("Id", edmType.getPropertyNames().get(0));
- assertEquals("Name", edmType.getPropertyNames().get(1));
- assertEquals("address", edmType.getPropertyNames().get(2));
- assertEquals("email", edmType.getPropertyNames().get(3));
-
- assertEquals(2, edmType.getNavigationPropertyNames().size());
- assertEquals("nav1", edmType.getNavigationPropertyNames().get(0));
- assertEquals("nav2", edmType.getNavigationPropertyNames().get(1));
- }
-
- @Test
- public void hasStream() {
- assertFalse(typeWithBaseType.hasStream());
- }
-
- @Test
- public void complexKeyWithAlias() {
- List<String> keyPredicateNames = typeWithComplexKey.getKeyPredicateNames();
- assertEquals(2, keyPredicateNames.size());
- assertEquals("Id", keyPredicateNames.get(0));
- assertEquals("alias", keyPredicateNames.get(1));
-
- EdmKeyPropertyRef keyPropertyRef = typeWithComplexKey.getKeyPropertyRef("Id");
- assertNotNull(keyPropertyRef);
- assertEquals("Id", keyPropertyRef.getName());
- assertNull(keyPropertyRef.getAlias());
- EdmProperty keyProperty = keyPropertyRef.getProperty();
- assertNotNull(keyProperty);
- assertEquals(typeWithComplexKey.getProperty("Id"), keyProperty);
-
- keyPropertyRef = typeWithComplexKey.getKeyPropertyRef("alias");
- assertNotNull(keyPropertyRef);
- assertEquals("Comp/ComplexPropName", keyPropertyRef.getName());
- assertEquals("alias", keyPropertyRef.getAlias());
-
- keyProperty = keyPropertyRef.getProperty();
- assertNotNull(keyProperty);
- EdmElement complexProperty = typeWithComplexKey.getProperty("Comp");
- EdmComplexType complexType = (EdmComplexType) complexProperty.getType();
- assertNotNull(complexType);
- assertEquals(complexType.getProperty("ComplexPropName"), keyProperty);
- }
-
- @Test
- public void keyBehaviour() {
- List<String> keyPredicateNames = baseType.getKeyPredicateNames();
- assertEquals(1, keyPredicateNames.size());
- assertEquals("Id", keyPredicateNames.get(0));
-
- EdmKeyPropertyRef keyPropertyRef = baseType.getKeyPropertyRef("Id");
- assertNotNull(keyPropertyRef);
- assertEquals("Id", keyPropertyRef.getName());
- assertNull(keyPropertyRef.getAlias());
-
- EdmProperty keyProperty = keyPropertyRef.getProperty();
- assertNotNull(keyProperty);
- assertEquals(baseType.getProperty("Id"), keyProperty);
-
- List<EdmKeyPropertyRef> keyPropertyRefs = baseType.getKeyPropertyRefs();
- assertNotNull(keyPropertyRefs);
- assertEquals(1, keyPropertyRefs.size());
- assertEquals("Id", keyPropertyRefs.get(0).getName());
- }
-
- @Test
- public void keyBehaviourWithBasetype() {
- List<String> keyPredicateNames = typeWithBaseType.getKeyPredicateNames();
- assertEquals(1, keyPredicateNames.size());
- assertEquals("Id", keyPredicateNames.get(0));
-
- EdmKeyPropertyRef keyPropertyRef = typeWithBaseType.getKeyPropertyRef("Id");
- assertNotNull(keyPropertyRef);
- assertEquals("Id", keyPropertyRef.getName());
- assertNull(keyPropertyRef.getAlias());
-
- List<EdmKeyPropertyRef> keyPropertyRefs = typeWithBaseType.getKeyPropertyRefs();
- assertNotNull(keyPropertyRefs);
- assertEquals(1, keyPropertyRefs.size());
- assertEquals("Id", keyPropertyRefs.get(0).getName());
- for (int i = 0; i < keyPropertyRefs.size(); i++) {
- assertEquals(keyPropertyRefs.get(i).getName(), typeWithBaseType.getKeyPropertyRefs().get(i).getName());
- }
- }
-
- @Test
- public void getBaseType() {
- assertNull(baseType.getBaseType());
- assertNotNull(typeWithBaseType.getBaseType());
- }
-
- @Test
- public void propertiesBehaviour() {
- List<String> propertyNames = baseType.getPropertyNames();
- assertEquals(2, propertyNames.size());
- assertEquals("Id", baseType.getProperty("Id").getName());
- assertEquals("Name", baseType.getProperty("Name").getName());
- }
-
- @Test
- public void propertiesBehaviourWithBaseType() {
- List<String> propertyNames = typeWithBaseType.getPropertyNames();
- assertEquals(4, propertyNames.size());
- assertEquals("Id", typeWithBaseType.getProperty("Id").getName());
- assertEquals("Name", typeWithBaseType.getProperty("Name").getName());
- assertEquals("address", typeWithBaseType.getProperty("address").getName());
- assertEquals("email", typeWithBaseType.getProperty("email").getName());
- }
-
- @Test
- public void navigationPropertiesBehaviour() {
- List<String> navigationPropertyNames = baseType.getNavigationPropertyNames();
- assertEquals(1, navigationPropertyNames.size());
- assertEquals("nav1", baseType.getProperty("nav1").getName());
- }
-
- @Test
- public void navigationPropertiesBehaviourWithBaseType() {
- List<String> navigationPropertyNames = typeWithBaseType.getNavigationPropertyNames();
- assertEquals(2, navigationPropertyNames.size());
- assertEquals("nav1", typeWithBaseType.getProperty("nav1").getName());
- assertEquals("nav2", typeWithBaseType.getProperty("nav2").getName());
- }
-
- @Test
- public void propertyCaching() {
- EdmElement property = typeWithBaseType.getProperty("Id");
- assertTrue(property == typeWithBaseType.getProperty("Id"));
-
- property = typeWithBaseType.getProperty("address");
- assertTrue(property == typeWithBaseType.getProperty("address"));
-
- property = typeWithBaseType.getProperty("nav1");
- assertTrue(property == typeWithBaseType.getProperty("nav1"));
-
- property = typeWithBaseType.getProperty("nav2");
- assertTrue(property == typeWithBaseType.getProperty("nav2"));
- }
-
- @Test
- public void abstractTypeDoesNotNeedKey() {
- EdmProviderImpl edm = mock(EdmProviderImpl.class);
- CsdlEntityType entityType = new CsdlEntityType().setName("n").setAbstract(true);
- new EdmEntityTypeImpl(edm, new FullQualifiedName("n", "n"), entityType);
- }
-
- @Test(expected = EdmException.class)
- public void invalidBaseType() {
- EdmProviderImpl edm = mock(EdmProviderImpl.class);
- CsdlEntityType entityType = new CsdlEntityType().setName("n").setBaseType(new FullQualifiedName("wrong", "wrong"));
- EdmEntityTypeImpl instance = new EdmEntityTypeImpl(edm, new FullQualifiedName("n", "n"), entityType);
- instance.getBaseType();
- }
-
- @Test
- public void abstractTypeWithAbstractBaseTypeDoesNotNeedKey() throws Exception {
- CsdlEdmProvider provider = mock(CsdlEdmProvider.class);
- EdmProviderImpl edm = new EdmProviderImpl(provider);
- FullQualifiedName baseName = new FullQualifiedName("n", "base");
- when(provider.getEntityType(baseName)).thenReturn(new CsdlEntityType().setName("base").setAbstract(true));
- CsdlEntityType entityType = new CsdlEntityType().setName("n").setAbstract(true).setBaseType(baseName);
- new EdmEntityTypeImpl(edm, new FullQualifiedName("n", "n"), entityType);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
deleted file mode 100644
index 25dcb03..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * 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.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.assertArrayEquals;
-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.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.mock;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.olingo.commons.api.edm.Edm;
-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.EdmPrimitiveTypeException;
-import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.commons.api.edm.provider.CsdlEnumMember;
-import org.apache.olingo.commons.api.edm.provider.CsdlEnumType;
-import org.apache.olingo.commons.core.edm.EdmEnumTypeImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-public class EdmEnumTest {
-
- private final EdmEnumType instance;
- private final EdmEnumType otherInstance;
- private final EdmEnumType nonFlagsInstance;
- private final EdmEnumType int16EnumType;
- private final EdmEnumType int32EnumType;
- private final EdmEnumType int32FlagType;
-
- public EdmEnumTest() {
- final List<CsdlEnumMember> memberList = Arrays.asList(
- new CsdlEnumMember().setName("first").setValue("1"),
- new CsdlEnumMember().setName("second").setValue("64"));
-
- final FullQualifiedName enumName = new FullQualifiedName("namespace", "name");
-
- instance = new EdmEnumTypeImpl(mock(EdmProviderImpl.class), enumName,
- new CsdlEnumType().setName("name").setMembers(memberList).setFlags(true)
- .setUnderlyingType(EdmPrimitiveTypeKind.SByte.getFullQualifiedName()));
-
- otherInstance = new EdmEnumTypeImpl(mock(EdmProviderImpl.class), enumName,
- new CsdlEnumType().setName("name").setMembers(memberList).setFlags(true)
- .setUnderlyingType(EdmPrimitiveTypeKind.SByte.getFullQualifiedName()));
-
- nonFlagsInstance = new EdmEnumTypeImpl(mock(EdmProviderImpl.class), enumName,
- new CsdlEnumType().setName("name").setMembers(memberList).setFlags(false)
- .setUnderlyingType(EdmPrimitiveTypeKind.SByte.getFullQualifiedName()));
-
- int16EnumType = new EdmEnumTypeImpl(Mockito.mock(Edm.class),
- new FullQualifiedName("testNamespace", "testName"), new CsdlEnumType()
- .setName("MyEnum")
- .setFlags(false)
- .setUnderlyingType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName())
- .setMembers(
- Arrays.asList(
- new CsdlEnumMember().setName("A")
- .setValue("0"),
- new CsdlEnumMember().setName("B")
- .setValue("1"),
- new CsdlEnumMember().setName("C")
- .setValue("2"))));
-
- int32EnumType =
- new EdmEnumTypeImpl(Mockito.mock(Edm.class),
- new FullQualifiedName("testNamespace", "testName"), new CsdlEnumType()
- .setName("MyEnum")
- .setFlags(false)
- .setUnderlyingType(EdmPrimitiveTypeKind.Int32.getFullQualifiedName())
- .setMembers(
- Arrays
- .asList(new CsdlEnumMember().setName("A").setValue("0"), new CsdlEnumMember().setName("B")
- .setValue("1"),
- new CsdlEnumMember().setName("C").setValue("2"))));
-
- int32FlagType =
- new EdmEnumTypeImpl(Mockito.mock(Edm.class),
- new FullQualifiedName("testNamespace", "testName"), new CsdlEnumType()
- .setName("MyEnum")
- .setFlags(true)
- .setUnderlyingType(EdmPrimitiveTypeKind.Int32.getFullQualifiedName())
- .setMembers(
- Arrays
- .asList(new CsdlEnumMember().setName("A").setValue("2"), new CsdlEnumMember().setName("B")
- .setValue("4"),
- new CsdlEnumMember().setName("C").setValue("8"))));
- }
-
- @Test
- public void nameSpace() throws Exception {
- assertEquals("namespace", instance.getNamespace());
- }
-
- @Test
- public void name() throws Exception {
- assertEquals("name", instance.getName());
- }
-
- @Test
- public void kind() throws Exception {
- assertEquals(EdmTypeKind.ENUM, instance.getKind());
- }
-
- @Test
- public void compatibility() {
- assertTrue(instance.isCompatible(instance));
- assertTrue(instance.isCompatible(otherInstance));
- assertFalse(instance.isCompatible(instance.getUnderlyingType()));
- }
-
- @Test
- public void defaultType() throws Exception {
- assertEquals(Byte.class, instance.getDefaultType());
- EdmEnumType instance = new EdmEnumTypeImpl(Mockito.mock(Edm.class),
- new FullQualifiedName("testNamespace", "testName"),
- new CsdlEnumType()
- .setName("MyEnum"));
- assertEquals(Integer.class, instance.getUnderlyingType().getDefaultType());
- }
-
- @Test
- public void members() throws Exception {
- assertArrayEquals(new String[] { "first", "second" }, instance.getMemberNames().toArray());
- assertEquals("64", instance.getMember("second").getValue());
- assertNull(instance.getMember("notExisting"));
- }
-
- @Test
- public void underlyingType() throws Exception {
- assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.SByte), instance.getUnderlyingType());
- }
-
- @Test
- public void validate() throws Exception {
- assertTrue(instance.validate(null, null, null, null, null, null));
- assertTrue(instance.validate(null, true, null, null, null, null));
- assertFalse(instance.validate(null, false, null, null, null, null));
- assertFalse(instance.validate("", null, null, null, null, null));
- assertFalse(instance.validate("something", null, null, null, null, null));
-
- assertTrue(instance.validate("second", null, null, null, null, null));
- assertTrue(instance.validate("first,second", null, null, null, null, null));
- assertTrue(instance.validate("64", null, null, null, null, null));
- assertTrue(instance.validate("1,64", null, null, null, null, null));
- }
-
- @Test
- public void toUriLiteral() throws Exception {
- assertNull(instance.toUriLiteral(null));
- assertEquals("namespace.name'first'", instance.toUriLiteral("first"));
- }
-
- @Test
- public void fromUriLiteral() throws Exception {
- assertNull(instance.fromUriLiteral(null));
- assertEquals("first", instance.fromUriLiteral("namespace.name'first'"));
-
- expectErrorInFromUriLiteral(instance, "");
- expectErrorInFromUriLiteral(instance, "name'first'");
- expectErrorInFromUriLiteral(instance, "namespace.name'first");
- expectErrorInFromUriLiteral(instance, "namespace.namespace'first");
- }
-
- @Test
- public void valueToString() throws Exception {
- assertNull(instance.valueToString(null, null, null, null, null, null));
- assertNull(instance.valueToString(null, true, null, null, null, null));
- assertEquals("first", instance.valueToString(1, null, null, null, null, null));
- assertEquals("first", instance.valueToString((byte) 1, null, null, null, null, null));
- assertEquals("first", instance.valueToString((short) 1, null, null, null, null, null));
- assertEquals("second", instance.valueToString(Integer.valueOf(64), null, null, null, null, null));
- assertEquals("second", instance.valueToString(64L, null, null, null, null, null));
- assertEquals("first,second", instance.valueToString(65, null, null, null, null, null));
-
- expectNullErrorInValueToString(instance);
- expectContentErrorInValueToString(instance, 3);
- expectTypeErrorInValueToString(instance, 1.0);
-
- assertEquals("A", int32EnumType.valueToString(0, false, 0, 0, 0, false));
- assertEquals("B", int32EnumType.valueToString(1, false, 0, 0, 0, false));
- assertEquals("C", int32EnumType.valueToString(2, false, 0, 0, 0, false));
-
- assertEquals("A", int16EnumType.valueToString(0, false, 0, 0, 0, false));
- assertEquals("B", int16EnumType.valueToString(1, false, 0, 0, 0, false));
- assertEquals("C", int16EnumType.valueToString(2, false, 0, 0, 0, false));
-
- assertEquals("A", int32FlagType.valueToString(2, false, 0, 0, 0, false));
- assertEquals("B", int32FlagType.valueToString(4, false, 0, 0, 0, false));
- assertEquals("C", int32FlagType.valueToString(8, false, 0, 0, 0, false));
- assertEquals("A,B", int32FlagType.valueToString(0x2 + 0x4, false, 0, 0, 0, false));
- assertEquals("B,C", int32FlagType.valueToString(0x4 + 0x8, false, 0, 0, 0, false));
- }
-
- @Test
- public void valueOfString() throws Exception {
- assertNull(instance.valueOfString(null, null, null, null, null, null, Byte.class));
- assertNull(instance.valueOfString(null, true, null, null, null, null, Byte.class));
- assertEquals(Short.valueOf((short) 1), instance.valueOfString("1", null, null, null, null, null, Short.class));
- assertEquals(Integer.valueOf(1), instance.valueOfString("1", null, null, null, null, null, Integer.class));
- assertEquals(Long.valueOf(64L), instance.valueOfString("64", null, null, null, null, null, Long.class));
- assertEquals(Long.valueOf(1), instance.valueOfString("first", null, null, null, null, null, Long.class));
- assertEquals(Byte.valueOf((byte) 65), instance.valueOfString("first,64", null, null, null, null, null, Byte.class));
- assertEquals(Integer.valueOf(1), instance.valueOfString("1,1,first", null, null, null, null, null, Integer.class));
-
- assertEquals(Integer.valueOf(1), nonFlagsInstance.valueOfString("1", null, null, null, null, null, Integer.class));
- expectContentErrorInValueOfString(nonFlagsInstance, "1,64");
-
- expectNullErrorInValueOfString(instance);
- expectContentErrorInValueOfString(instance, "2");
- expectContentErrorInValueOfString(instance, "1,");
- expectContentErrorInValueOfString(instance, ",1");
- expectTypeErrorInValueOfString(instance, "1");
-
- assertEquals(Integer.valueOf(0), int32EnumType.valueOfString("A", null, null, null, null, null, Integer.class));
- assertEquals(Integer.valueOf(1), int32EnumType.valueOfString("B", null, null, null, null, null, Integer.class));
- assertEquals(Integer.valueOf(2), int32EnumType.valueOfString("C", null, null, null, null, null, Integer.class));
-
- assertEquals(Integer.valueOf(0), int16EnumType.valueOfString("A", null, null, null, null, null, Integer.class));
- assertEquals(Integer.valueOf(1), int16EnumType.valueOfString("B", null, null, null, null, null, Integer.class));
- assertEquals(Integer.valueOf(2), int16EnumType.valueOfString("C", null, null, null, null, null, Integer.class));
-
- assertEquals(Integer.valueOf(2), int32FlagType.valueOfString("A", null, null, null, null, null, Integer.class));
- assertEquals(Integer.valueOf(4), int32FlagType.valueOfString("B", null, null, null, null, null, Integer.class));
- assertEquals(Integer.valueOf(8), int32FlagType.valueOfString("C", null, null, null, null, null, Integer.class));
- assertEquals(Integer.valueOf(0x2 + 0x4), int32FlagType.valueOfString("A,B", null, null, null, null, null,
- Integer.class));
- assertEquals(Integer.valueOf(0x4 + 0x8), int32FlagType.valueOfString("B,C", null, null, null, null, null,
- Integer.class));
- assertEquals(Integer.valueOf(0x2 + 0x4), int32FlagType.valueOfString("B,A", null, null, null, null, null,
- Integer.class));
- }
-
- private void expectErrorInValueToString(final EdmEnumType instance,
- final Object value, final Boolean isNullable, final Integer maxLength,
- final Integer precision, final Integer scale, final Boolean isUnicode,
- final String message) {
- try {
- instance.valueToString(value, isNullable, maxLength, precision, scale, isUnicode);
- fail("Expected exception not thrown");
- } catch (final EdmPrimitiveTypeException e) {
- assertNotNull(e.getLocalizedMessage());
- assertThat(e.getLocalizedMessage(), containsString(message));
- }
- }
-
- private void expectErrorInUnderlyingType(
- final EdmPrimitiveTypeKind underlyingType,
- final String message) {
- try {
- new EdmEnumTypeImpl(Mockito.mock(Edm.class),
- new FullQualifiedName("testNamespace", "testName"),
- new CsdlEnumType()
- .setName("MyEnum")
- .setFlags(false)
- .setUnderlyingType(underlyingType.getFullQualifiedName())
- .setMembers(
- Arrays.asList(
- new CsdlEnumMember().setName("A")
- .setValue("0"))));
- fail("Expected exception not thrown");
- } catch (final EdmException e) {
- assertNotNull(e.getLocalizedMessage());
- assertThat(e.getLocalizedMessage(), containsString(message));
- }
- }
-
- @Test
- public void unsupportedUnderlyingType() throws Exception {
- // Test some random unsupported types
- expectErrorInUnderlyingType(EdmPrimitiveTypeKind.Date, "");
- expectErrorInUnderlyingType(EdmPrimitiveTypeKind.Geography, "");
- expectErrorInUnderlyingType(EdmPrimitiveTypeKind.Guid, "");
- }
-
- @Test
- public void outOfRangeValueToString() throws Exception {
- expectErrorInValueToString(int16EnumType, Integer.MAX_VALUE, null, null, null, null, null, "");
- }
-
- protected void expectErrorInFromUriLiteral(final EdmPrimitiveType instance, final String value) {
- try {
- instance.fromUriLiteral(value);
- fail("Expected exception not thrown");
- } catch (final EdmPrimitiveTypeException e) {
- assertNotNull(e.getLocalizedMessage());
- assertThat(e.getLocalizedMessage(), containsString("' has illegal content."));
- }
- }
-
- private void expectErrorInValueToString(final EdmPrimitiveType instance,
- final Object value, final Boolean isNullable, final Integer maxLength,
- final Integer precision, final Integer scale, final Boolean isUnicode,
- final String message) {
- try {
- instance.valueToString(value, isNullable, maxLength, precision, scale, isUnicode);
- fail("Expected exception not thrown");
- } catch (final EdmPrimitiveTypeException e) {
- assertNotNull(e.getLocalizedMessage());
- assertThat(e.getLocalizedMessage(), containsString(message));
- }
- }
-
- protected void expectNullErrorInValueToString(final EdmPrimitiveType instance) {
- expectErrorInValueToString(instance, null, false, null, null, null, null, "The value NULL is not allowed.");
- }
-
- protected void expectTypeErrorInValueToString(final EdmPrimitiveType instance, final Object value) {
- expectErrorInValueToString(instance, value, null, null, null, null, null, "value type");
- }
-
- protected void expectContentErrorInValueToString(final EdmPrimitiveType instance, final Object value) {
- expectErrorInValueToString(instance, value, null, null, null, null, null, "' is not valid.");
- }
-
- private void expectErrorInValueOfString(final EdmPrimitiveType instance,
- final String value, final Boolean isNullable, final Integer maxLength, final Integer precision,
- final Integer scale, final Boolean isUnicode, final Class<?> returnType,
- final String message) {
-
- try {
- instance.valueOfString(value, isNullable, maxLength, precision, scale, isUnicode, returnType);
- fail("Expected exception not thrown");
- } catch (final EdmPrimitiveTypeException e) {
- assertNotNull(e.getLocalizedMessage());
- assertThat(e.getLocalizedMessage(), containsString(message));
- }
- }
-
- protected void expectTypeErrorInValueOfString(final EdmPrimitiveType instance, final String value) {
- expectErrorInValueOfString(instance, value, null, null, null, null, null, Class.class,
- "The value type class java.lang.Class is not supported.");
- }
-
- protected void expectContentErrorInValueOfString(final EdmPrimitiveType instance, final String value) {
- expectErrorInValueOfString(instance, value, null, null, null, null, null, instance.getDefaultType(),
- "illegal content");
- }
-
- protected void expectNullErrorInValueOfString(final EdmPrimitiveType instance) {
- expectErrorInValueOfString(instance, null, false, null, null, null, null, instance.getDefaultType(),
- "The literal 'null' is not allowed.");
- }
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c1981c4/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
deleted file mode 100644
index c122cb8..0000000
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.assertFalse;
-import static org.junit.Assert.assertNotNull;
-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;
-import org.apache.olingo.commons.api.edm.EdmFunction;
-import org.apache.olingo.commons.api.edm.EdmReturnType;
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.provider.CsdlFunction;
-import org.apache.olingo.commons.api.edm.provider.CsdlReturnType;
-import org.apache.olingo.commons.core.edm.EdmFunctionImpl;
-import org.apache.olingo.commons.core.edm.EdmProviderImpl;
-import org.junit.Before;
-import org.junit.Test;
-
-public class EdmFunctionImplTest {
-
- private EdmFunction functionImpl1;
- private EdmFunction functionImpl2;
-
- @Before
- public void setupFunctions() {
- EdmProviderImpl provider = mock(EdmProviderImpl.class);
-
- CsdlFunction function1 = new CsdlFunction().setReturnType(
- new CsdlReturnType().setType(new FullQualifiedName("Edm", "String")));
- functionImpl1 = new EdmFunctionImpl(provider, new FullQualifiedName("namespace", "name"), function1);
- CsdlFunction function2 = new CsdlFunction().setComposable(true);
- functionImpl2 = new EdmFunctionImpl(provider, new FullQualifiedName("namespace", "name"), function2);
- }
-
- @Test
- public void isComposableDefaultFalse() {
- assertFalse(functionImpl1.isComposable());
- }
-
- @Test
- public void isComposableSetToTrue() {
- assertTrue(functionImpl2.isComposable());
- }
-
- @Test
- public void existingReturnTypeGetsReturned() {
- EdmReturnType returnType = functionImpl1.getReturnType();
- assertNotNull(returnType);
- assertEquals("String", returnType.getType().getName());
- }
-
- @Test(expected = EdmException.class)
- public void nonExistingReturnTypeResultsInException() {
- functionImpl2.getReturnType();
- fail();
- }
-
-}