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(); - } - -}