[OLINGO-626] [OLINGO-623] Fix query parameter parsing
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
index 5187411..e39d3af 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
@@ -18,14 +18,10 @@
******************************************************************************/
package org.apache.olingo.odata2.jpa.processor.core.mock;
-import java.net.URI;
-import java.util.List;
-
import org.apache.olingo.odata2.api.ODataService;
import org.apache.olingo.odata2.api.exception.ODataException;
import org.apache.olingo.odata2.api.processor.ODataContext;
import org.apache.olingo.odata2.api.uri.PathInfo;
-import org.apache.olingo.odata2.api.uri.PathSegment;
import org.easymock.EasyMock;
public class ODataContextMock {
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/v2/BatchParserCommon.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/v2/BatchParserCommon.java
index b36f873..e4b67d5 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/v2/BatchParserCommon.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/v2/BatchParserCommon.java
@@ -242,17 +242,13 @@
for (String parameter : parameters) {
String[] parameterParts = parameter.split("=");
- String parameterName = parameterParts[0].toLowerCase(Locale.ENGLISH);
+ String parameterName = parameterParts[0];
if (parameterParts.length == 2) {
List<String> valueList = queryParameter.get(parameterName);
valueList = valueList == null ? new LinkedList<String>() : valueList;
queryParameter.put(parameterName, valueList);
-
- String[] valueParts = parameterParts[1].split(",");
- for (String value : valueParts) {
- valueList.add(Decoder.decode(value));
- }
+ valueList.add(Decoder.decode(parameterParts[1]));
}
}
}
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java
index 4ec24f6..2abff6e 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java
@@ -25,7 +25,6 @@
import static org.mockito.Mockito.when;
import java.io.InputStream;
-import java.net.URI;
import java.util.Arrays;
import org.apache.olingo.odata2.api.ODataServiceVersion;
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/BatchTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/BatchTest.java
index de5f291..a6a297d 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/BatchTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/BatchTest.java
@@ -55,6 +55,24 @@
.contains("<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">"));
assertTrue(responseBody.contains("<edmx:Edmx Version=\"1.0\""));
}
+
+ @Test
+ public void functionImportBatch() throws Exception {
+ String responseBody = execute("/functionImport.batch");
+ assertFalse(responseBody
+ .contains("<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">"));
+ assertTrue(responseBody.contains("HTTP/1.1 200 OK"));
+ assertTrue(responseBody.contains("<?xml version='1.0' encoding='utf-8'?><ManagerPhoto xmlns="));
+ }
+
+ @Test
+ public void employeesWithFilterBatch() throws Exception {
+ String responseBody = execute("/employeesWithFilter.batch");
+ assertFalse(responseBody
+ .contains("<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">"));
+ assertTrue(responseBody.contains("HTTP/1.1 200 OK"));
+ assertTrue(responseBody.contains("<d:EmployeeName>Walter Winter</d:EmployeeName>"));
+ }
@Test
public void testChangeSetBatch() throws Exception {
diff --git a/odata2-lib/odata-fit/src/test/resources/employeesWithFilter.batch b/odata2-lib/odata-fit/src/test/resources/employeesWithFilter.batch
new file mode 100644
index 0000000..e3ee7a9
--- /dev/null
+++ b/odata2-lib/odata-fit/src/test/resources/employeesWithFilter.batch
@@ -0,0 +1,8 @@
+--batch_123
+Content-Type: application/http
+Content-Transfer-Encoding:binary
+
+GET Employees?$filter=substringof('Walter',EmployeeName) HTTP/1.1
+
+
+--batch_123--
\ No newline at end of file
diff --git a/odata2-lib/odata-fit/src/test/resources/functionImport.batch b/odata2-lib/odata-fit/src/test/resources/functionImport.batch
new file mode 100644
index 0000000..c6ee1f2
--- /dev/null
+++ b/odata2-lib/odata-fit/src/test/resources/functionImport.batch
@@ -0,0 +1,8 @@
+--batch_123
+Content-Type: application/http
+Content-Transfer-Encoding:binary
+
+GET ManagerPhoto?Id='1' HTTP/1.1
+
+
+--batch_123--
\ No newline at end of file