http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java deleted file mode 100644 index eff637f..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java +++ /dev/null @@ -1,67 +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.serializer.json; - -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.EdmComplexType; -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; - -public class ComplexTypeHelper { - - public static EdmComplexType createType() throws ODataException { - 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); - - 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); - - return new EdmComplexTypeImpl(edm, name, complexType); - } -}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java deleted file mode 100644 index 4be074b..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ODataJsonSerializerTest.java +++ /dev/null @@ -1,72 +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.serializer.json; - -import static org.junit.Assert.assertEquals; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.List; - -import org.apache.olingo.commons.api.ex.ODataException; -import org.apache.olingo.commons.api.data.ComplexValue; -import org.apache.olingo.commons.api.data.ContextURL; -import org.apache.olingo.commons.api.data.Property; -import org.apache.olingo.commons.api.data.ValueType; -import org.apache.olingo.commons.api.format.ContentType; -import org.apache.olingo.server.api.serializer.ComplexSerializerOptions; -import org.junit.Test; - -public class ODataJsonSerializerTest { - @Test - public void testCollectionComplex() throws ODataException, IOException { - final List<ComplexValue> col = new ArrayList<ComplexValue>(); - col.add(getValues(1)); - col.add(getValues(2)); - final Property complexCollection = new Property(null, "ComplexCol", ValueType.COLLECTION_COMPLEX, col); - - final ODataJsonSerializer serializer = new ODataJsonSerializer(ContentType.APPLICATION_JSON); - final ComplexSerializerOptions options = ComplexSerializerOptions.with() - .contextURL(ContextURL.with().selectList("ComplexCollection").build()).build(); - final InputStream in = serializer.complexCollection(null, ComplexTypeHelper.createType(), - complexCollection, options).getContent(); - final BufferedReader reader = new BufferedReader(new InputStreamReader(in)); - - String line; - while ((line = reader.readLine()) != null) { - if (line.contains("value")) { - assertEquals( - "{\"@odata.context\":\"$metadata(ComplexCollection)\",\"value\":" - + "[{\"prop1\":\"test1\",\"prop2\":\"test11\"},{\"prop1\":\"test2\",\"prop2\":\"test22\"}]}", - line); - } - } - - } - - private ComplexValue getValues(final int i) { - ComplexValue value = new ComplexValue(); - value.getValue().add(new Property(null, "prop1", ValueType.PRIMITIVE, "test" + i)); - value.getValue().add(new Property(null, "prop2", ValueType.PRIMITIVE, "test" + i + i)); - return value; - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java index 8f5cb87..febd3eb 100644 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java +++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ServerErrorSerializerTest.java @@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull; import java.io.InputStream; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.apache.commons.io.IOUtils; @@ -32,7 +33,6 @@ import org.apache.olingo.server.api.OData; import org.apache.olingo.server.api.ODataServerError; import org.apache.olingo.server.api.serializer.ODataSerializer; import org.apache.olingo.server.api.serializer.SerializerException; -import org.junit.Before; import org.junit.Test; import com.fasterxml.jackson.databind.JsonNode; @@ -41,10 +41,9 @@ import com.fasterxml.jackson.databind.node.JsonNodeType; public class ServerErrorSerializerTest { - ODataSerializer ser; + final ODataSerializer ser; - @Before - public void before() throws Exception { + public ServerErrorSerializerTest() throws SerializerException { ser = OData.newInstance().createSerializer(ContentType.JSON); } @@ -110,10 +109,10 @@ public class ServerErrorSerializerTest { @Test public void verifiedWithJacksonParser() throws Exception { - List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>(); - details.add(new ODataErrorDetail().setCode("detailCode").setMessage("detailMessage").setTarget("detailTarget")); ODataServerError error = - new ODataServerError().setCode("Code").setMessage("Message").setTarget("Target").setDetails(details); + new ODataServerError().setCode("Code").setMessage("Message").setTarget("Target") + .setDetails(Collections.singletonList( + new ODataErrorDetail().setCode("detailCode").setMessage("detailMessage").setTarget("detailTarget"))); InputStream stream = ser.error(error).getContent(); JsonNode tree = new ObjectMapper().readTree(stream); assertNotNull(tree); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java index 6cf2048..ee53bc3 100644 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java +++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java @@ -23,8 +23,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.net.URI; -import java.util.ArrayList; -import java.util.List; import org.apache.olingo.commons.api.data.ContextURL; import org.apache.olingo.commons.api.data.ContextURL.Suffix; @@ -33,23 +31,18 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet; import org.apache.olingo.commons.api.edm.EdmEntityType; 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.apache.olingo.commons.core.edm.primitivetype.EdmString; +import org.apache.olingo.server.api.OData; import org.junit.Test; import org.mockito.Mockito; public class ContextURLBuilderTest { + private static final URI serviceRoot = URI.create("http://host/service/"); + @Test public void buildServiceDocument() { - final ContextURL contextURL = ContextURL.with() - .serviceRoot(URI.create("http://host/service/")).build(); - assertEquals("http://host/service/$metadata", ContextURLBuilder.create(contextURL).toASCIIString()); + final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot).build(); + assertEquals(serviceRoot + "$metadata", ContextURLBuilder.create(contextURL).toASCIIString()); } @Test @@ -62,10 +55,10 @@ public class ContextURLBuilderTest { public void buildEntitySet() { EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class); Mockito.when(entitySet.getName()).thenReturn("Customers"); - final ContextURL contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot) .entitySet(entitySet) .build(); - assertEquals("http://host/service/$metadata#Customers", ContextURLBuilder.create(contextURL).toASCIIString()); + assertEquals(serviceRoot + "$metadata#Customers", ContextURLBuilder.create(contextURL).toASCIIString()); } @Test @@ -74,11 +67,11 @@ public class ContextURLBuilderTest { Mockito.when(entitySet.getName()).thenReturn("Customers"); EdmEntityType derivedType = Mockito.mock(EdmEntityType.class); Mockito.when(derivedType.getFullQualifiedName()).thenReturn(new FullQualifiedName("Model", "VipCustomer")); - final ContextURL contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot) .entitySet(entitySet) .derived(derivedType) .build(); - assertEquals("http://host/service/$metadata#Customers/Model.VipCustomer", + assertEquals(serviceRoot + "$metadata#Customers/Model.VipCustomer", ContextURLBuilder.create(contextURL).toASCIIString()); } @@ -86,30 +79,30 @@ public class ContextURLBuilderTest { public void buildEntitySetWithEntitySuffix() { EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class); Mockito.when(entitySet.getName()).thenReturn("Customers"); - final ContextURL contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot) .entitySet(entitySet) .suffix(Suffix.ENTITY) .build(); - assertEquals("http://host/service/$metadata#Customers/$entity", ContextURLBuilder.create(contextURL) - .toASCIIString()); + assertEquals(serviceRoot + "$metadata#Customers/$entity", + ContextURLBuilder.create(contextURL).toASCIIString()); } @Test public void buildEntity() { EdmEntityType entityType = mock(EdmEntityType.class); - when(entityType.getFullQualifiedName()).thenReturn(new FullQualifiedName("namespace.entityType")); - ContextURL contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + when(entityType.getFullQualifiedName()).thenReturn(new FullQualifiedName("namespace", "entityType")); + ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot) .type(entityType) .build(); - assertEquals("http://host/service/$metadata#namespace.entityType", ContextURLBuilder.create(contextURL) - .toASCIIString()); + assertEquals(serviceRoot + "$metadata#namespace.entityType", + ContextURLBuilder.create(contextURL).toASCIIString()); - contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + contextURL = ContextURL.with().serviceRoot(serviceRoot) .type(entityType) .asCollection() .build(); - assertEquals("http://host/service/$metadata#Collection(namespace.entityType)", ContextURLBuilder.create(contextURL) - .toASCIIString()); + assertEquals(serviceRoot + "$metadata#Collection(namespace.entityType)", + ContextURLBuilder.create(contextURL).toASCIIString()); } @Test(expected = IllegalArgumentException.class) @@ -125,12 +118,12 @@ public class ContextURLBuilderTest { Mockito.when(entitySet.getName()).thenReturn("Customers"); EdmEntityType derivedType = Mockito.mock(EdmEntityType.class); Mockito.when(derivedType.getFullQualifiedName()).thenReturn(new FullQualifiedName("Model", "VipCustomer")); - final ContextURL contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + final ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot) .entitySet(entitySet) .derived(derivedType) .suffix(Suffix.ENTITY) .build(); - assertEquals("http://host/service/$metadata#Customers/Model.VipCustomer/$entity", + assertEquals(serviceRoot + "$metadata#Customers/Model.VipCustomer/$entity", ContextURLBuilder.create(contextURL).toASCIIString()); } @@ -138,72 +131,55 @@ public class ContextURLBuilderTest { public void buildProperty() { EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class); Mockito.when(entitySet.getName()).thenReturn("Customers"); - ContextURL contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot) .entitySet(entitySet) .keyPath("1") .navOrPropertyPath("Name") .build(); - assertEquals("http://host/service/$metadata#Customers(1)/Name", + assertEquals(serviceRoot + "$metadata#Customers(1)/Name", ContextURLBuilder.create(contextURL).toASCIIString()); - contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + contextURL = ContextURL.with().serviceRoot(serviceRoot) .entitySet(entitySet) .keyPath("one=1,two='two'") .navOrPropertyPath("ComplexName") .selectList("Part1") .build(); - assertEquals("http://host/service/$metadata#Customers(one=1,two='two')/ComplexName(Part1)", + assertEquals(serviceRoot + "$metadata#Customers(one=1,two='two')/ComplexName(Part1)", ContextURLBuilder.create(contextURL).toASCIIString()); } @Test public void buildPrimitiveType() { - EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class); - Mockito.when(entitySet.getName()).thenReturn("Customers"); - ContextURL contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) - .type(EdmString.getInstance()) + ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot) + .type(OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String)) .build(); - assertEquals("http://host/service/$metadata#Edm.String", + assertEquals(serviceRoot + "$metadata#Edm.String", ContextURLBuilder.create(contextURL).toASCIIString()); - contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) - .type(EdmString.getInstance()).asCollection() + contextURL = ContextURL.with().serviceRoot(serviceRoot) + .type(OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String)).asCollection() .build(); - assertEquals("http://host/service/$metadata#Collection(Edm.String)", + assertEquals(serviceRoot + "$metadata#Collection(Edm.String)", ContextURLBuilder.create(contextURL).toString()); } @Test public void buildComplexType() 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); - - EdmComplexType baseType = new EdmComplexTypeImpl(edm, baseName, baseComplexType); + EdmComplexType baseType = mock(EdmComplexType.class); + when(baseType.getFullQualifiedName()).thenReturn(new FullQualifiedName("namespace", "BaseTypeName")); - EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class); - Mockito.when(entitySet.getName()).thenReturn("Customers"); - ContextURL contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + ContextURL contextURL = ContextURL.with().serviceRoot(serviceRoot) .type(baseType) .build(); - assertEquals("http://host/service/$metadata#namespace.BaseTypeName", + assertEquals(serviceRoot + "$metadata#namespace.BaseTypeName", ContextURLBuilder.create(contextURL).toASCIIString()); - contextURL = ContextURL.with().serviceRoot(URI.create("http://host/service/")) + contextURL = ContextURL.with().serviceRoot(serviceRoot) .type(baseType) .asCollection() .build(); - assertEquals("http://host/service/$metadata#Collection(namespace.BaseTypeName)", + assertEquals(serviceRoot + "$metadata#Collection(namespace.BaseTypeName)", ContextURLBuilder.create(contextURL).toASCIIString()); } @@ -220,8 +196,8 @@ public class ContextURLBuilderTest { @Test(expected = IllegalArgumentException.class) public void buildReferenceWithEntitySet() { - EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class); - Mockito.when(entitySet.getName()).thenReturn("Customers"); + EdmEntitySet entitySet = mock(EdmEntitySet.class); + when(entitySet.getName()).thenReturn("Customers"); ContextURLBuilder.create(ContextURL.with().entitySet(entitySet).suffix(Suffix.REFERENCE).build()); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java index e750aad..8c6e4ed 100644 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java +++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java @@ -35,7 +35,9 @@ import java.util.List; import org.apache.commons.io.IOUtils; import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.EdmComplexType; +import org.apache.olingo.commons.api.edm.EdmPrimitiveType; import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; +import org.apache.olingo.commons.api.edm.EdmProperty; import org.apache.olingo.commons.api.edm.EdmSchema; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.edm.provider.CsdlAction; @@ -85,7 +87,6 @@ import org.apache.olingo.commons.api.edm.provider.annotation.CsdlUrlRef; //CHECKSTYLE:ON import org.apache.olingo.commons.api.ex.ODataException; import org.apache.olingo.commons.api.format.ContentType; -import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl; import org.apache.olingo.server.api.OData; import org.apache.olingo.server.api.ServiceMetadata; import org.apache.olingo.server.api.edmx.EdmxReference; @@ -130,33 +131,12 @@ public class MetadataDocumentXmlSerializerTest { InputStream metadata = serializer.metadataDocument(serviceMetadata).getContent(); assertNotNull(metadata); - assertEquals("<?xml version='1.0' encoding='UTF-8'?>" + - "<edmx:Edmx Version=\"4.0\" xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\">" + - "<edmx:DataServices>" + - "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\" Namespace=\"MyNamespace\"/>" + - "</edmx:DataServices>" + - "</edmx:Edmx>", - IOUtils.toString(metadata)); - } - - /** Writes simplest (empty) Schema. */ - @Test - public void writeMetadataWithSimpleSchema() throws Exception { - EdmSchema schema = mock(EdmSchema.class); - when(schema.getNamespace()).thenReturn("MyNamespace"); - Edm edm = mock(Edm.class); - when(edm.getSchemas()).thenReturn(Arrays.asList(schema)); - ServiceMetadata serviceMetadata = mock(ServiceMetadata.class); - when(serviceMetadata.getEdm()).thenReturn(edm); - - InputStream metadata = serializer.metadataDocument(serviceMetadata).getContent(); - assertNotNull(metadata); - assertEquals("<?xml version='1.0' encoding='UTF-8'?>" + - "<edmx:Edmx Version=\"4.0\" xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\">" + - "<edmx:DataServices>" + - "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\" Namespace=\"MyNamespace\"/>" + - "</edmx:DataServices>" + - "</edmx:Edmx>", + assertEquals("<?xml version='1.0' encoding='UTF-8'?>" + + "<edmx:Edmx Version=\"4.0\" xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\">" + + "<edmx:DataServices>" + + "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\" Namespace=\"MyNamespace\"/>" + + "</edmx:DataServices>" + + "</edmx:Edmx>", IOUtils.toString(metadata)); } @@ -370,17 +350,38 @@ public class MetadataDocumentXmlSerializerTest { List<EdmComplexType> complexTypes = new ArrayList<EdmComplexType>(); FullQualifiedName name = new FullQualifiedName("namespace", "ComplexType"); - CsdlComplexType complexType = new CsdlComplexType(); - complexType.setAbstract(true); - complexType.setName(name.getName()); - complexType.setOpenType(true); - List<CsdlProperty> properties = new ArrayList<CsdlProperty>(); - - properties.add(new CsdlProperty().setName("prop1").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - properties.add(new CsdlProperty().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - - complexType.setProperties(properties); - EdmComplexTypeImpl c1 = new EdmComplexTypeImpl(edm, name, complexType); + EdmComplexType complexType = mock(EdmComplexType.class); + when(complexType.isAbstract()).thenReturn(true); + when(complexType.getFullQualifiedName()).thenReturn(name); + when(complexType.getName()).thenReturn(name.getName()); + when(complexType.isOpenType()).thenReturn(true); + + final EdmPrimitiveType stringType = OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.String); + when(complexType.getPropertyNames()).thenReturn(Arrays.asList("prop1", "prop2")); + EdmProperty prop1 = mock(EdmProperty.class); + when(prop1.isPrimitive()).thenReturn(true); + when(prop1.getType()).thenReturn(stringType); + when(prop1.isNullable()).thenReturn(true); + when(prop1.getMaxLength()).thenReturn(null); + when(prop1.getPrecision()).thenReturn(null); + when(prop1.getScale()).thenReturn(null); + when(prop1.isUnicode()).thenReturn(true); + when(complexType.getStructuralProperty("prop1")).thenReturn(prop1); + EdmProperty prop2 = mock(EdmProperty.class); + when(prop2.isPrimitive()).thenReturn(true); + when(prop2.getType()).thenReturn(stringType); + when(prop2.isNullable()).thenReturn(true); + when(prop2.getMaxLength()).thenReturn(null); + when(prop2.getPrecision()).thenReturn(null); + when(prop2.getScale()).thenReturn(null); + when(prop2.isUnicode()).thenReturn(true); + when(complexType.getStructuralProperty("prop2")).thenReturn(prop2); + complexTypes.add(complexType); + + EdmComplexType c1 = mock(EdmComplexType.class); + when(c1.getFullQualifiedName()).thenReturn(new FullQualifiedName("namespace", "C1")); + when(c1.getName()).thenReturn("C1"); + when(c1.getBaseType()).thenReturn(complexType); complexTypes.add(c1); when(schema.getComplexTypes()).thenReturn(complexTypes); @@ -418,20 +419,17 @@ public class MetadataDocumentXmlSerializerTest { @Override public List<CsdlAliasInfo> getAliasInfos() throws ODataException { - return Arrays.asList( - new CsdlAliasInfo().setAlias("Alias").setNamespace(nameSpace) - ); + return Collections.singletonList(new CsdlAliasInfo().setAlias("Alias").setNamespace(nameSpace)); } @Override public CsdlEnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException { - if ("ENString".equals(enumTypeName.getName())) { + if (nameENString.equals(enumTypeName)) { return new CsdlEnumType() - .setName("ENString") + .setName(nameENString.getName()) .setFlags(true) .setUnderlyingType(EdmPrimitiveTypeKind.Int16.getFullQualifiedName()) - .setMembers(Arrays.asList( - new CsdlEnumMember().setName("String1").setValue("1"))); + .setMembers(Collections.singletonList(new CsdlEnumMember().setName("String1").setValue("1"))); } return null; } @@ -442,15 +440,14 @@ public class MetadataDocumentXmlSerializerTest { return new CsdlEntityType() .setName("ETAbstract") .setAbstract(true) - .setProperties(Arrays.asList(propertyString)); + .setProperties(Collections.singletonList(propertyString)); } else if (entityTypeName.equals(nameETAbstractBase)) { return new CsdlEntityType() .setName("ETAbstractBase") .setBaseType(nameETAbstract) - .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16"))) - .setProperties(Arrays.asList( - propertyInt16_NotNullable)); + .setKey(Collections.singletonList(new CsdlPropertyRef().setName("PropertyInt16"))) + .setProperties(Collections.singletonList(propertyInt16_NotNullable)); } return null; } @@ -468,7 +465,6 @@ public class MetadataDocumentXmlSerializerTest { .setName("CTTwoPrimBase") .setBaseType(nameCTTwoPrim) .setProperties(Arrays.asList(propertyInt16_NotNullable, propertyString)); - } return null; @@ -477,14 +473,11 @@ public class MetadataDocumentXmlSerializerTest { @Override public List<CsdlAction> getActions(final FullQualifiedName actionName) throws ODataException { if (actionName.equals(nameUARTPrimParam)) { - return Arrays.asList( + return Collections.singletonList( new CsdlAction().setName("UARTPrimParam") - .setParameters(Arrays.asList( + .setParameters(Collections.singletonList( new CsdlParameter().setName("ParameterInt16").setType(nameInt16))) - - .setReturnType(new CsdlReturnType().setType(nameString)) - ); - + .setReturnType(new CsdlReturnType().setType(nameString))); } return null; } @@ -492,14 +485,11 @@ public class MetadataDocumentXmlSerializerTest { @Override public List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException { if (functionName.equals(nameUFNRTInt16)) { - return Arrays.asList( + return Collections.singletonList( new CsdlFunction() .setName("UFNRTInt16") - .setParameters(new ArrayList<CsdlParameter>()) - .setReturnType( - new CsdlReturnType().setType(nameInt16)) - ); - + .setParameters(Collections.<CsdlParameter> emptyList()) + .setReturnType(new CsdlReturnType().setType(nameInt16))); } return null; } @@ -511,7 +501,6 @@ public class MetadataDocumentXmlSerializerTest { return new CsdlEntitySet() .setName("ESAllPrim") .setType(nameETAbstractBase); - } return null; } @@ -523,7 +512,6 @@ public class MetadataDocumentXmlSerializerTest { return new CsdlSingleton() .setName("SI") .setType(nameETAbstractBase); - } return null; } @@ -536,7 +524,6 @@ public class MetadataDocumentXmlSerializerTest { return new CsdlActionImport() .setName("AIRTPrimParam") .setAction(nameUARTPrimParam); - } } return null; @@ -552,7 +539,6 @@ public class MetadataDocumentXmlSerializerTest { .setName("FINRTInt16") .setFunction(nameUFNRTInt16) .setIncludeInServiceDocument(true); - } } return null; @@ -565,52 +551,42 @@ public class MetadataDocumentXmlSerializerTest { schema.setNamespace(nameSpace); schema.setAlias("Alias"); schemas.add(schema); + // EnumTypes - List<CsdlEnumType> enumTypes = new ArrayList<CsdlEnumType>(); - schema.setEnumTypes(enumTypes); - enumTypes.add(getEnumType(nameENString)); - // EntityTypes - List<CsdlEntityType> entityTypes = new ArrayList<CsdlEntityType>(); - schema.setEntityTypes(entityTypes); + schema.setEnumTypes(Collections.singletonList(getEnumType(nameENString))); - entityTypes.add(getEntityType(nameETAbstract)); - entityTypes.add(getEntityType(nameETAbstractBase)); + // EntityTypes + schema.setEntityTypes(Arrays.asList( + getEntityType(nameETAbstract), + getEntityType(nameETAbstractBase))); // ComplexTypes - List<CsdlComplexType> complexType = new ArrayList<CsdlComplexType>(); - schema.setComplexTypes(complexType); - complexType.add(getComplexType(nameCTTwoPrim)); - complexType.add(getComplexType(nameCTTwoPrimBase)); + schema.setComplexTypes(Arrays.asList( + getComplexType(nameCTTwoPrim), + getComplexType(nameCTTwoPrimBase))); // TypeDefinitions // Actions - List<CsdlAction> actions = new ArrayList<CsdlAction>(); - schema.setActions(actions); - actions.addAll(getActions(nameUARTPrimParam)); + schema.setActions(getActions(nameUARTPrimParam)); // Functions - List<CsdlFunction> functions = new ArrayList<CsdlFunction>(); - schema.setFunctions(functions); - - functions.addAll(getFunctions(nameUFNRTInt16)); + schema.setFunctions(getFunctions(nameUFNRTInt16)); // EntityContainer schema.setEntityContainer(getEntityContainer()); //Terms - List<CsdlTerm> terms = new ArrayList<CsdlTerm>(); - terms.add(getTerm(new FullQualifiedName("ns.term"))); - terms.add(getTerm(new FullQualifiedName("namespace.Term1"))); - terms.add(getTerm(new FullQualifiedName("ns.Term2"))); - terms.add(getTerm(new FullQualifiedName("ns.Term3"))); - terms.add(getTerm(new FullQualifiedName("ns.Term4"))); - schema.setTerms(terms); - + schema.setTerms(Arrays.asList( + getTerm(new FullQualifiedName("ns","term")), + getTerm(new FullQualifiedName("namespace", "Term1")), + getTerm(new FullQualifiedName("ns", "Term2")), + getTerm(new FullQualifiedName("ns", "Term3")), + getTerm(new FullQualifiedName("ns", "Term4")))); + // Annotationgroups - List<CsdlAnnotations> annotationGroups = new ArrayList<CsdlAnnotations>(); - annotationGroups.add(getAnnotationsGroup(new FullQualifiedName("Alias.ETAbstract"), "Tablett")); - schema.setAnnotationsGroup(annotationGroups); + schema.setAnnotationsGroup(Collections.singletonList( + getAnnotationsGroup(new FullQualifiedName("Alias", "ETAbstract"), "Tablett"))); return schemas; } @@ -630,24 +606,16 @@ public class MetadataDocumentXmlSerializerTest { container.setName("container"); // EntitySets - List<CsdlEntitySet> entitySets = new ArrayList<CsdlEntitySet>(); - container.setEntitySets(entitySets); - entitySets.add(getEntitySet(nameContainer, "ESAllPrim")); + container.setEntitySets(Collections.singletonList(getEntitySet(nameContainer, "ESAllPrim"))); // Singletons - List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>(); - container.setSingletons(singletons); - singletons.add(getSingleton(nameContainer, "SI")); + container.setSingletons(Collections.singletonList(getSingleton(nameContainer, "SI"))); // ActionImports - List<CsdlActionImport> actionImports = new ArrayList<CsdlActionImport>(); - container.setActionImports(actionImports); - actionImports.add(getActionImport(nameContainer, "AIRTPrimParam")); + container.setActionImports(Collections.singletonList(getActionImport(nameContainer, "AIRTPrimParam"))); // FunctionImports - List<CsdlFunctionImport> functionImports = new ArrayList<CsdlFunctionImport>(); - container.setFunctionImports(functionImports); - functionImports.add(getFunctionImport(nameContainer, "FINRTInt16")); + container.setFunctionImports(Collections.singletonList(getFunctionImport(nameContainer, "FINRTInt16"))); return container; } @@ -659,36 +627,36 @@ public class MetadataDocumentXmlSerializerTest { @Override public CsdlTerm getTerm(FullQualifiedName termName) throws ODataException { - if (new FullQualifiedName("ns.term").equals(termName)) { + if (new FullQualifiedName("ns", "term").equals(termName)) { return new CsdlTerm().setType("Edm.String").setName("term"); - - } else if(new FullQualifiedName("namespace.Term1").equals(termName)){ + + } else if(new FullQualifiedName("namespace", "Term1").equals(termName)){ return new CsdlTerm().setType("Edm.String").setName("Term1"); - - } else if(new FullQualifiedName("ns.Term2").equals(termName)){ + + } else if(new FullQualifiedName("ns", "Term2").equals(termName)){ return new CsdlTerm().setType("Edm.String").setName("Term2") .setNullable(false).setDefaultValue("default").setMaxLength(1).setPrecision(2).setScale(3); - - } else if(new FullQualifiedName("ns.Term3").equals(termName)){ + + } else if(new FullQualifiedName("ns", "Term3").equals(termName)){ return new CsdlTerm().setType("Edm.String").setName("Term3") .setAppliesTo(Arrays.asList("Property", "EntitySet", "Schema")); - - } else if(new FullQualifiedName("ns.Term4").equals(termName)){ + + } else if(new FullQualifiedName("ns", "Term4").equals(termName)){ return new CsdlTerm().setType("Edm.String").setName("Term4").setBaseTerm("namespace.Term1"); - + } return null; } @Override public CsdlAnnotations getAnnotationsGroup(FullQualifiedName targetName, String qualifier) throws ODataException { - if (new FullQualifiedName("Alias.ETAbstract").equals(targetName) && "Tablett".equals(qualifier)) { + if (new FullQualifiedName("Alias", "ETAbstract").equals(targetName) && "Tablett".equals(qualifier)) { CsdlAnnotations annoGroup = new CsdlAnnotations(); annoGroup.setTarget("Alias.ETAbstract"); annoGroup.setQualifier("Tablett"); - List<CsdlAnnotation> innerAnnotations = new ArrayList<CsdlAnnotation>(); - innerAnnotations.add(new CsdlAnnotation().setTerm("ns.term")); + List<CsdlAnnotation> innerAnnotations = Collections.singletonList( + new CsdlAnnotation().setTerm("ns.term")); List<CsdlAnnotation> annotationsList = new ArrayList<CsdlAnnotation>(); annoGroup.setAnnotations(annotationsList); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java index aea1fdb..907228f 100644 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java +++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/ServerErrorXmlSerializerTest.java @@ -21,8 +21,7 @@ package org.apache.olingo.server.core.serializer.xml; import static org.junit.Assert.assertEquals; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; +import java.util.Collections; import org.apache.commons.io.IOUtils; import org.apache.olingo.commons.api.ex.ODataErrorDetail; @@ -31,15 +30,13 @@ import org.apache.olingo.server.api.OData; import org.apache.olingo.server.api.ODataServerError; import org.apache.olingo.server.api.serializer.ODataSerializer; import org.apache.olingo.server.api.serializer.SerializerException; -import org.junit.Before; import org.junit.Test; public class ServerErrorXmlSerializerTest { - ODataSerializer ser; + final ODataSerializer ser; - @Before - public void before() throws Exception { + public ServerErrorXmlSerializerTest() throws SerializerException { ser = OData.newInstance().createSerializer(ContentType.APPLICATION_XML); } @@ -53,7 +50,7 @@ public class ServerErrorXmlSerializerTest { + "<error xmlns=\"http://docs.oasis-open.org/odata/ns/metadata\">" + "<code>0</code>" + "<message>ErrorMessage</message>" - + "</error>", + + "</error>", jsonString); } @@ -64,18 +61,15 @@ public class ServerErrorXmlSerializerTest { @Test public void singleDetailNothingSet() throws Exception { - ODataErrorDetail detail = new ODataErrorDetail(); - detail.setCode("detail code"); - detail.setMessage("detail message"); - - List<ODataErrorDetail> details = new ArrayList<ODataErrorDetail>(); - details.add(detail); - - ODataServerError error = new ODataServerError().setDetails(details); - error.setCode("code"); - error.setMessage("err message"); - error.setTarget("target"); - + ODataServerError error = new ODataServerError() + .setCode("code") + .setMessage("err message") + .setTarget("target") + .setDetails(Collections.singletonList( + new ODataErrorDetail() + .setCode("detail code") + .setMessage("detail message"))); + InputStream stream = ser.error(error).getContent(); String jsonString = IOUtils.toString(stream); assertEquals("<?xml version='1.0' encoding='UTF-8'?>" http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java index cf56edf..5e3499c 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java @@ -25,11 +25,13 @@ import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.util.Collections; import java.util.List; import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.EdmBindingTarget; -import org.apache.olingo.commons.core.edm.EdmProviderImpl; +import org.apache.olingo.server.api.OData; +import org.apache.olingo.server.api.edmx.EdmxReference; import org.apache.olingo.server.api.etag.CustomETagSupport; import org.apache.olingo.server.api.etag.PreconditionException; import org.apache.olingo.server.api.uri.UriInfo; @@ -47,7 +49,8 @@ import org.mockito.stubbing.Answer; public class PreconditionsValidatorTest { - private static final Edm edm = new EdmProviderImpl(new EdmTechProvider()); + private static final Edm edm = OData.newInstance().createServiceMetadata( + new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm(); // -------------- POSITIVE TESTS -------------------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java index fbaf085..c5fcfe2 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java @@ -41,12 +41,11 @@ import org.apache.olingo.commons.api.data.Link; import org.apache.olingo.commons.api.data.Property; import org.apache.olingo.commons.api.data.ValueType; import org.apache.olingo.commons.api.edm.EdmEntityType; +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.CsdlMapping; import org.apache.olingo.commons.api.format.ContentType; -import org.apache.olingo.commons.core.edm.primitivetype.EdmDate; -import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset; import org.apache.olingo.server.api.OData; import org.apache.olingo.server.api.deserializer.DeserializerException; import org.apache.olingo.server.api.deserializer.ODataDeserializer; @@ -571,13 +570,15 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe EdmProperty propertyDate = mock(EdmProperty.class); when(propertyDate.getName()).thenReturn("PropertyDate"); when(propertyDate.getMapping()).thenReturn(mapping); - when(propertyDate.getType()).thenReturn(new EdmDate()); + when(propertyDate.getType()).thenReturn( + OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Date)); when(entityType.getProperty("PropertyDate")).thenReturn(propertyDate); EdmProperty propertyDateTimeOffset = mock(EdmProperty.class); when(propertyDateTimeOffset.getName()).thenReturn("PropertyDateTimeOffset"); when(propertyDateTimeOffset.getMapping()).thenReturn(mapping); - when(propertyDateTimeOffset.getType()).thenReturn(new EdmDateTimeOffset()); + when(propertyDateTimeOffset.getType()).thenReturn( + OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.DateTimeOffset)); when(entityType.getProperty("PropertyDateTimeOffset")).thenReturn(propertyDateTimeOffset); String entityString = http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java index 8b9431b..a257eaa 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java @@ -32,12 +32,11 @@ import org.apache.olingo.commons.api.data.Link; import org.apache.olingo.commons.api.data.Property; import org.apache.olingo.commons.api.edm.EdmEntityContainer; import org.apache.olingo.commons.api.edm.EdmEntitySet; +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.EdmProperty; -import org.apache.olingo.commons.core.edm.primitivetype.EdmBinary; -import org.apache.olingo.commons.core.edm.primitivetype.EdmDate; -import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset; -import org.apache.olingo.commons.core.edm.primitivetype.EdmTimeOfDay; +import org.apache.olingo.server.api.OData; import org.apache.olingo.server.api.deserializer.ODataDeserializer; import org.apache.olingo.server.core.deserializer.AbstractODataDeserializerTest; import org.custommonkey.xmlunit.XMLUnit; @@ -59,21 +58,9 @@ public class ODataXmlDeserializerTest extends AbstractODataDeserializerTest { XMLUnit.setCompareUnmatched(false); } - protected byte[] edmBinary(String value) throws EdmPrimitiveTypeException { - return EdmBinary.getInstance().valueOfString(value, true, null, null, null, true, - byte[].class); - } - protected Object edmDate(String value) throws EdmPrimitiveTypeException { - return EdmDate.getInstance().valueOfString(value, true, null, null, null, true, - EdmDate.getInstance().getDefaultType()); - } - protected Object edmDateTimeOffset(String value) throws EdmPrimitiveTypeException { - return EdmDateTimeOffset.getInstance().valueOfString(value, true, null, null, null, true, - EdmDateTimeOffset.getInstance().getDefaultType()); - } - protected Object edmTimeOfDay(String value) throws EdmPrimitiveTypeException { - return EdmTimeOfDay.getInstance().valueOfString(value, true, null, null, null, true, - EdmTimeOfDay.getInstance().getDefaultType()); + protected Object valueOf(final String value, final EdmPrimitiveTypeKind kind) throws EdmPrimitiveTypeException { + final EdmPrimitiveType type = OData.newInstance().createPrimitiveTypeInstance(kind); + return type.valueOfString(value, true, null, null, null, true, type.getDefaultType()); } @Test @@ -131,14 +118,17 @@ public class ODataXmlDeserializerTest extends AbstractODataDeserializerTest { Assert.assertEquals(1.79E20F, result.getProperty("PropertySingle").asPrimitive()); Assert.assertEquals(-1.79E19, result.getProperty("PropertyDouble").asPrimitive()); Assert.assertEquals(BigDecimal.valueOf(34), result.getProperty("PropertyDecimal").asPrimitive()); - Assert.assertArrayEquals(edmBinary("ASNFZ4mrze8="), (byte[]) result.getProperty("PropertyBinary").asPrimitive()); - Assert.assertEquals(edmDate("2012-12-03"), result.getProperty("PropertyDate").asPrimitive()); - Assert.assertEquals(edmDateTimeOffset("2012-12-03T07:16:23Z"), result.getProperty("PropertyDateTimeOffset") - .asPrimitive()); + Assert.assertArrayEquals((byte[]) valueOf("ASNFZ4mrze8=", EdmPrimitiveTypeKind.Binary), + (byte[]) result.getProperty("PropertyBinary").asPrimitive()); + Assert.assertEquals(valueOf("2012-12-03", EdmPrimitiveTypeKind.Date), + result.getProperty("PropertyDate").asPrimitive()); + Assert.assertEquals(valueOf("2012-12-03T07:16:23Z", EdmPrimitiveTypeKind.DateTimeOffset), + result.getProperty("PropertyDateTimeOffset").asPrimitive()); Assert.assertEquals(BigDecimal.valueOf(6), result.getProperty("PropertyDuration").asPrimitive()); Assert.assertEquals(UUID.fromString("01234567-89ab-cdef-0123-456789abcdef"), result.getProperty("PropertyGuid").asPrimitive()); - Assert.assertEquals(edmTimeOfDay("03:26:05"), result.getProperty("PropertyTimeOfDay").asPrimitive()); + Assert.assertEquals(valueOf("03:26:05", EdmPrimitiveTypeKind.TimeOfDay), + result.getProperty("PropertyTimeOfDay").asPrimitive()); } @Test @@ -198,14 +188,17 @@ public class ODataXmlDeserializerTest extends AbstractODataDeserializerTest { Assert.assertEquals(1.79E20F, result.getProperty("PropertySingle").asPrimitive()); Assert.assertEquals(-1.79E19, result.getProperty("PropertyDouble").asPrimitive()); Assert.assertEquals(BigDecimal.valueOf(34), result.getProperty("PropertyDecimal").asPrimitive()); - Assert.assertArrayEquals(edmBinary("ASNFZ4mrze8="), (byte[]) result.getProperty("PropertyBinary").asPrimitive()); - Assert.assertEquals(edmDate("2012-12-03"), result.getProperty("PropertyDate").asPrimitive()); - Assert.assertEquals(edmDateTimeOffset("2012-12-03T07:16:23Z"), result.getProperty("PropertyDateTimeOffset") - .asPrimitive()); + Assert.assertArrayEquals((byte[]) valueOf("ASNFZ4mrze8=", EdmPrimitiveTypeKind.Binary), + (byte[]) result.getProperty("PropertyBinary").asPrimitive()); + Assert.assertEquals(valueOf("2012-12-03", EdmPrimitiveTypeKind.Date), + result.getProperty("PropertyDate").asPrimitive()); + Assert.assertEquals(valueOf("2012-12-03T07:16:23Z", EdmPrimitiveTypeKind.DateTimeOffset), + result.getProperty("PropertyDateTimeOffset").asPrimitive()); Assert.assertEquals(BigDecimal.valueOf(6), result.getProperty("PropertyDuration").asPrimitive()); Assert.assertEquals(UUID.fromString("01234567-89ab-cdef-0123-456789abcdef"), result.getProperty("PropertyGuid").asPrimitive()); - Assert.assertEquals(edmTimeOfDay("03:26:05"), result.getProperty("PropertyTimeOfDay").asPrimitive()); + Assert.assertEquals(valueOf("03:26:05", EdmPrimitiveTypeKind.TimeOfDay), + result.getProperty("PropertyTimeOfDay").asPrimitive()); } @Test @@ -477,9 +470,10 @@ public class ODataXmlDeserializerTest extends AbstractODataDeserializerTest { Entity inline = navLink.getInlineEntity(); Assert.assertEquals(1, inline.getProperties().size()); Assert.assertEquals(2, inline.getNavigationBindings().size()); - Assert.assertEquals(edmDate("2012-12-03"), inline.getProperty("PropertyDate").asPrimitive()); + Assert.assertEquals(valueOf("2012-12-03", EdmPrimitiveTypeKind.Date), + inline.getProperty("PropertyDate").asPrimitive()); } - + @Test public void primitiveProperty() throws Exception { final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESAllPrim"); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java index b655e49..b8e8a07 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java @@ -50,7 +50,6 @@ public class MetadataDocumentTest { final String metadata = IOUtils.toString( odata.createSerializer(ContentType.APPLICATION_XML).metadataDocument(serviceMetadata).getContent()); - System.out.println(metadata); assertNotNull(metadata); assertThat(metadata, containsString("<edmx:Reference Uri=\"" + CORE_VOCABULARY + "\">" + "<edmx:Include Namespace=\"Org.OData.Core.V1\" Alias=\"Core\"/>" + "</edmx:Reference>")); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java index 9448b40..dc90901 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriInfoImplTest.java @@ -22,12 +22,14 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.ArrayList; +import java.util.Collections; import java.util.List; -import org.apache.olingo.commons.api.ex.ODataRuntimeException; import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.EdmEntityType; -import org.apache.olingo.commons.core.edm.EdmProviderImpl; +import org.apache.olingo.commons.api.ex.ODataRuntimeException; +import org.apache.olingo.server.api.OData; +import org.apache.olingo.server.api.edmx.EdmxReference; import org.apache.olingo.server.api.uri.UriInfoAll; import org.apache.olingo.server.api.uri.UriInfoBatch; import org.apache.olingo.server.api.uri.UriInfoCrossjoin; @@ -51,13 +53,14 @@ import org.apache.olingo.server.core.uri.queryoption.SelectOptionImpl; import org.apache.olingo.server.core.uri.queryoption.SkipOptionImpl; import org.apache.olingo.server.core.uri.queryoption.SkipTokenOptionImpl; import org.apache.olingo.server.core.uri.queryoption.TopOptionImpl; -import org.apache.olingo.server.core.uri.testutil.EdmTechTestProvider; +import org.apache.olingo.server.tecsvc.provider.EdmTechProvider; import org.apache.olingo.server.tecsvc.provider.EntityTypeProvider; import org.junit.Test; public class UriInfoImplTest { - Edm edm = new EdmProviderImpl(new EdmTechTestProvider()); + private static final Edm edm = OData.newInstance().createServiceMetadata( + new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm(); @Test public void testKind() { @@ -154,7 +157,7 @@ public class UriInfoImplTest { CustomQueryOptionImpl customOption1 = new CustomQueryOptionImpl(); customOption1.setText("B"); - QueryOptionImpl queryOption = new QueryOptionImpl(); + QueryOptionImpl queryOption = new CustomQueryOptionImpl(); queryOptions.add(expand.setName("")); queryOptions.add(filter.setName("")); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java index cad1458..27b879d 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/UriResourceImplTest.java @@ -19,40 +19,42 @@ package org.apache.olingo.server.core.uri; 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 java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.Collections; import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.EdmAction; import org.apache.olingo.commons.api.edm.EdmActionImport; +import org.apache.olingo.commons.api.edm.EdmComplexType; +import org.apache.olingo.commons.api.edm.EdmEntitySet; import org.apache.olingo.commons.api.edm.EdmEntityType; import org.apache.olingo.commons.api.edm.EdmFunction; import org.apache.olingo.commons.api.edm.EdmFunctionImport; import org.apache.olingo.commons.api.edm.EdmNavigationProperty; import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; import org.apache.olingo.commons.api.edm.EdmProperty; +import org.apache.olingo.commons.api.edm.EdmSingleton; import org.apache.olingo.commons.api.edm.EdmType; -import org.apache.olingo.commons.core.edm.EdmComplexTypeImpl; -import org.apache.olingo.commons.core.edm.EdmEntitySetImpl; -import org.apache.olingo.commons.core.edm.EdmProviderImpl; -import org.apache.olingo.commons.core.edm.EdmSingletonImpl; -import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory; +import org.apache.olingo.server.api.OData; +import org.apache.olingo.server.api.edmx.EdmxReference; +import org.apache.olingo.server.api.uri.UriParameter; import org.apache.olingo.server.api.uri.UriResourceKind; import org.apache.olingo.server.core.uri.queryoption.expression.ExpressionImpl; import org.apache.olingo.server.core.uri.queryoption.expression.LiteralImpl; -import org.apache.olingo.server.core.uri.testutil.EdmTechTestProvider; import org.apache.olingo.server.tecsvc.provider.ActionProvider; import org.apache.olingo.server.tecsvc.provider.ComplexTypeProvider; +import org.apache.olingo.server.tecsvc.provider.EdmTechProvider; import org.apache.olingo.server.tecsvc.provider.EntityTypeProvider; import org.junit.Test; public class UriResourceImplTest { - Edm edm = new EdmProviderImpl(new EdmTechTestProvider()); + private static final Edm edm = OData.newInstance().createServiceMetadata( + new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm(); @Test public void testUriParameterImpl() { @@ -88,13 +90,13 @@ public class UriResourceImplTest { impl.setActionImport(actionImport); assertEquals(actionImport, impl.getActionImport()); assertEquals(actionImport.getUnboundAction(), impl.getAction()); - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); assertEquals("AIRTCTTwoPrimParam", impl.toString()); assertEquals(actionImport.getUnboundAction().getReturnType().getType(), impl.getType()); actionImport = edm.getEntityContainer(null).getActionImport("AIRT"); impl.setActionImport(actionImport); - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); assertNull(impl.getType()); } @@ -107,10 +109,10 @@ public class UriResourceImplTest { impl.setExpression(expression); impl.setLamdaVariable("A"); - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); assertEquals(expression, impl.getExpression()); assertEquals("A", impl.getLambdaVariable()); - assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean), impl.getType()); + assertEquals(OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean), impl.getType()); assertEquals("all", impl.toString()); } @@ -123,10 +125,10 @@ public class UriResourceImplTest { impl.setExpression(expression); impl.setLamdaVariable("A"); - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); assertEquals(expression, impl.getExpression()); assertEquals("A", impl.getLambdaVariable()); - assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean), impl.getType()); + assertEquals(OData.newInstance().createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean), impl.getType()); assertEquals("any", impl.toString()); } @@ -141,13 +143,12 @@ public class UriResourceImplTest { assertEquals(property, impl.getProperty()); assertEquals(property.getName(), impl.toString()); - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); assertEquals(property.getType(), impl.getType()); assertEquals(property.getType(), impl.getComplexType()); impl.getComplexType(); - EdmComplexTypeImpl complexTypeImplType = - (EdmComplexTypeImpl) edm.getComplexType(ComplexTypeProvider.nameCTBasePrimCompNav); + EdmComplexType complexTypeImplType = edm.getComplexType(ComplexTypeProvider.nameCTBasePrimCompNav); impl.setTypeFilter(complexTypeImplType); assertEquals(complexTypeImplType, impl.getTypeFilter()); @@ -167,7 +168,7 @@ public class UriResourceImplTest { assertEquals(property, impl.getProperty()); assertEquals(property.getName(), impl.toString()); - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); assertEquals(property.getType(), impl.getType()); } @@ -183,7 +184,7 @@ public class UriResourceImplTest { UriResourceEntitySetImpl impl = new UriResourceEntitySetImpl(); assertEquals(UriResourceKind.entitySet, impl.getKind()); - EdmEntitySetImpl entitySet = (EdmEntitySetImpl) edm.getEntityContainer(null).getEntitySet("ESAllPrim"); + EdmEntitySet entitySet = edm.getEntityContainer(null).getEntitySet("ESAllPrim"); impl.setEntitSet(entitySet); assertEquals("ESAllPrim", impl.toString()); @@ -194,9 +195,9 @@ public class UriResourceImplTest { impl.getEntityType(); // is Collection - assertEquals(true, impl.isCollection()); - impl.setKeyPredicates(new ArrayList<UriParameterImpl>()); - assertEquals(false, impl.isCollection()); + assertTrue(impl.isCollection()); + impl.setKeyPredicates(Collections.<UriParameter> emptyList()); + assertFalse(impl.isCollection()); } @Test @@ -207,19 +208,19 @@ public class UriResourceImplTest { // function EdmFunction function = edm.getEntityContainer(null).getFunctionImport("FINRTInt16") - .getUnboundFunction(new ArrayList<String>()); + .getUnboundFunction(Collections.<String> emptyList()); assertNotNull(function); impl.setFunction(function); assertEquals(function, impl.getFunction()); assertEquals("UFNRTInt16", impl.toString()); assertEquals(function.getReturnType().getType(), impl.getType()); - assertEquals(false, impl.isParameterListFilled()); + assertFalse(impl.isParameterListFilled()); // function import impl = new UriResourceFunctionImpl(); EdmFunctionImport functionImport = edm.getEntityContainer(null).getFunctionImport("FINRTInt16"); - impl.setFunctionImport(functionImport, new ArrayList<UriParameterImpl>()); + impl.setFunctionImport(functionImport, Collections.<UriParameter> emptyList()); assertEquals(functionImport, impl.getFunctionImport()); assertEquals("FINRTInt16", impl.toString()); @@ -227,37 +228,31 @@ public class UriResourceImplTest { impl = new UriResourceFunctionImpl(); functionImport = edm.getEntityContainer(null).getFunctionImport("FICRTCollESTwoKeyNavParam"); assertNotNull(function); - UriParameterImpl parameter = new UriParameterImpl().setName("ParameterInt16"); - impl.setFunctionImport(functionImport, Arrays.asList(parameter)); + UriParameter parameter = new UriParameterImpl().setName("ParameterInt16"); + impl.setFunctionImport(functionImport, Collections.singletonList(parameter)); assertEquals("FICRTCollESTwoKeyNavParam", impl.toString()); - impl.setFunction(functionImport.getUnboundFunction(Arrays.asList("ParameterInt16"))); - assertEquals(true, impl.isCollection()); - impl.setKeyPredicates(new ArrayList<UriParameterImpl>()); - assertEquals(false, impl.isCollection()); + impl.setFunction(functionImport.getUnboundFunction(Collections.singletonList("ParameterInt16"))); + assertTrue(impl.isCollection()); + impl.setKeyPredicates(Collections.<UriParameter> emptyList()); + assertFalse(impl.isCollection()); assertEquals(parameter, impl.getParameters().get(0)); - assertEquals(true, impl.isParameterListFilled()); + assertTrue(impl.isParameterListFilled()); } @Test public void testUriResourceImplKeyPred() { + final EdmEntityType entityType = edm.getEntityType(EntityTypeProvider.nameETTwoKeyNav); class Mock extends UriResourceWithKeysImpl { - EdmType type; - public Mock() { super(UriResourceKind.action); } @Override public EdmType getType() { - return type; - } - - public Mock setType(final EdmType type) { - this.type = type; - return this; + return entityType; } @Override @@ -266,22 +261,15 @@ public class UriResourceImplTest { } @Override - public String toString() { - return getSegmentValue(); - } - - @Override public String getSegmentValue() { return "mock"; } } Mock impl = new Mock(); - EdmEntityType entityType = edm.getEntityType(EntityTypeProvider.nameETTwoKeyNav); EdmEntityType entityTypeBaseColl = edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav); EdmEntityType entityTypeBaseEntry = edm.getEntityType(EntityTypeProvider.nameETTwoBaseTwoKeyNav); - impl.setType(entityType); assertEquals(entityType, impl.getType()); assertEquals("mock", impl.toString(false)); assertEquals("mock", impl.toString(true)); @@ -299,7 +287,6 @@ public class UriResourceImplTest { // set entry impl = new Mock(); - impl.setType(entityType); impl.setEntryTypeFilter(entityTypeBaseEntry); assertEquals(entityTypeBaseEntry, impl.getTypeFilterOnEntry()); assertEquals("mock", impl.toString(false)); @@ -307,35 +294,29 @@ public class UriResourceImplTest { // set collection impl = new Mock(); - impl.setType(entityType); impl.setCollectionTypeFilter(entityTypeBaseColl); assertEquals(entityTypeBaseColl, impl.getTypeFilterOnCollection()); assertEquals("mock", impl.toString(false)); assertEquals("mock/olingo.odata.test1.ETBaseTwoKeyNav", impl.toString(true)); - impl = new Mock(); - UriParameterImpl parameter = new UriParameterImpl().setName("ParameterInt16"); - List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>(); - keyPredicates.add(parameter); - - impl.setKeyPredicates(keyPredicates); + impl.setKeyPredicates( + Collections.singletonList( + (UriParameter) new UriParameterImpl().setName("ParameterInt16"))); assertNotNull(null, impl.getKeyPredicates()); - } @Test public void testUriResourceImplTyped() { + final EdmEntityType entityType = edm.getEntityType(EntityTypeProvider.nameETTwoKeyNav); class Mock extends UriResourceTypedImpl { - EdmType type; - public Mock() { super(UriResourceKind.action); } @Override public EdmType getType() { - return type; + return entityType; } @Override @@ -343,39 +324,23 @@ public class UriResourceImplTest { return false; } - public Mock setType(final EdmType type) { - this.type = type; - return this; - } - @Override public String getSegmentValue() { return "mock"; } - - @Override - public String toString() { - return getSegmentValue(); - } - } Mock impl = new Mock(); - EdmEntityType entityType = edm.getEntityType(EntityTypeProvider.nameETTwoKeyNav); EdmEntityType entityTypeBaseColl = edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav); edm.getEntityType(EntityTypeProvider.nameETTwoBaseTwoKeyNav); - impl.setType(entityType); - assertEquals("mock", impl.toString()); assertEquals("mock", impl.toString(true)); assertEquals("mock", impl.toString(false)); impl.setTypeFilter(entityTypeBaseColl); assertEquals(entityTypeBaseColl, impl.getTypeFilter()); - assertEquals("mock", impl.toString()); assertEquals("mock/olingo.odata.test1.ETBaseTwoKeyNav", impl.toString(true)); assertEquals("mock", impl.toString(false)); - // } @Test @@ -389,15 +354,12 @@ public class UriResourceImplTest { impl.setType(entityType); assertEquals(entityType, impl.getType()); - UriParameterImpl parameter = new UriParameterImpl().setName("ParameterInt16"); - List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>(); - keyPredicates.add(parameter); - - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); impl.setCollection(true); - assertEquals(true, impl.isCollection()); - impl.setKeyPredicates(keyPredicates); - assertEquals(false, impl.isCollection()); + assertTrue(impl.isCollection()); + impl.setKeyPredicates(Collections.singletonList( + (UriParameter) new UriParameterImpl().setName("ParameterInt16"))); + assertFalse(impl.isCollection()); } @Test @@ -415,13 +377,10 @@ public class UriResourceImplTest { assertEquals("NavPropertyETKeyNavMany", impl.toString()); assertEquals(property.getType(), impl.getType()); - UriParameterImpl parameter = new UriParameterImpl().setName("ParameterInt16"); - List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>(); - keyPredicates.add(parameter); - - assertEquals(true, impl.isCollection()); - impl.setKeyPredicates(keyPredicates); - assertEquals(false, impl.isCollection()); + assertTrue(impl.isCollection()); + impl.setKeyPredicates(Collections.singletonList( + (UriParameter) new UriParameterImpl().setName("ParameterInt16"))); + assertFalse(impl.isCollection()); } @Test @@ -442,15 +401,12 @@ public class UriResourceImplTest { impl.setType(entityType); assertEquals(entityType, impl.getType()); - UriParameterImpl parameter = new UriParameterImpl().setName("ParameterInt16"); - List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>(); - keyPredicates.add(parameter); - - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); impl.setCollection(true); - assertEquals(true, impl.isCollection()); - impl.setKeyPredicates(keyPredicates); - assertEquals(false, impl.isCollection()); + assertTrue(impl.isCollection()); + impl.setKeyPredicates(Collections.singletonList( + (UriParameter) new UriParameterImpl().setName("ParameterInt16"))); + assertFalse(impl.isCollection()); } @Test @@ -458,7 +414,7 @@ public class UriResourceImplTest { UriResourceSingletonImpl impl = new UriResourceSingletonImpl(); assertEquals(UriResourceKind.singleton, impl.getKind()); - EdmSingletonImpl singleton = (EdmSingletonImpl) edm.getEntityContainer(null).getSingleton("SINav"); + EdmSingleton singleton = edm.getEntityContainer(null).getSingleton("SINav"); EdmEntityType entityTypeBaseColl = edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav); impl.setSingleton(singleton); @@ -473,7 +429,7 @@ public class UriResourceImplTest { assertEquals(entityTypeBaseColl, impl.getEntityTypeFilter()); // is Collection - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); } @Test @@ -495,9 +451,9 @@ public class UriResourceImplTest { assertEquals("A", impl.toString()); assertEquals(entityType, impl.getType()); assertEquals("A", impl.getVariableName()); - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); impl.setCollection(true); - assertEquals(true, impl.isCollection()); + assertTrue(impl.isCollection()); } @Test @@ -510,15 +466,11 @@ public class UriResourceImplTest { assertEquals("olingo.odata.test1.ETTwoKeyNav", impl.toString()); assertEquals(entityType, impl.getType()); - UriParameterImpl parameter = new UriParameterImpl().setName("ParameterInt16"); - List<UriParameterImpl> keyPredicates = new ArrayList<UriParameterImpl>(); - keyPredicates.add(parameter); - - assertEquals(false, impl.isCollection()); + assertFalse(impl.isCollection()); impl.setCollection(true); - assertEquals(true, impl.isCollection()); - impl.setKeyPredicates(keyPredicates); - assertEquals(false, impl.isCollection()); - + assertTrue(impl.isCollection()); + impl.setKeyPredicates(Collections.singletonList( + (UriParameter) new UriParameterImpl().setName("ParameterInt16"))); + assertFalse(impl.isCollection()); } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java index 3299a92..b24f379 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestFullResourcePath.java @@ -23,7 +23,14 @@ import java.util.Arrays; import java.util.Collections; import org.apache.olingo.commons.api.edm.Edm; +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.EdmKeyPropertyRef; +import org.apache.olingo.commons.api.edm.EdmNavigationProperty; 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.format.ContentType; import org.apache.olingo.server.api.OData; import org.apache.olingo.server.api.ODataApplicationException; @@ -36,17 +43,18 @@ import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; import org.apache.olingo.server.core.uri.parser.UriParserException; import org.apache.olingo.server.core.uri.parser.UriParserSemanticException.MessageKeys; import org.apache.olingo.server.core.uri.parser.UriParserSyntaxException; -import org.apache.olingo.server.core.uri.testutil.EdmTechTestProvider; import org.apache.olingo.server.core.uri.testutil.FilterValidator; import org.apache.olingo.server.core.uri.testutil.TestUriValidator; import org.apache.olingo.server.core.uri.validator.UriValidationException; import org.apache.olingo.server.tecsvc.provider.ComplexTypeProvider; import org.apache.olingo.server.tecsvc.provider.ContainerProvider; +import org.apache.olingo.server.tecsvc.provider.EdmTechProvider; import org.apache.olingo.server.tecsvc.provider.EntityTypeProvider; import org.apache.olingo.server.tecsvc.provider.EnumTypeProvider; import org.apache.olingo.server.tecsvc.provider.PropertyProvider; import org.junit.Ignore; import org.junit.Test; +import org.mockito.Mockito; public class TestFullResourcePath { @@ -55,7 +63,7 @@ public class TestFullResourcePath { private final FilterValidator testFilter; public TestFullResourcePath() { - final Edm edm = oData.createServiceMetadata(new EdmTechTestProvider(), Collections.<EdmxReference> emptyList()) + final Edm edm = oData.createServiceMetadata(new EdmTechProvider(), Collections.<EdmxReference> emptyList()) .getEdm(); testUri = new TestUriValidator().setEdm(edm); testFilter = new FilterValidator().setEdm(edm); @@ -5542,15 +5550,42 @@ public class TestFullResourcePath { @Test public void navPropertySameNameAsEntitySet() throws Exception { - testUri.run("ESNavProp(1)/ESNavProp(2)/ESNavProp(3)/ESNavProp") + final String namespace = "namespace"; + final String entityTypeName = "ETNavProp"; + final FullQualifiedName nameETNavProp = new FullQualifiedName(namespace, entityTypeName); + final String entitySetName = "ESNavProp"; + final String keyPropertyName = "a"; + EdmProperty keyProperty = Mockito.mock(EdmProperty.class); + Mockito.when(keyProperty.getType()).thenReturn(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Byte)); + EdmKeyPropertyRef keyPropertyRef = Mockito.mock(EdmKeyPropertyRef.class); + Mockito.when(keyPropertyRef.getName()).thenReturn(keyPropertyName); + Mockito.when(keyPropertyRef.getProperty()).thenReturn(keyProperty); + EdmNavigationProperty navProperty = Mockito.mock(EdmNavigationProperty.class); + Mockito.when(navProperty.getName()).thenReturn(entitySetName); + Mockito.when(navProperty.isCollection()).thenReturn(true); + EdmEntityType entityType = Mockito.mock(EdmEntityType.class); + Mockito.when(entityType.getFullQualifiedName()).thenReturn(nameETNavProp); + Mockito.when(entityType.getKeyPredicateNames()).thenReturn(Collections.singletonList(keyPropertyName)); + Mockito.when(entityType.getKeyPropertyRefs()).thenReturn(Collections.singletonList(keyPropertyRef)); + Mockito.when(entityType.getProperty(entitySetName)).thenReturn(navProperty); + Mockito.when(navProperty.getType()).thenReturn(entityType); + EdmEntitySet entitySet = Mockito.mock(EdmEntitySet.class); + Mockito.when(entitySet.getName()).thenReturn(entitySetName); + Mockito.when(entitySet.getEntityType()).thenReturn(entityType); + EdmEntityContainer container = Mockito.mock(EdmEntityContainer.class); + Mockito.when(container.getEntitySet(entitySetName)).thenReturn(entitySet); + Edm mockedEdm = Mockito.mock(Edm.class); + Mockito.when(mockedEdm.getEntityContainer(null)).thenReturn(container); + new TestUriValidator().setEdm(mockedEdm) + .run("ESNavProp(1)/ESNavProp(2)/ESNavProp(3)/ESNavProp") .goPath() - .at(0).isEntitySet("ESNavProp") - .at(0).isKeyPredicate(0, "a", "1") - .at(1).isNavProperty("ESNavProp", EdmTechTestProvider.nameETNavProp, false) - .at(1).isKeyPredicate(0, "a", "2") - .at(2).isNavProperty("ESNavProp", EdmTechTestProvider.nameETNavProp, false) - .at(2).isKeyPredicate(0, "a", "3") - .at(3).isNavProperty("ESNavProp", EdmTechTestProvider.nameETNavProp, true); + .at(0).isEntitySet(entitySetName) + .at(0).isKeyPredicate(0, keyPropertyName, "1") + .at(1).isNavProperty(entitySetName, nameETNavProp, false) + .at(1).isKeyPredicate(0, keyPropertyName, "2") + .at(2).isNavProperty(entitySetName, nameETNavProp, false) + .at(2).isKeyPredicate(0, keyPropertyName, "3") + .at(3).isNavProperty(entitySetName, nameETNavProp, true); } @Test @@ -5617,26 +5652,26 @@ public class TestFullResourcePath { testUri.run("ESAllPrim", "$filter=" + Short.MIN_VALUE + " eq " + Short.MAX_VALUE) .goFilter().isBinary(BinaryOperatorKind.EQ) - .left().isLiteral("" + Short.MIN_VALUE) + .left().isLiteral(Short.toString(Short.MIN_VALUE)) .isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int16)) .root() - .right().isLiteral("" + Short.MAX_VALUE) + .right().isLiteral(Short.toString(Short.MAX_VALUE)) .isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int16)); testUri.run("ESAllPrim", "$filter=" + Integer.MIN_VALUE + " eq " + Integer.MAX_VALUE) .goFilter().isBinary(BinaryOperatorKind.EQ) - .left().isLiteral("" + Integer.MIN_VALUE) + .left().isLiteral(Integer.toString(Integer.MIN_VALUE)) .isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int32)) .root() - .right().isLiteral("" + Integer.MAX_VALUE) + .right().isLiteral(Integer.toString(Integer.MAX_VALUE)) .isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int32)); - + testUri.run("ESAllPrim", "$filter=" + Long.MIN_VALUE + " eq " + Long.MAX_VALUE) .goFilter().isBinary(BinaryOperatorKind.EQ) - .left().isLiteral("" + Long.MIN_VALUE) + .left().isLiteral(Long.toString(Long.MIN_VALUE)) .isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int64)) .root() - .right().isLiteral("" + Long.MAX_VALUE) + .right().isLiteral(Long.toString(Long.MAX_VALUE)) .isLiteralType(oData.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Int64)); }
