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/TestUriParserImpl.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestUriParserImpl.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestUriParserImpl.java index b115fb8..a94bf13 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestUriParserImpl.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/antlr/TestUriParserImpl.java @@ -19,18 +19,18 @@ package org.apache.olingo.server.core.uri.antlr; import java.util.Arrays; +import java.util.Collections; import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.commons.core.Encoder; -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.uri.UriInfoKind; import org.apache.olingo.server.api.uri.UriResourceKind; 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; 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.ResourceValidator; import org.apache.olingo.server.core.uri.testutil.TestUriValidator; @@ -38,15 +38,20 @@ import org.apache.olingo.server.core.uri.validator.UriValidationException; import org.apache.olingo.server.tecsvc.provider.ActionProvider; 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.PropertyProvider; import org.junit.Test; public class TestUriParserImpl { - Edm edm = null; + private final Edm edm = OData.newInstance().createServiceMetadata( + new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm(); + private final TestUriValidator testUri = new TestUriValidator().setEdm(edm); + private final ResourceValidator testRes = new ResourceValidator().setEdm(edm); + private final FilterValidator testFilter = new FilterValidator().setEdm(edm); + private final String PropertyBoolean = "PropertyBoolean=true"; private final String PropertyByte = "PropertyByte=1"; - private final String PropertyDate = "PropertyDate=2013-09-25"; private final String PropertyDateTimeOffset = "PropertyDateTimeOffset=2002-10-10T12:00:00-05:00"; private final String PropertyDecimal = "PropertyDecimal=12"; @@ -63,17 +68,6 @@ public class TestUriParserImpl { + "," + PropertySByte + "," + PropertyInt32 + "," + PropertyInt64 + "," + PropertyDecimal + "," + PropertyDate + "," + PropertyDateTimeOffset + "," + PropertyDuration + "," + PropertyGuid + "," + PropertyTimeOfDay; - TestUriValidator testUri = null; - ResourceValidator testRes = null; - FilterValidator testFilter = null; - - public TestUriParserImpl() { - edm = new EdmProviderImpl(new EdmTechTestProvider()); - testUri = new TestUriValidator().setEdm(edm); - testRes = new ResourceValidator().setEdm(edm); - testFilter = new FilterValidator().setEdm(edm); - } - @Test public void testBoundFunctionImport_VarParameters() { @@ -350,7 +344,7 @@ public class TestUriParserImpl { .isKeyPredicate(1, "PropertyString", "'ABC'"); // with all keys - testRes.run("ESAllKey(" + Encoder.encode(allKeys) + ")") + testRes.run("ESAllKey(" + encode(allKeys) + ")") .isEntitySet("ESAllKey") .isKeyPredicate(0, "PropertyString", "'ABC'") .isKeyPredicate(1, "PropertyInt16", "1") @@ -569,34 +563,46 @@ public class TestUriParserImpl { @Test public void testUnary() throws UriParserException { - testFilter.runESabc("not a").isCompr("<not <a>>"); - testFilter.runESabc("- a eq a").isCompr("<<- <a>> eq <a>>"); - testFilter.runESabc("-a eq a").isCompr("<<- <a>> eq <a>>"); + testFilter.runOnETAllPrim("not PropertyBoolean").isCompr("<not <PropertyBoolean>>"); + testFilter.runOnETAllPrim("- PropertyInt16 eq PropertyInt16").isCompr("<<- <PropertyInt16>> eq <PropertyInt16>>"); + testFilter.runOnETAllPrim("-PropertyInt16 eq PropertyInt16").isCompr("<<- <PropertyInt16>> eq <PropertyInt16>>"); } @Test public void testFilterComplexMixedPriority() throws UriParserException { - testFilter.runESabc("a or c and e ").isCompr("< <a> or < <c> and <e> >>"); - testFilter.runESabc("a or c and e eq f").isCompr("< <a> or < <c> and <<e> eq <f>>>>"); - testFilter.runESabc("a or c eq d and e ").isCompr("< <a> or <<<c> eq <d>> and <e> >>"); - testFilter.runESabc("a or c eq d and e eq f").isCompr("< <a> or <<<c> eq <d>> and <<e> eq <f>>>>"); - testFilter.runESabc("a eq b or c and e ").isCompr("<<<a> eq <b>> or < <c> and <e> >>"); - testFilter.runESabc("a eq b or c and e eq f").isCompr("<<<a> eq <b>> or < <c> and <<e> eq <f>>>>"); - testFilter.runESabc("a eq b or c eq d and e ").isCompr("<<<a> eq <b>> or <<<c> eq <d>> and <e> >>"); - testFilter.runESabc("a eq b or c eq d and e eq f").isCompr("<<<a> eq <b>> or <<<c> eq <d>> and <<e> eq <f>>>>"); + testFilter.runOnETAllPrim("PropertyInt16 or PropertyInt32 and PropertyInt64") + .isCompr("<<PropertyInt16> or <<PropertyInt32> and <PropertyInt64>>>"); + testFilter.runOnETAllPrim("PropertyInt16 or PropertyInt32 and PropertyInt64 eq PropertyByte") + .isCompr("<<PropertyInt16> or <<PropertyInt32> and <<PropertyInt64> eq <PropertyByte>>>>"); + testFilter.runOnETAllPrim("PropertyInt16 or PropertyInt32 eq PropertyInt64 and PropertyByte") + .isCompr("<<PropertyInt16> or <<<PropertyInt32> eq <PropertyInt64>> and <PropertyByte>>>"); + testFilter.runOnETAllPrim("PropertyInt16 or PropertyInt32 eq PropertyInt64 and PropertyByte eq PropertySByte") + .isCompr("<<PropertyInt16> or <<<PropertyInt32> eq <PropertyInt64>> " + + "and <<PropertyByte> eq <PropertySByte>>>>"); + testFilter.runOnETAllPrim("PropertyInt16 eq PropertyInt32 or PropertyInt64 and PropertyByte") + .isCompr("<<<PropertyInt16> eq <PropertyInt32>> or <<PropertyInt64> and <PropertyByte>>>"); + testFilter.runOnETAllPrim("PropertyInt16 eq PropertyInt32 or PropertyInt64 and PropertyByte eq PropertySByte") + .isCompr("<<<PropertyInt16> eq <PropertyInt32>> " + + "or <<PropertyInt64> and <<PropertyByte> eq <PropertySByte>>>>"); + testFilter.runOnETAllPrim("PropertyInt16 eq PropertyInt32 or PropertyInt64 eq PropertyByte and PropertySByte") + .isCompr("<<<PropertyInt16> eq <PropertyInt32>> " + + "or <<<PropertyInt64> eq <PropertyByte>> and <PropertySByte>>>"); + testFilter.runOnETAllPrim("PropertyInt16 eq PropertyInt32 or PropertyInt64 eq PropertyByte " + + "and PropertySByte eq PropertyDecimal") + .isCompr("<<<PropertyInt16> eq <PropertyInt32>> or <<<PropertyInt64> eq <PropertyByte>> " + + "and <<PropertySByte> eq <PropertyDecimal>>>>"); } @Test public void testFilterSimpleSameBinaryBinaryBinaryPriority() throws UriParserException { - - testFilter.runESabc("1 add 2 add 3 add 4").isCompr("<<< <1> add <2>> add <3>> add <4>>"); - testFilter.runESabc("1 add 2 add 3 div 4").isCompr("<< <1> add <2>> add <<3> div <4>>>"); - testFilter.runESabc("1 add 2 div 3 add 4").isCompr("<< <1> add <<2> div <3>>> add <4>>"); - testFilter.runESabc("1 add 2 div 3 div 4").isCompr("< <1> add <<<2> div <3>> div <4>>>"); - testFilter.runESabc("1 div 2 add 3 add 4").isCompr("<<< <1> div <2>> add <3>> add <4>>"); - testFilter.runESabc("1 div 2 add 3 div 4").isCompr("<< <1> div <2>> add <<3> div <4>>>"); - testFilter.runESabc("1 div 2 div 3 add 4").isCompr("<<< <1> div <2>> div <3>> add <4>>"); - testFilter.runESabc("1 div 2 div 3 div 4").isCompr("<<< <1> div <2>> div <3>> div <4>>"); + testFilter.runOnETAllPrim("1 add 2 add 3 add 4").isCompr("<<< <1> add <2>> add <3>> add <4>>"); + testFilter.runOnETAllPrim("1 add 2 add 3 div 4").isCompr("<< <1> add <2>> add <<3> div <4>>>"); + testFilter.runOnETAllPrim("1 add 2 div 3 add 4").isCompr("<< <1> add <<2> div <3>>> add <4>>"); + testFilter.runOnETAllPrim("1 add 2 div 3 div 4").isCompr("< <1> add <<<2> div <3>> div <4>>>"); + testFilter.runOnETAllPrim("1 div 2 add 3 add 4").isCompr("<<< <1> div <2>> add <3>> add <4>>"); + testFilter.runOnETAllPrim("1 div 2 add 3 div 4").isCompr("<< <1> div <2>> add <<3> div <4>>>"); + testFilter.runOnETAllPrim("1 div 2 div 3 add 4").isCompr("<<< <1> div <2>> div <3>> add <4>>"); + testFilter.runOnETAllPrim("1 div 2 div 3 div 4").isCompr("<<< <1> div <2>> div <3>> div <4>>"); } @Test @@ -1164,4 +1170,8 @@ public class TestUriParserImpl { testUri.runEx("ESMixPrimCollComp", "$select=/PropertyInt16") .isExSyntax(UriParserSyntaxException.MessageKeys.SYNTAX); } + + private final String encode(final String uriPart) { + return uriPart.replaceAll(":", "%3A"); + } }
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/ParserTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/ParserTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/ParserTest.java index e27289d..3d67c48 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/ParserTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/parser/ParserTest.java @@ -54,6 +54,7 @@ public class ParserTest { EdmNavigationProperty productsNavigation = Mockito.mock(EdmNavigationProperty.class); EdmEntityType productsType = Mockito.mock(EdmEntityType.class); + final FullQualifiedName nameProducts = new FullQualifiedName("NS", "Products"); Mockito.when(mockEdm.getEntityContainer(null)).thenReturn(container); Mockito.when(typeCategory.getName()).thenReturn("Category"); Mockito.when(typeCategory.getNamespace()).thenReturn("NS"); @@ -62,7 +63,7 @@ public class ParserTest { Mockito.when(typeCategory.getProperty("Products")).thenReturn(productsNavigation); Mockito.when(container.getEntitySet("Category")).thenReturn(esCategory); Mockito.when(container.getEntitySet("Products")).thenReturn(esProduct); - Mockito.when(productsType.getName()).thenReturn("Products"); + Mockito.when(productsType.getFullQualifiedName()).thenReturn(nameProducts); Mockito.when(productsType.getNamespace()).thenReturn("NS"); Mockito.when(productsNavigation.getType()).thenReturn(productsType); @@ -72,13 +73,13 @@ public class ParserTest { .isKind(UriInfoKind.resource).goPath().goExpand() .first() .goPath().first() - .isNavProperty("Products", new FullQualifiedName("NS", "Products"), false) - .isType(new FullQualifiedName("NS", "Products"), false); + .isNavProperty("Products", nameProducts, false) + .isType(nameProducts, false); Mockito.verifyZeroInteractions(esProduct); } /** - * Test for EntitySet with navigation to an not existing NavigationProperty (name) + * Test for EntitySet with navigation to a not existing NavigationProperty (name) * but with another EntitySet with this name defined in metadata. * (related to Olingo issue OLINGO-755) */ http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java index 27212ee..93cdf86 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/QueryOptionTest.java @@ -19,32 +19,32 @@ package org.apache.olingo.server.core.uri.queryoption; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.commons.core.edm.EdmProviderImpl; import org.apache.olingo.server.api.uri.UriInfoResource; +import org.apache.olingo.server.api.uri.queryoption.SelectItem; +import org.apache.olingo.server.api.uri.queryoption.SystemQueryOption; import org.apache.olingo.server.api.uri.queryoption.SystemQueryOptionKind; +import org.apache.olingo.server.api.uri.queryoption.expression.Expression; import org.apache.olingo.server.core.uri.UriInfoImpl; import org.apache.olingo.server.core.uri.queryoption.expression.AliasImpl; -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.junit.Test; //TOOD add getKind check to all public class QueryOptionTest { - Edm edm = new EdmProviderImpl(new EdmTechTestProvider()); - @Test public void testAliasQueryOption() { AliasQueryOptionImpl option = new AliasQueryOptionImpl(); - ExpressionImpl expression = new LiteralImpl(); + Expression expression = new LiteralImpl(); option.setAliasValue(expression); assertEquals(expression, option.getValue()); @@ -90,7 +90,7 @@ public class QueryOptionTest { option.setSystemQueryOption(new IdOptionImpl()); option = new ExpandItemImpl(); - List<SystemQueryOptionImpl> list = new ArrayList<SystemQueryOptionImpl>(); + List<SystemQueryOption> list = new ArrayList<SystemQueryOption>(); list.add(expand); list.add(filter); option.setSystemQueryOptions(list); @@ -98,14 +98,14 @@ public class QueryOptionTest { assertEquals(filter, option.getFilterOption()); option = new ExpandItemImpl(); - assertEquals(false, option.isRef()); + assertFalse(option.isRef()); option.setIsRef(true); - assertEquals(true, option.isRef()); + assertTrue(option.isRef()); option = new ExpandItemImpl(); - assertEquals(false, option.isStar()); + assertFalse(option.isStar()); option.setIsStar(true); - assertEquals(true, option.isStar()); + assertTrue(option.isStar()); option = new ExpandItemImpl(); UriInfoResource resource = new UriInfoImpl().asUriInfoResource(); @@ -144,7 +144,6 @@ public class QueryOptionTest { assertEquals(SystemQueryOptionKind.FORMAT, option.getKind()); option.setFormat("A"); - assertEquals("A", option.getFormat()); } @@ -154,7 +153,6 @@ public class QueryOptionTest { assertEquals(SystemQueryOptionKind.ID, option.getKind()); option.setValue("A"); - assertEquals("A", option.getValue()); } @@ -163,9 +161,9 @@ public class QueryOptionTest { CountOptionImpl option = new CountOptionImpl(); assertEquals(SystemQueryOptionKind.COUNT, option.getKind()); - assertEquals(false, option.getValue()); + assertFalse(option.getValue()); option.setValue(true); - assertEquals(true, option.getValue()); + assertTrue(option.getValue()); } @Test @@ -179,7 +177,7 @@ public class QueryOptionTest { option = new LevelsOptionImpl(); option.setMax(); - assertEquals(true, option.isMax()); + assertTrue(option.isMax()); } @Test @@ -190,9 +188,9 @@ public class QueryOptionTest { option.setExpression(expression); assertEquals(expression, option.getExpression()); - assertEquals(false, option.isDescending()); + assertFalse(option.isDescending()); option.setDescending(true); - assertEquals(true, option.isDescending()); + assertTrue(option.isDescending()); } @Test @@ -233,17 +231,16 @@ public class QueryOptionTest { option = new SelectItemImpl(); option = new SelectItemImpl(); - assertEquals(false, option.isStar()); + assertFalse(option.isStar()); option.setStar(true); - assertEquals(true, option.isStar()); + assertTrue(option.isStar()); option = new SelectItemImpl(); - assertEquals(false, option.isAllOperationsInSchema()); + assertFalse(option.isAllOperationsInSchema()); FullQualifiedName fqName = new FullQualifiedName("Namespace", "Name"); option.addAllOperationsInSchema(fqName); - assertEquals(true, option.isAllOperationsInSchema()); + assertTrue(option.isAllOperationsInSchema()); assertEquals(fqName, option.getAllOperationsInSchemaNameSpace()); - } @Test @@ -251,17 +248,12 @@ public class QueryOptionTest { SelectOptionImpl option = new SelectOptionImpl(); assertEquals(SystemQueryOptionKind.SELECT, option.getKind()); - SelectItemImpl item0 = new SelectItemImpl(); - SelectItemImpl item1 = new SelectItemImpl(); - - ArrayList<SelectItemImpl> list = new ArrayList<SelectItemImpl>(); - list.add(item0); - list.add(item1); - option.setSelectItems(list); + SelectItem item0 = new SelectItemImpl(); + SelectItem item1 = new SelectItemImpl(); + option.setSelectItems(Arrays.asList(item0, item1)); assertEquals(item0, option.getSelectItems().get(0)); assertEquals(item1, option.getSelectItems().get(1)); - } @Test @@ -284,11 +276,8 @@ public class QueryOptionTest { @Test public void testSystemQueryOptionImpl() { - SystemQueryOptionImpl option = new SystemQueryOptionImpl(); - - option.setKind(SystemQueryOptionKind.EXPAND); + SystemQueryOptionImpl option = new ExpandOptionImpl(); assertEquals(SystemQueryOptionKind.EXPAND, option.getKind()); - assertEquals("$expand", option.getName()); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java index 98abf20..e8a9b38 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/queryoption/expression/ExpressionTest.java @@ -24,14 +24,16 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; +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.EdmEntityType; import org.apache.olingo.commons.api.edm.EdmEnumType; import org.apache.olingo.commons.api.edm.EdmFunction; -import org.apache.olingo.commons.core.edm.EdmProviderImpl; +import org.apache.olingo.server.api.OData; import org.apache.olingo.server.api.ODataApplicationException; +import org.apache.olingo.server.api.edmx.EdmxReference; import org.apache.olingo.server.api.uri.UriInfoKind; import org.apache.olingo.server.api.uri.UriInfoResource; import org.apache.olingo.server.api.uri.queryoption.expression.BinaryOperatorKind; @@ -41,16 +43,17 @@ import org.apache.olingo.server.api.uri.queryoption.expression.UnaryOperatorKind import org.apache.olingo.server.core.uri.UriInfoImpl; import org.apache.olingo.server.core.uri.UriResourceActionImpl; import org.apache.olingo.server.core.uri.UriResourceFunctionImpl; -import org.apache.olingo.server.core.uri.testutil.EdmTechTestProvider; import org.apache.olingo.server.core.uri.testutil.FilterTreeToText; import org.apache.olingo.server.tecsvc.provider.ActionProvider; +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.FunctionProvider; import org.junit.Test; public class ExpressionTest { - Edm edm = new EdmProviderImpl(new EdmTechTestProvider()); + private static final Edm edm = OData.newInstance().createServiceMetadata( + new EdmTechProvider(), Collections.<EdmxReference> emptyList()).getEdm(); @Test public void testSupportedOperators() { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java deleted file mode 100644 index 08c6c91..0000000 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java +++ /dev/null @@ -1,119 +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.uri.testutil; - -import java.util.Arrays; -import java.util.List; - -import org.apache.olingo.commons.api.ex.ODataException; -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.CsdlEntitySet; -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.server.tecsvc.provider.EdmTechProvider; - -/** - * Implement the EdmTechProvider and - * <li>adds a entity type <b>ETabc with</b> properties a,b,c,d,e,f</li> - * <li>adds a entity type <b>ETNavProp with</b> with a navigation property ESNavProp (named like the entity set)</li> - * <li>adds a complex type <b>CTabc</b> with properties a,b,c,d,e,f</li> - * <li>adds a <b>abc</b> entity set of type <b>ETabc</b></li> - * <li>adds a <b>ESNavProp</b> entity set of type <b>ETNavProp</b></li> - */ -public class EdmTechTestProvider extends EdmTechProvider { - - private static final FullQualifiedName nameInt16 = EdmPrimitiveTypeKind.Int16.getFullQualifiedName(); - public static final String NAMESPACE = "olingo.odata.test1"; - public static final FullQualifiedName nameContainer = new FullQualifiedName(NAMESPACE, "Container"); - - CsdlProperty propertyAInt16 = new CsdlProperty().setName("a").setType(nameInt16); - CsdlProperty propertyBInt16 = new CsdlProperty().setName("b").setType(nameInt16); - CsdlProperty propertyCInt16 = new CsdlProperty().setName("c").setType(nameInt16); - CsdlProperty propertyDInt16 = new CsdlProperty().setName("d").setType(nameInt16); - CsdlProperty propertyEInt16 = new CsdlProperty().setName("e").setType(nameInt16); - CsdlProperty propertyFInt16 = new CsdlProperty().setName("f").setType(nameInt16); - - public static final FullQualifiedName nameETNavProp = new FullQualifiedName(NAMESPACE, "ETNavProp"); - public static final FullQualifiedName nameCTabc = new FullQualifiedName(NAMESPACE, "CTabc"); - public static final FullQualifiedName nameETabc = new FullQualifiedName(NAMESPACE, "ETabc"); - - @Override - public CsdlComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException { - if (complexTypeName.equals(nameCTabc)) { - return new CsdlComplexType() - .setName("CTabc") - .setProperties(Arrays.asList( - propertyAInt16, propertyBInt16, propertyCInt16, - propertyDInt16, propertyEInt16, propertyFInt16 - )); - - } - - return super.getComplexType(complexTypeName); - } - - @Override - public CsdlEntitySet getEntitySet(final FullQualifiedName entityContainer, final String name) throws ODataException { - if (nameContainer.equals(entityContainer)) { - if (name.equals("ESabc")) { - return new CsdlEntitySet() - .setName("ESabc") - .setType(nameETabc); - } else if(name.equals("ESNavProp")) { - return new CsdlEntitySet() - .setName("ESNavProp") - .setType(nameETNavProp); - } - } - - return super.getEntitySet(entityContainer, name); - } - - @Override - public CsdlEntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException { - List<CsdlPropertyRef> oneKeyPropertyInt16 = Arrays.asList(new CsdlPropertyRef().setName("a")); - - if (entityTypeName.equals(nameETabc)) { - return new CsdlEntityType() - .setName("ETabc") - .setProperties(Arrays.asList( - propertyAInt16, propertyBInt16, propertyCInt16, - propertyDInt16, propertyEInt16, propertyFInt16)) - .setKey(oneKeyPropertyInt16); - } else if(entityTypeName.equals(nameETNavProp)) { - return new CsdlEntityType() - .setName("ETNavProp") - .setProperties(Arrays.asList(propertyAInt16)) - .setKey(oneKeyPropertyInt16) - .setNavigationProperties(Arrays.asList(new CsdlNavigationProperty[] { - new CsdlNavigationProperty() - .setCollection(true) - .setName("ESNavProp") - .setType(nameETNavProp) - })); - } - - return super.getEntityType(entityTypeName); - } - -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ExpandValidator.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ExpandValidator.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ExpandValidator.java index bc038cd..5638227 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ExpandValidator.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ExpandValidator.java @@ -23,28 +23,23 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.apache.olingo.commons.api.edm.Edm; -import org.apache.olingo.commons.api.edm.EdmType; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.server.api.ODataApplicationException; -import org.apache.olingo.server.api.uri.UriInfoKind; import org.apache.olingo.server.api.uri.queryoption.ExpandItem; +import org.apache.olingo.server.api.uri.queryoption.ExpandOption; import org.apache.olingo.server.api.uri.queryoption.FilterOption; +import org.apache.olingo.server.api.uri.queryoption.OrderByOption; import org.apache.olingo.server.api.uri.queryoption.QueryOption; import org.apache.olingo.server.api.uri.queryoption.SelectItem; import org.apache.olingo.server.api.uri.queryoption.SelectOption; import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitException; -import org.apache.olingo.server.core.uri.UriInfoImpl; -import org.apache.olingo.server.core.uri.queryoption.ExpandOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.OrderByOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.QueryOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.SelectOptionImpl; public class ExpandValidator implements TestValidator { private Edm edm; private TestValidator invokedByValidator; private int expandItemIndex; - private ExpandOptionImpl expandOption; + private ExpandOption expandOption; private ExpandItem expandItem; // --- Setup --- @@ -54,7 +49,7 @@ public class ExpandValidator implements TestValidator { return this; } - public ExpandValidator setExpand(final ExpandOptionImpl expand) { + public ExpandValidator setExpand(final ExpandOption expand) { expandOption = expand; first(); return this; @@ -76,45 +71,33 @@ public class ExpandValidator implements TestValidator { } public ResourceValidator goPath() { - UriInfoImpl uriInfo = (UriInfoImpl) expandItem.getResourcePath(); - - if (uriInfo.getKind() != UriInfoKind.resource) { - fail("goPath() can only be used on UriInfoKind.resource"); - } - return new ResourceValidator() - .setUpValidator(this) - .setEdm(edm) - .setUriInfoImplPath(uriInfo); - + .setUpValidator(this) + .setEdm(edm) + .setUriInfoPath(expandItem.getResourcePath()); } public FilterValidator goOrder(final int index) { - OrderByOptionImpl orderBy = (OrderByOptionImpl) expandItem.getOrderByOption(); - + final OrderByOption orderBy = expandItem.getOrderByOption(); return new FilterValidator() - .setValidator(this) - .setEdm(edm) - .setExpression(orderBy.getOrders().get(index).getExpression()); + .setValidator(this) + .setEdm(edm) + .setExpression(orderBy.getOrders().get(index).getExpression()); } public ResourceValidator goSelectItem(final int index) { - SelectOptionImpl select = (SelectOptionImpl) expandItem.getSelectOption(); - + final SelectOption select = expandItem.getSelectOption(); SelectItem item = select.getSelectItems().get(index); - UriInfoImpl uriInfo = (UriInfoImpl) item.getResourcePath(); - return new ResourceValidator() - .setUpValidator(this) - .setEdm(edm) - .setUriInfoImplPath(uriInfo); - + .setUpValidator(this) + .setEdm(edm) + .setUriInfoPath(item.getResourcePath()); } public ExpandValidator goExpand() { return new ExpandValidator() - .setExpand((ExpandOptionImpl) expandItem.getExpandOption()) - .setUpValidator(this); + .setExpand(expandItem.getExpandOption()) + .setUpValidator(this); } public ExpandValidator first() { @@ -132,7 +115,6 @@ public class ExpandValidator implements TestValidator { fail("not enough segments"); } return this; - } public ExpandValidator isSegmentStar() { @@ -146,31 +128,31 @@ public class ExpandValidator implements TestValidator { } public ExpandValidator isLevelText(final String text) { - QueryOptionImpl option = (QueryOptionImpl) expandItem.getLevelsOption(); + final QueryOption option = (QueryOption) expandItem.getLevelsOption(); assertEquals(text, option.getText()); return this; } public ExpandValidator isSkipText(final String text) { - QueryOptionImpl option = (QueryOptionImpl) expandItem.getSkipOption(); + final QueryOption option = expandItem.getSkipOption(); assertEquals(text, option.getText()); return this; } public ExpandValidator isTopText(final String text) { - QueryOptionImpl option = (QueryOptionImpl) expandItem.getTopOption(); + final QueryOption option = expandItem.getTopOption(); assertEquals(text, option.getText()); return this; } public ExpandValidator isInlineCountText(final String text) { - QueryOptionImpl option = (QueryOptionImpl) expandItem.getCountOption(); + final QueryOption option = expandItem.getCountOption(); assertEquals(text, option.getText()); return this; } public ExpandValidator isSelectText(final String text) { - QueryOptionImpl option = (QueryOptionImpl) expandItem.getSelectOption(); + final QueryOption option = expandItem.getSelectOption(); assertEquals(text, option.getText()); return this; } @@ -213,18 +195,13 @@ public class ExpandValidator implements TestValidator { } public ExpandValidator isSortOrder(final int index, final boolean descending) { - OrderByOptionImpl orderBy = (OrderByOptionImpl) expandItem.getOrderByOption(); + OrderByOption orderBy = expandItem.getOrderByOption(); assertEquals(descending, orderBy.getOrders().get(index).isDescending()); return this; } public ExpandValidator isExpandStartType(final FullQualifiedName fullName) { - EdmType actualType = expandItem.getStartTypeFilter(); - - FullQualifiedName actualName = new FullQualifiedName(actualType.getNamespace(), actualType.getName()); - assertEquals(fullName, actualName); + assertEquals(fullName, expandItem.getStartTypeFilter().getFullQualifiedName()); return this; - } - } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterTreeToText.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterTreeToText.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterTreeToText.java index 14ddbc6..96a3226 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterTreeToText.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterTreeToText.java @@ -127,7 +127,7 @@ public class FilterTreeToText implements ExpressionVisitor<String> { @Override public String visitTypeLiteral(final EdmType type) { - return "<" + type.getNamespace() + "." + type.getName() + ">"; + return "<" + type.getFullQualifiedName().getFullQualifiedNameAsString() + ">"; } @Override @@ -147,7 +147,7 @@ public class FilterTreeToText implements ExpressionVisitor<String> { tmp += item; } - return "<" + type.getNamespace() + "." + type.getName() + "<" + tmp + ">>"; + return "<" + type.getFullQualifiedName().getFullQualifiedNameAsString() + "<" + tmp + ">>"; } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterValidator.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterValidator.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterValidator.java index 02cf29e..ad9d4eb 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterValidator.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/FilterValidator.java @@ -31,36 +31,33 @@ import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.server.api.ODataApplicationException; import org.apache.olingo.server.api.uri.UriInfo; import org.apache.olingo.server.api.uri.UriInfoKind; +import org.apache.olingo.server.api.uri.queryoption.FilterOption; +import org.apache.olingo.server.api.uri.queryoption.OrderByOption; +import org.apache.olingo.server.api.uri.queryoption.expression.Binary; import org.apache.olingo.server.api.uri.queryoption.expression.BinaryOperatorKind; +import org.apache.olingo.server.api.uri.queryoption.expression.Enumeration; import org.apache.olingo.server.api.uri.queryoption.expression.Expression; import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitException; +import org.apache.olingo.server.api.uri.queryoption.expression.Literal; import org.apache.olingo.server.api.uri.queryoption.expression.Member; +import org.apache.olingo.server.api.uri.queryoption.expression.Method; import org.apache.olingo.server.api.uri.queryoption.expression.MethodKind; -import org.apache.olingo.server.core.uri.UriInfoImpl; +import org.apache.olingo.server.api.uri.queryoption.expression.TypeLiteral; import org.apache.olingo.server.core.uri.parser.Parser; import org.apache.olingo.server.core.uri.parser.UriParserException; import org.apache.olingo.server.core.uri.parser.UriParserSemanticException; import org.apache.olingo.server.core.uri.parser.UriParserSyntaxException; -import org.apache.olingo.server.core.uri.queryoption.FilterOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.OrderByOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.expression.BinaryImpl; -import org.apache.olingo.server.core.uri.queryoption.expression.EnumerationImpl; -import org.apache.olingo.server.core.uri.queryoption.expression.LiteralImpl; -import org.apache.olingo.server.core.uri.queryoption.expression.MemberImpl; -import org.apache.olingo.server.core.uri.queryoption.expression.MethodImpl; -import org.apache.olingo.server.core.uri.queryoption.expression.TypeLiteralImpl; public class FilterValidator implements TestValidator { private Edm edm; private TestValidator invokedByValidator; - private FilterOptionImpl filter; + private FilterOption filter; + private OrderByOption orderBy; private Expression curExpression; private Expression rootExpression; - private OrderByOptionImpl orderBy; - private UriParserException exception; // --- Setup --- @@ -84,7 +81,7 @@ public class FilterValidator implements TestValidator { return this; } - public FilterValidator setFilter(final FilterOptionImpl filter) { + public FilterValidator setFilter(final FilterOption filter) { this.filter = filter; if (filter.getExpression() == null) { @@ -94,9 +91,8 @@ public class FilterValidator implements TestValidator { return this; } - public FilterValidator setOrderBy(final OrderByOptionImpl orderBy) { + public FilterValidator setOrderBy(final OrderByOption orderBy) { this.orderBy = orderBy; - return this; } @@ -175,10 +171,6 @@ public class FilterValidator implements TestValidator { return runUri("ESCollAllPrim(1)/CollPropertyTimeOfDay", "$filter=" + filter.trim()); } - public FilterValidator runESabc(final String filter) throws UriParserException { - return runUri("ESabc", "$filter=" + filter.trim()); - } - public FilterValidator runUri(final String path, final String query) throws UriParserException { Parser parser = new Parser(); UriInfo uriInfo = null; @@ -189,7 +181,7 @@ public class FilterValidator implements TestValidator { fail("Filtervalidator can only be used on resourcePaths"); } - setFilter((FilterOptionImpl) uriInfo.getFilterOption()); + setFilter(uriInfo.getFilterOption()); curExpression = filter.getExpression(); return this; } @@ -215,7 +207,7 @@ public class FilterValidator implements TestValidator { fail("Filtervalidator can only be used on resourcePaths"); } - setOrderBy((OrderByOptionImpl) uriInfo.getOrderByOption()); + setOrderBy(uriInfo.getOrderByOption()); return this; } @@ -241,22 +233,21 @@ public class FilterValidator implements TestValidator { } public ResourceValidator goPath() { - if (!(curExpression instanceof MemberImpl)) { + if (!(curExpression instanceof Member)) { fail("Current expression not a member"); } - MemberImpl member = (MemberImpl) curExpression; + Member member = (Member) curExpression; return new ResourceValidator() - .setEdm(edm) - .setUriInfoImplPath((UriInfoImpl) member.getResourcePath()) - .setUpValidator(this); - + .setEdm(edm) + .setUriInfoPath(member.getResourcePath()) + .setUpValidator(this); } public FilterValidator goParameter(final int parameterIndex) { - if (curExpression instanceof MethodImpl) { - MethodImpl methodCall = (MethodImpl) curExpression; + if (curExpression instanceof Method) { + Method methodCall = (Method) curExpression; curExpression = methodCall.getParameters().get(parameterIndex); } else { fail("Current expression not a methodCall"); @@ -281,13 +272,12 @@ public class FilterValidator implements TestValidator { String actualFilterAsText = FilterTreeToText.Serialize(filter); assertEquals(expectedFilterAsString, actualFilterAsText); } catch (ExpressionVisitException e) { - fail("Exception occured while converting the filterTree into text" + "\n" + fail("Exception occurred while converting the filterTree into text" + "\n" + " Exception: " + e.getMessage()); } catch (ODataApplicationException e) { - fail("Exception occured while converting the filterTree into text" + "\n" + fail("Exception occurred while converting the filterTree into text" + "\n" + " Exception: " + e.getMessage()); } - return this; } @@ -303,14 +293,14 @@ public class FilterValidator implements TestValidator { public FilterValidator isType(final FullQualifiedName fullName) { EdmType actualType = null; - if (curExpression instanceof MemberImpl) { + if (curExpression instanceof Member) { Member member = (Member) curExpression; actualType = member.getType(); - } else if (curExpression instanceof TypeLiteralImpl) { - TypeLiteralImpl typeLiteral = (TypeLiteralImpl) curExpression; + } else if (curExpression instanceof TypeLiteral) { + TypeLiteral typeLiteral = (TypeLiteral) curExpression; actualType = typeLiteral.getType(); - } else if (curExpression instanceof LiteralImpl) { - LiteralImpl typeLiteral = (LiteralImpl) curExpression; + } else if (curExpression instanceof Literal) { + Literal typeLiteral = (Literal) curExpression; actualType = typeLiteral.getType(); } @@ -318,158 +308,134 @@ public class FilterValidator implements TestValidator { fail("Current expression not typed"); } - FullQualifiedName actualName = new FullQualifiedName(actualType.getNamespace(), actualType.getName()); - assertEquals(fullName, actualName); + assertEquals(fullName, actualType.getFullQualifiedName()); return this; } public FilterValidator left() { - if (!(curExpression instanceof BinaryImpl)) { + if (!(curExpression instanceof Binary)) { fail("Current expression not a binary operator"); } - curExpression = ((BinaryImpl) curExpression).getLeftOperand(); - + curExpression = ((Binary) curExpression).getLeftOperand(); return this; } public FilterValidator root() { - if (filter != null) { - curExpression = filter.getExpression(); - } else { - curExpression = rootExpression; - } - + curExpression = filter == null ? rootExpression : filter.getExpression(); return this; } public FilterValidator right() { - if (!(curExpression instanceof BinaryImpl)) { + if (!(curExpression instanceof Binary)) { fail("Current expression is not a binary operator"); } - curExpression = ((BinaryImpl) curExpression).getRightOperand(); - + curExpression = ((Binary) curExpression).getRightOperand(); return this; } public FilterValidator isLiteral(final String literalText) { - if (!(curExpression instanceof LiteralImpl)) { + if (!(curExpression instanceof Literal)) { fail("Current expression is not a literal"); } - String actualLiteralText = ((LiteralImpl) curExpression).getText(); + String actualLiteralText = ((Literal) curExpression).getText(); assertEquals(literalText, actualLiteralText); - return this; } public FilterValidator isLiteralType(EdmType edmType) { - if(!(curExpression instanceof LiteralImpl)) { - fail("Current expression is nit a literal"); + if(!(curExpression instanceof Literal)) { + fail("Current expression is not a literal"); } - final EdmType type = ((LiteralImpl) curExpression).getType(); + final EdmType type = ((Literal) curExpression).getType(); assertNotNull(type); - assertEquals(edmType.getClass(), type.getClass()); - + assertEquals(edmType, type); return this; } - + public FilterValidator isNullLiteralType() { - if(!(curExpression instanceof LiteralImpl)) { - fail("Current expression is nit a literal"); + if(!(curExpression instanceof Literal)) { + fail("Current expression is not a literal"); } - - final EdmType type = ((LiteralImpl) curExpression).getType(); + + final EdmType type = ((Literal) curExpression).getType(); assertNull(type); - return this; } - + public FilterValidator isMethod(final MethodKind methodKind, final int parameterCount) { - if (!(curExpression instanceof MethodImpl)) { + if (!(curExpression instanceof Method)) { fail("Current expression is not a methodCall"); } - MethodImpl methodCall = (MethodImpl) curExpression; + Method methodCall = (Method) curExpression; assertEquals(methodKind, methodCall.getMethod()); assertEquals(parameterCount, methodCall.getParameters().size()); - return this; } public FilterValidator isParameterText(final int parameterIndex, final String parameterText) throws ExpressionVisitException, ODataApplicationException { - if (!(curExpression instanceof MethodImpl)) { + if (!(curExpression instanceof Method)) { fail("Current expression is not a method"); } - MethodImpl methodCall = (MethodImpl) curExpression; + Method methodCall = (Method) curExpression; Expression parameter = methodCall.getParameters().get(parameterIndex); String actualParameterText = FilterTreeToText.Serialize(parameter); assertEquals(parameterText, actualParameterText); - return this; } public FilterValidator isBinary(final BinaryOperatorKind binaryOperator) { - if (!(curExpression instanceof BinaryImpl)) { + if (!(curExpression instanceof Binary)) { fail("Current expression is not a binary operator"); } - BinaryImpl binary = (BinaryImpl) curExpression; + Binary binary = (Binary) curExpression; assertEquals(binaryOperator, binary.getOperator()); - return this; } public FilterValidator isTypedLiteral(final FullQualifiedName fullName) { - if (!(curExpression instanceof TypeLiteralImpl)) { + if (!(curExpression instanceof TypeLiteral)) { fail("Current expression not a typeLiteral"); } isType(fullName); - return this; } public FilterValidator isMember() { - if (!(curExpression instanceof MemberImpl)) { + if (!(curExpression instanceof Member)) { fail("Current expression not a member"); } - return this; } public FilterValidator isMemberStartType(final FullQualifiedName fullName) { - if (!(curExpression instanceof MemberImpl)) { - fail("Current expression not a member"); - } - - MemberImpl member = (MemberImpl) curExpression; + isMember(); + Member member = (Member) curExpression; EdmType actualType = member.getStartTypeFilter(); - - FullQualifiedName actualName = new FullQualifiedName(actualType.getNamespace(), actualType.getName()); - assertEquals(fullName, actualName); + assertEquals(fullName, actualType.getFullQualifiedName()); return this; } public FilterValidator isEnum(final FullQualifiedName nameenstring, final List<String> enumValues) { - if (!(curExpression instanceof EnumerationImpl)) { + if (!(curExpression instanceof Enumeration)) { fail("Current expression not a enumeration"); } - EnumerationImpl enumeration = (EnumerationImpl) curExpression; - - FullQualifiedName actualName = - new FullQualifiedName(enumeration.getType().getNamespace(), enumeration.getType().getName()); + Enumeration enumeration = (Enumeration) curExpression; // check name - assertEquals(nameenstring.toString(), actualName.toString()); + assertEquals(nameenstring, enumeration.getType().getFullQualifiedName()); // check values int i = 0; @@ -504,33 +470,10 @@ public class FilterValidator implements TestValidator { } public FilterValidator isNull() { - if (!(curExpression instanceof LiteralImpl)) { - fail("Current expression is not a literal"); - } - - String actualLiteralText = ((LiteralImpl) curExpression).getText(); - assertEquals("null", actualLiteralText); - return this; + return isLiteral("null"); } public FilterValidator isTrue() { - if (!(curExpression instanceof LiteralImpl)) { - fail("Current expression is not a literal"); - } - - String actualLiteralText = ((LiteralImpl) curExpression).getText(); - assertEquals("true", actualLiteralText); - return this; + return isLiteral("true"); } - - public FilterValidator isFalse() { - if (!(curExpression instanceof LiteralImpl)) { - fail("Current expression is not a literal"); - } - - String actualLiteralText = ((LiteralImpl) curExpression).getText(); - assertEquals("false", actualLiteralText); - return this; - } - } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ParseTreeToText.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ParseTreeToText.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ParseTreeToText.java deleted file mode 100644 index 46126c6..0000000 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ParseTreeToText.java +++ /dev/null @@ -1,81 +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.uri.testutil; - -import java.util.Arrays; -import java.util.List; - -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.misc.NotNull; -import org.antlr.v4.runtime.misc.Nullable; -import org.antlr.v4.runtime.misc.Utils; -import org.antlr.v4.runtime.tree.ErrorNode; -import org.antlr.v4.runtime.tree.RuleNode; -import org.antlr.v4.runtime.tree.TerminalNode; -import org.antlr.v4.runtime.tree.Tree; - -public class ParseTreeToText { - - public static String getTreeAsText(final Tree contextTree, final String[] ruleNames) { - return toStringTree(contextTree, Arrays.asList(ruleNames)); - } - - private static String toStringTree(final Tree t, @Nullable final List<String> ruleNames) { - - if (t.getChildCount() == 0) { - return Utils.escapeWhitespace(getNodeText(t, ruleNames), false); - } - - StringBuilder buf = new StringBuilder(); - String s = Utils.escapeWhitespace(getNodeText(t, ruleNames), false); - buf.append(s); - buf.append("("); - - for (int i = 0; i < t.getChildCount(); i++) { - if (i > 0) { - buf.append(' '); - } - buf.append(toStringTree(t.getChild(i), ruleNames)); - } - buf.append(")"); - return buf.toString(); - } - - private static String getNodeText(@NotNull final Tree t, @Nullable final List<String> ruleNames) { - if (ruleNames != null) { - if (t instanceof RuleNode) { - int ruleIndex = ((RuleNode) t).getRuleContext().getRuleIndex(); - return ruleNames.get(ruleIndex); - } else if (t instanceof ErrorNode) { - return t.toString(); - } else if (t instanceof TerminalNode) { - Token symbol = ((TerminalNode) t).getSymbol(); - if (symbol != null) { - return symbol.getText(); - } - } - } - // no recog for rule names - Object payload = t.getPayload(); - if (payload instanceof Token) { - return ((Token) payload).getText(); - } - return t.getPayload().toString(); - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ParserValidator.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ParserValidator.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ParserValidator.java deleted file mode 100644 index 4911624..0000000 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ParserValidator.java +++ /dev/null @@ -1,162 +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.uri.testutil; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import org.antlr.v4.runtime.ParserRuleContext; -import org.apache.olingo.server.core.uri.antlr.UriParserParser; - -public class ParserValidator { - - private String input = null; - private ParserRuleContext root; - - int logLevel = 0; - private int lexerLogLevel = 0; - - boolean allowFullContext; - boolean allowContextSensitifity; - boolean allowAmbiguity; - - List<Exception> exceptions = new ArrayList<Exception>(); - private Exception curException = null; - - // --- Setup --- - - public ParserValidator log(final int logLevel) { - this.logLevel = logLevel; - return this; - } - - public ParserValidator lexerLog(final int logLevel) { - lexerLogLevel = logLevel; - return this; - } - - /** - * Used in fast LL Parsing: - * Don't stop the parsing process when the slower full context parsing (with prediction mode SLL) is - * required - * @return {@link ParserValidator} - */ - public ParserValidator aFC() { - allowFullContext = true; - return this; - } - - /** - * Used in fast LL Parsing: - * Allows ContextSensitifity Errors which occur often when using the slower full context parsing - * and indicate that there is a context sensitivity ( which may not be an error). - * @return {@link ParserValidator} - */ - public ParserValidator aCS() { - allowContextSensitifity = true; - return this; - } - - /** - * Used in fast LL Parsing: - * Allows ambiguities - * @return {@link ParserValidator} - */ - public ParserValidator aAM() { - allowAmbiguity = true; - return this; - } - - // --- Execution --- - - public ParserValidator run(final String uri) { - input = uri; - - // just run a short lexer step. E.g. to print the tokens - if (lexerLogLevel > 0) { - (new TokenValidator()).log(lexerLogLevel).run(input); - } - - /**/// root = parseInput(uri); - - // if LOG > 0 - Write serialized tree - if (logLevel > 0) { - if (root != null) { - System.out.println(ParseTreeToText.getTreeAsText(root, new UriParserParser(null).getRuleNames())); - } else { - System.out.println("root == null"); - } - } - - // reset for next test - allowFullContext = false; - allowContextSensitifity = false; - allowAmbiguity = false; - logLevel = 0; - - return this; - } - - // --- Navigation --- - - public ParserValidator exFirst() { - try { - // curWeakException = exceptions.get(0); - } catch (IndexOutOfBoundsException ex) { - // curWeakException = null; - } - return this; - - } - - public ParserValidator exLast() { - // curWeakException = exceptions.get(exceptions.size() - 1); - return this; - } - - public ParserValidator exAt(final int index) { - try { - // curWeakException = exceptions.get(index); - } catch (IndexOutOfBoundsException ex) { - // curWeakException = null; - } - return this; - } - - // --- Validation --- - - public ParserValidator isText(final String expected) { - - assertEquals(null, curException); - assertEquals(0, exceptions.size()); - - String actualTreeAsText = ParseTreeToText.getTreeAsText(root, new UriParserParser(null).getRuleNames()); - - assertEquals(expected, actualTreeAsText); - return this; - } - - public ParserValidator isExeptionType(final Class<?> exClass) { - assertEquals(exClass, curException.getClass()); - return this; - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ResourceValidator.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ResourceValidator.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ResourceValidator.java index f6c9937..994b6b2 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ResourceValidator.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/ResourceValidator.java @@ -20,6 +20,7 @@ package org.apache.olingo.server.core.uri.testutil; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.List; @@ -29,32 +30,27 @@ import org.apache.olingo.commons.api.edm.EdmElement; import org.apache.olingo.commons.api.edm.EdmType; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.http.HttpMethod; -import org.apache.olingo.server.api.ODataApplicationException; import org.apache.olingo.server.api.uri.UriInfo; import org.apache.olingo.server.api.uri.UriInfoKind; +import org.apache.olingo.server.api.uri.UriInfoResource; import org.apache.olingo.server.api.uri.UriParameter; +import org.apache.olingo.server.api.uri.UriResource; +import org.apache.olingo.server.api.uri.UriResourceAction; +import org.apache.olingo.server.api.uri.UriResourceComplexProperty; +import org.apache.olingo.server.api.uri.UriResourceEntitySet; +import org.apache.olingo.server.api.uri.UriResourceFunction; import org.apache.olingo.server.api.uri.UriResourceKind; +import org.apache.olingo.server.api.uri.UriResourceLambdaAll; +import org.apache.olingo.server.api.uri.UriResourceLambdaAny; +import org.apache.olingo.server.api.uri.UriResourceNavigation; import org.apache.olingo.server.api.uri.UriResourcePartTyped; -import org.apache.olingo.server.api.uri.queryoption.CustomQueryOption; +import org.apache.olingo.server.api.uri.UriResourcePrimitiveProperty; +import org.apache.olingo.server.api.uri.UriResourceSingleton; +import org.apache.olingo.server.api.uri.queryoption.ExpandOption; import org.apache.olingo.server.api.uri.queryoption.SelectItem; -import org.apache.olingo.server.api.uri.queryoption.expression.ExpressionVisitException; -import org.apache.olingo.server.core.uri.UriInfoImpl; -import org.apache.olingo.server.core.uri.UriResourceActionImpl; -import org.apache.olingo.server.core.uri.UriResourceComplexPropertyImpl; -import org.apache.olingo.server.core.uri.UriResourceEntitySetImpl; -import org.apache.olingo.server.core.uri.UriResourceFunctionImpl; -import org.apache.olingo.server.core.uri.UriResourceImpl; -import org.apache.olingo.server.core.uri.UriResourceLambdaAllImpl; -import org.apache.olingo.server.core.uri.UriResourceLambdaAnyImpl; -import org.apache.olingo.server.core.uri.UriResourceNavigationPropertyImpl; -import org.apache.olingo.server.core.uri.UriResourcePrimitivePropertyImpl; -import org.apache.olingo.server.core.uri.UriResourceSingletonImpl; +import org.apache.olingo.server.api.uri.queryoption.SelectOption; import org.apache.olingo.server.core.uri.UriResourceWithKeysImpl; import org.apache.olingo.server.core.uri.parser.UriParserException; -import org.apache.olingo.server.core.uri.queryoption.CustomQueryOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.ExpandOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.SelectOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.expression.ExpressionImpl; import org.apache.olingo.server.core.uri.validator.UriValidationException; import org.apache.olingo.server.core.uri.validator.UriValidator; @@ -63,7 +59,7 @@ public class ResourceValidator implements TestValidator { private TestValidator invokedBy; private UriInfo uriInfo = null; - private UriResourceImpl uriPathInfo = null; + private UriResource uriPathInfo = null; private int uriResourceIndex; // --- Setup --- @@ -78,8 +74,8 @@ public class ResourceValidator implements TestValidator { return this; } - public ResourceValidator setUriInfoImplPath(final UriInfo uriInfoPath) { - uriInfo = uriInfoPath; + public ResourceValidator setUriInfoPath(final UriInfoResource uriInfoPath) { + uriInfo = (UriInfo) uriInfoPath; last(); return this; } @@ -130,7 +126,7 @@ public class ResourceValidator implements TestValidator { public FilterValidator goParameter(final int index) { assertEquals(UriResourceKind.function, uriPathInfo.getKind()); - UriResourceFunctionImpl function = (UriResourceFunctionImpl) uriPathInfo; + UriResourceFunction function = (UriResourceFunction) uriPathInfo; return new FilterValidator() .setEdm(edm) @@ -142,12 +138,12 @@ public class ResourceValidator implements TestValidator { if (uriPathInfo.getKind() == UriResourceKind.lambdaAll) { return new FilterValidator() .setEdm(edm) - .setExpression(((UriResourceLambdaAllImpl) uriPathInfo).getExpression()); + .setExpression(((UriResourceLambdaAll) uriPathInfo).getExpression()); } else if (uriPathInfo.getKind() == UriResourceKind.lambdaAny) { return new FilterValidator() .setEdm(edm) - .setExpression(((UriResourceLambdaAnyImpl) uriPathInfo).getExpression()); + .setExpression(((UriResourceLambdaAny) uriPathInfo).getExpression()); } else { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); } @@ -155,20 +151,16 @@ public class ResourceValidator implements TestValidator { } public ResourceValidator goSelectItem(final int index) { - SelectOptionImpl select = (SelectOptionImpl) uriInfo.getSelectOption(); - + final SelectOption select = uriInfo.getSelectOption(); SelectItem item = select.getSelectItems().get(index); - UriInfoImpl uriInfo1 = (UriInfoImpl) item.getResourcePath(); - return new ResourceValidator() - .setUpValidator(this) - .setEdm(edm) - .setUriInfoImplPath(uriInfo1); - + .setUpValidator(this) + .setEdm(edm) + .setUriInfoPath(item.getResourcePath()); } public ExpandValidator goExpand() { - ExpandOptionImpl expand = (ExpandOptionImpl) uriInfo.getExpandOption(); + final ExpandOption expand = uriInfo.getExpandOption(); if (expand == null) { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); } @@ -177,41 +169,30 @@ public class ResourceValidator implements TestValidator { } public ResourceValidator first() { - uriResourceIndex = 0; - uriPathInfo = (UriResourceImpl) uriInfo.getUriResourceParts().get(0); - return this; + return at(0); } public ResourceValidator last() { - uriResourceIndex = 0; - - try { - uriPathInfo = (UriResourceImpl) uriInfo.getUriResourceParts().get(uriInfo.getUriResourceParts().size() - 1); - uriResourceIndex = uriInfo.getUriResourceParts().size() - 1; - } catch (IndexOutOfBoundsException ex) { + final List<UriResource> parts = uriInfo.getUriResourceParts(); + if (parts.isEmpty()) { + uriResourceIndex = 0; fail("not enough segments"); + } else { + uriResourceIndex = parts.size() - 1; + uriPathInfo = parts.get(uriResourceIndex); } - return this; } public ResourceValidator n() { - uriResourceIndex++; - - try { - uriPathInfo = (UriResourceImpl) uriInfo.getUriResourceParts().get(uriResourceIndex); - } catch (IndexOutOfBoundsException ex) { - fail("not enough segments"); - } - - return this; + return at(uriResourceIndex + 1); } public ResourceValidator at(final int index) { uriResourceIndex = index; - try { - uriPathInfo = (UriResourceImpl) uriInfo.getUriResourceParts().get(index); - } catch (IndexOutOfBoundsException ex) { + if (index < uriInfo.getUriResourceParts().size()) { + uriPathInfo = uriInfo.getUriResourceParts().get(index); + } else { fail("not enough segments"); } return this; @@ -222,9 +203,9 @@ public class ResourceValidator implements TestValidator { public ResourceValidator isLambdaVar(final String var) { String actualVar = null; if (uriPathInfo.getKind() == UriResourceKind.lambdaAll) { - actualVar = ((UriResourceLambdaAllImpl) uriPathInfo).getLambdaVariable(); + actualVar = ((UriResourceLambdaAll) uriPathInfo).getLambdaVariable(); } else if (uriPathInfo.getKind() == UriResourceKind.lambdaAny) { - actualVar = ((UriResourceLambdaAnyImpl) uriPathInfo).getLambdaVariable(); + actualVar = ((UriResourceLambdaAny) uriPathInfo).getLambdaVariable(); } else { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); } @@ -241,19 +222,17 @@ public class ResourceValidator implements TestValidator { } EdmType actualType = null; - if (uriPathInfo instanceof UriResourceComplexPropertyImpl) { - actualType = ((UriResourceComplexPropertyImpl) uriPathInfo).getComplexTypeFilter(); - } else if (uriPathInfo instanceof UriResourceSingletonImpl) { - actualType = ((UriResourceSingletonImpl) uriPathInfo).getEntityTypeFilter(); + if (uriPathInfo instanceof UriResourceComplexProperty) { + actualType = ((UriResourceComplexProperty) uriPathInfo).getComplexTypeFilter(); + } else if (uriPathInfo instanceof UriResourceSingleton) { + actualType = ((UriResourceSingleton) uriPathInfo).getEntityTypeFilter(); } if (actualType == null) { fail("type information not set"); } - FullQualifiedName actualName = new FullQualifiedName(actualType.getNamespace(), actualType.getName()); - - assertEquals(expectedType.toString(), actualName.toString()); + assertEquals(expectedType, actualType.getFullQualifiedName()); return this; } @@ -267,10 +246,7 @@ public class ResourceValidator implements TestValidator { if (actualType == null) { fail("type information not set"); } - - FullQualifiedName actualName = new FullQualifiedName(actualType.getNamespace(), actualType.getName()); - - assertEquals(type.toString(), actualName.toString()); + assertEquals(type, actualType.getFullQualifiedName()); return this; } @@ -290,11 +266,7 @@ public class ResourceValidator implements TestValidator { // input parameter type may be null in order to assert that the singleTypeFilter is not set EdmType actualType = uriPathInfoKeyPred.getTypeFilterOnEntry(); - if (type == null) { - assertEquals(type, actualType); - } else { - assertEquals(type.toString(), new FullQualifiedName(actualType.getNamespace(), actualType.getName()).toString()); - } + assertEquals(type, type == null ? actualType : actualType.getFullQualifiedName()); return this; } @@ -307,48 +279,12 @@ public class ResourceValidator implements TestValidator { // input parameter type may be null in order to assert that the collectionTypeFilter is not set EdmType actualType = uriPathInfoKeyPred.getTypeFilterOnCollection(); - if (expectedType == null) { - assertEquals(expectedType, actualType); - } else { - FullQualifiedName actualName = new FullQualifiedName(actualType.getNamespace(), actualType.getName()); - assertEquals(expectedType.toString(), actualName.toString()); - } + assertEquals(expectedType, expectedType == null ? actualType : actualType.getFullQualifiedName()); return this; } // other functions - public ResourceValidator checkCustomParameter(final int index, final String name, final String value) { - if (uriInfo == null) { - fail("hasQueryParameter: uriInfo == null"); - } - - List<CustomQueryOption> list = uriInfo.getCustomQueryOptions(); - if (list.size() <= index) { - fail("not enough queryParameters"); - } - - CustomQueryOptionImpl option = (CustomQueryOptionImpl) list.get(index); - assertEquals(name, option.getName()); - assertEquals(value, option.getText()); - return this; - } - - public ResourceValidator isFilterString(final String expectedFilterTreeAsString) { - - ExpressionImpl filterTree = (ExpressionImpl) uriInfo.getFilterOption().getExpression(); - try { - String filterTreeAsString = filterTree.accept(new FilterTreeToText()); - assertEquals(expectedFilterTreeAsString, filterTreeAsString); - } catch (ExpressionVisitException e) { - fail("isFilterString: Exception " + e.getMessage() + " occured"); - } catch (ODataApplicationException e) { - fail("isFilterString: Exception " + e.getMessage() + " occured"); - } - - return this; - } - public ResourceValidator isKeyPredicateRef(final int index, final String name, final String refencedProperty) { if (!(uriPathInfo instanceof UriResourceWithKeysImpl)) { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); @@ -359,7 +295,6 @@ public class ResourceValidator implements TestValidator { assertEquals(name, keyPredicates.get(index).getName()); assertEquals(refencedProperty, keyPredicates.get(index).getReferencedProperty()); return this; - } public ResourceValidator isKeyPredicateAlias(final int index, final String name, final String alias) { @@ -389,11 +324,11 @@ public class ResourceValidator implements TestValidator { } public ResourceValidator isParameter(final int index, final String name, final String text) { - if (!(uriPathInfo instanceof UriResourceFunctionImpl)) { + if (!(uriPathInfo instanceof UriResourceFunction)) { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); } - UriResourceFunctionImpl info = (UriResourceFunctionImpl) uriPathInfo; + UriResourceFunction info = (UriResourceFunction) uriPathInfo; List<UriParameter> keyPredicates = info.getParameters(); assertEquals(name, keyPredicates.get(index).getName()); assertEquals(text, keyPredicates.get(index).getText()); @@ -402,11 +337,11 @@ public class ResourceValidator implements TestValidator { } public ResourceValidator isParameterAlias(final int index, final String name, final String alias) { - if (!(uriPathInfo instanceof UriResourceFunctionImpl)) { + if (!(uriPathInfo instanceof UriResourceFunction)) { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); } - UriResourceFunctionImpl info = (UriResourceFunctionImpl) uriPathInfo; + UriResourceFunction info = (UriResourceFunction) uriPathInfo; List<UriParameter> keyPredicates = info.getParameters(); assertEquals(name, keyPredicates.get(index).getName()); assertEquals(alias, keyPredicates.get(index).getAlias()); @@ -421,47 +356,47 @@ public class ResourceValidator implements TestValidator { public ResourceValidator isPrimitiveProperty(final String name, final FullQualifiedName type, final boolean isCollection) { - if (!(uriPathInfo instanceof UriResourcePrimitivePropertyImpl)) { + if (!(uriPathInfo instanceof UriResourcePrimitiveProperty)) { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); } - UriResourcePrimitivePropertyImpl uriPathInfoProp = (UriResourcePrimitivePropertyImpl) uriPathInfo; + UriResourcePrimitiveProperty uriPathInfoProp = (UriResourcePrimitiveProperty) uriPathInfo; EdmElement property = uriPathInfoProp.getProperty(); assertEquals(name, property.getName()); - assertEquals(type, new FullQualifiedName(property.getType().getNamespace(), property.getType().getName())); + assertEquals(type, property.getType().getFullQualifiedName()); assertEquals(isCollection, property.isCollection()); return this; } - public ResourceValidator - isComplexProperty(final String name, final FullQualifiedName type, final boolean isCollection) { - if (!(uriPathInfo instanceof UriResourceComplexPropertyImpl)) { + public ResourceValidator isComplexProperty(final String name, final FullQualifiedName type, + final boolean isCollection) { + if (!(uriPathInfo instanceof UriResourceComplexProperty)) { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); } - UriResourceComplexPropertyImpl uriPathInfoProp = (UriResourceComplexPropertyImpl) uriPathInfo; + UriResourceComplexProperty uriPathInfoProp = (UriResourceComplexProperty) uriPathInfo; EdmElement property = uriPathInfoProp.getProperty(); assertEquals(name, property.getName()); - assertEquals(type, new FullQualifiedName(property.getType().getNamespace(), property.getType().getName())); + assertEquals(type, property.getType().getFullQualifiedName()); assertEquals(isCollection, property.isCollection()); return this; } public ResourceValidator isNavProperty(final String name, final FullQualifiedName type, final boolean isCollection) { - if (!(uriPathInfo instanceof UriResourceNavigationPropertyImpl)) { + if (!(uriPathInfo instanceof UriResourceNavigation)) { fail("invalid resource kind: " + uriPathInfo.getKind().toString()); } - UriResourceNavigationPropertyImpl uriPathInfoProp = (UriResourceNavigationPropertyImpl) uriPathInfo; + UriResourceNavigation uriPathInfoProp = (UriResourceNavigation) uriPathInfo; EdmElement property = uriPathInfoProp.getProperty(); assertEquals(name, property.getName()); - assertEquals(type, new FullQualifiedName(property.getType().getNamespace(), property.getType().getName())); + assertEquals(type, property.getType().getFullQualifiedName()); assertEquals(isCollection, uriPathInfoProp.isCollection()); return this; } @@ -473,65 +408,61 @@ public class ResourceValidator implements TestValidator { } public ResourceValidator isAction(final String name) { - assertEquals(UriResourceKind.action, uriPathInfo.getKind()); - assertEquals(name, ((UriResourceActionImpl) uriPathInfo).getAction().getName()); + isUriPathInfoKind(UriResourceKind.action); + assertEquals(name, ((UriResourceAction) uriPathInfo).getAction().getName()); return this; } public ResourceValidator isFunction(final String name) { - assertEquals(UriResourceKind.function, uriPathInfo.getKind()); - assertEquals(name, ((UriResourceFunctionImpl) uriPathInfo).getFunction().getName()); + isUriPathInfoKind(UriResourceKind.function); + assertEquals(name, ((UriResourceFunction) uriPathInfo).getFunction().getName()); return this; } public ResourceValidator isFunctionImport(final String name) { - assertEquals(UriResourceKind.function, uriPathInfo.getKind()); - assertEquals(name, ((UriResourceFunctionImpl) uriPathInfo).getFunctionImport().getName()); + isUriPathInfoKind(UriResourceKind.function); + assertEquals(name, ((UriResourceFunction) uriPathInfo).getFunctionImport().getName()); return this; } public ResourceValidator isEntitySet(final String name) { - assertEquals(UriResourceKind.entitySet, uriPathInfo.getKind()); - assertEquals(name, ((UriResourceEntitySetImpl) uriPathInfo).getEntitySet().getName()); + isUriPathInfoKind(UriResourceKind.entitySet); + assertEquals(name, ((UriResourceEntitySet) uriPathInfo).getEntitySet().getName()); return this; } public ResourceValidator isComplex(final String name) { - assertEquals(UriResourceKind.complexProperty, uriPathInfo.getKind()); - assertEquals(name, ((UriResourceComplexPropertyImpl) uriPathInfo).getProperty().getName()); + isUriPathInfoKind(UriResourceKind.complexProperty); + assertEquals(name, ((UriResourceComplexProperty) uriPathInfo).getProperty().getName()); return this; } public ResourceValidator isSingleton(final String name) { - assertEquals(UriResourceKind.singleton, uriPathInfo.getKind()); - assertEquals(name, ((UriResourceSingletonImpl) uriPathInfo).getSingleton().getName()); + isUriPathInfoKind(UriResourceKind.singleton); + assertEquals(name, ((UriResourceSingleton) uriPathInfo).getSingleton().getName()); return this; } public ResourceValidator isValue() { - assertEquals(UriResourceKind.value, uriPathInfo.getKind()); - return this; + return isUriPathInfoKind(UriResourceKind.value); } public ResourceValidator isCount() { - assertEquals(UriResourceKind.count, uriPathInfo.getKind()); - return this; + return isUriPathInfoKind(UriResourceKind.count); } public ResourceValidator isRef() { - assertEquals(UriResourceKind.ref, uriPathInfo.getKind()); - return this; + return isUriPathInfoKind(UriResourceKind.ref); } public ResourceValidator isActionImport(final String actionName) { - assertEquals(UriResourceKind.action, uriPathInfo.getKind()); - assertEquals(actionName, ((UriResourceActionImpl) uriPathInfo).getActionImport().getName()); + isUriPathInfoKind(UriResourceKind.action); + assertEquals(actionName, ((UriResourceAction) uriPathInfo).getActionImport().getName()); return this; } public ResourceValidator isIt() { - assertEquals(UriResourceKind.it, uriPathInfo.getKind()); - return this; + return isUriPathInfoKind(UriResourceKind.it); } public ResourceValidator isTopText(final String topText) { @@ -560,29 +491,24 @@ public class ResourceValidator implements TestValidator { } public ResourceValidator isSelectItemStar(final int index) { - SelectOptionImpl select = (SelectOptionImpl) uriInfo.getSelectOption(); - + final SelectOption select = uriInfo.getSelectOption(); SelectItem item = select.getSelectItems().get(index); - assertEquals(true, item.isStar()); + assertTrue(item.isStar()); return this; } public ResourceValidator isSelectItemAllOp(final int index, final FullQualifiedName fqn) { - SelectOptionImpl select = (SelectOptionImpl) uriInfo.getSelectOption(); - + final SelectOption select = uriInfo.getSelectOption(); SelectItem item = select.getSelectItems().get(index); - assertEquals(fqn.toString(), item.getAllOperationsInSchemaNameSpace().toString()); + assertEquals(fqn, item.getAllOperationsInSchemaNameSpace()); return this; } public ResourceValidator isSelectStartType(final int index, final FullQualifiedName fullName) { - SelectOptionImpl select = (SelectOptionImpl) uriInfo.getSelectOption(); + final SelectOption select = uriInfo.getSelectOption(); SelectItem item = select.getSelectItems().get(index); - EdmType actualType = item.getStartTypeFilter(); - - FullQualifiedName actualName = new FullQualifiedName(actualType.getNamespace(), actualType.getName()); - assertEquals(fullName, actualName); + assertEquals(fullName, actualType.getFullQualifiedName()); return this; } @@ -591,5 +517,4 @@ public class ResourceValidator implements TestValidator { assertEquals(value, valueForAlias); return this; } - } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/837c3565/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/TestUriValidator.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/TestUriValidator.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/TestUriValidator.java index 0eb0378..6a2e5b4 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/TestUriValidator.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/TestUriValidator.java @@ -19,12 +19,12 @@ package org.apache.olingo.server.core.uri.testutil; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.List; import org.apache.olingo.commons.api.edm.Edm; -import org.apache.olingo.commons.api.edm.EdmEntityType; import org.apache.olingo.commons.api.edm.EdmType; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.http.HttpMethod; @@ -32,16 +32,14 @@ import org.apache.olingo.server.api.ODataLibraryException; import org.apache.olingo.server.api.uri.UriInfo; import org.apache.olingo.server.api.uri.UriInfoKind; import org.apache.olingo.server.api.uri.queryoption.CustomQueryOption; +import org.apache.olingo.server.api.uri.queryoption.ExpandOption; +import org.apache.olingo.server.api.uri.queryoption.FilterOption; import org.apache.olingo.server.api.uri.queryoption.SelectItem; -import org.apache.olingo.server.core.uri.UriInfoImpl; +import org.apache.olingo.server.api.uri.queryoption.SelectOption; import org.apache.olingo.server.core.uri.parser.Parser; import org.apache.olingo.server.core.uri.parser.UriParserException; import org.apache.olingo.server.core.uri.parser.UriParserSemanticException; import org.apache.olingo.server.core.uri.parser.UriParserSyntaxException; -import org.apache.olingo.server.core.uri.queryoption.CustomQueryOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.ExpandOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.FilterOptionImpl; -import org.apache.olingo.server.core.uri.queryoption.SelectOptionImpl; import org.apache.olingo.server.core.uri.validator.UriValidationException; import org.apache.olingo.server.core.uri.validator.UriValidator; @@ -95,7 +93,6 @@ public class TestUriValidator implements TestValidator { } catch (UriValidationException e) { exception = e; } - return this; } @@ -106,22 +103,21 @@ public class TestUriValidator implements TestValidator { } return new ResourceValidator() - .setUpValidator(this) - .setEdm(edm) - .setUriInfoImplPath(uriInfo); + .setUpValidator(this) + .setEdm(edm) + .setUriInfoPath(uriInfo); } public FilterValidator goFilter() { - FilterOptionImpl filter = (FilterOptionImpl) uriInfo.getFilterOption(); + final FilterOption filter = uriInfo.getFilterOption(); if (filter == null) { fail("no filter found"); } return new FilterValidator().setUriValidator(this).setFilter(filter); - } public ExpandValidator goExpand() { - ExpandOptionImpl expand = (ExpandOptionImpl) uriInfo.getExpandOption(); + final ExpandOption expand = uriInfo.getExpandOption(); if (expand == null) { fail("invalid resource kind: " + uriInfo.getKind().toString()); } @@ -130,27 +126,20 @@ public class TestUriValidator implements TestValidator { } public ResourceValidator goSelectItemPath(final int index) { - SelectOptionImpl select = (SelectOptionImpl) uriInfo.getSelectOption(); - + final SelectOption select = uriInfo.getSelectOption(); SelectItem item = select.getSelectItems().get(index); - UriInfoImpl uriInfo1 = (UriInfoImpl) item.getResourcePath(); - return new ResourceValidator() - .setUpValidator(this) - .setEdm(edm) - .setUriInfoImplPath(uriInfo1); - + .setUpValidator(this) + .setEdm(edm) + .setUriInfoPath(item.getResourcePath()); } public TestUriValidator isSelectStartType(final int index, final FullQualifiedName fullName) { - SelectOptionImpl select = (SelectOptionImpl) uriInfo.getSelectOption(); + final SelectOption select = uriInfo.getSelectOption(); SelectItem item = select.getSelectItems().get(index); EdmType actualType = item.getStartTypeFilter(); - - FullQualifiedName actualName = new FullQualifiedName(actualType.getNamespace(), actualType.getName()); - assertEquals(fullName, actualName); + assertEquals(fullName, actualType.getFullQualifiedName()); return this; - } // Validation @@ -169,7 +158,7 @@ public class TestUriValidator implements TestValidator { fail("not enough queryParameters"); } - CustomQueryOptionImpl option = (CustomQueryOptionImpl) list.get(index); + CustomQueryOption option = list.get(index); assertEquals(name, option.getName()); assertEquals(value, option.getText()); return this; @@ -185,7 +174,6 @@ public class TestUriValidator implements TestValidator { assertEquals(entitySet, uriInfo.getEntitySetNames().get(i)); i++; } - } public TestUriValidator isExSyntax(final UriParserSyntaxException.MessageKeys messageKey) { @@ -232,7 +220,6 @@ public class TestUriValidator implements TestValidator { } assertEquals(text, uriInfo.getFragment()); - return this; } @@ -241,27 +228,21 @@ public class TestUriValidator implements TestValidator { fail("invalid resource kind: " + uriInfo.getKind().toString()); } - assertEquals(fullName.toString(), fullName(uriInfo.getEntityTypeCast())); + assertEquals(fullName, uriInfo.getEntityTypeCast().getFullQualifiedName()); return this; } - private String fullName(final EdmEntityType type) { - return type.getNamespace() + "." + type.getName(); - } - public TestUriValidator isSelectItemStar(final int index) { - SelectOptionImpl select = (SelectOptionImpl) uriInfo.getSelectOption(); - + final SelectOption select = uriInfo.getSelectOption(); SelectItem item = select.getSelectItems().get(index); - assertEquals(true, item.isStar()); + assertTrue(item.isStar()); return this; } public TestUriValidator isSelectItemAllOp(final int index, final FullQualifiedName fqn) { - SelectOptionImpl select = (SelectOptionImpl) uriInfo.getSelectOption(); - + final SelectOption select = uriInfo.getSelectOption(); SelectItem item = select.getSelectItems().get(index); - assertEquals(fqn.toString(), item.getAllOperationsInSchemaNameSpace().toString()); + assertEquals(fqn, item.getAllOperationsInSchemaNameSpace()); return this; } }
