Changeset: 6060ca8c5c1a for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/6060ca8c5c1a
Modified Files:
        src/main/java/org/monetdb/jdbc/MonetConnection.java
        tests/OnClientTester.java
Branch: onclient
Log Message:

Add test for uploadFrom methods


diffs (77 lines):

diff --git a/src/main/java/org/monetdb/jdbc/MonetConnection.java 
b/src/main/java/org/monetdb/jdbc/MonetConnection.java
--- a/src/main/java/org/monetdb/jdbc/MonetConnection.java
+++ b/src/main/java/org/monetdb/jdbc/MonetConnection.java
@@ -3336,7 +3336,7 @@ public class MonetConnection
                        uploadFrom(reader);
                }
 
-               public void uploadFrom(BufferedReader reader) throws 
IOException {
+               public void uploadFrom(Reader reader) throws IOException {
                        OutputStream s = getStream();
                        OutputStreamWriter writer = new OutputStreamWriter(s, 
StandardCharsets.UTF_8);
                        char[] buffer = new char[64 * 1024];
diff --git a/tests/OnClientTester.java b/tests/OnClientTester.java
--- a/tests/OnClientTester.java
+++ b/tests/OnClientTester.java
@@ -5,6 +5,7 @@ import org.monetdb.jdbc.MonetUploadHandl
 import java.io.*;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
 import java.sql.*;
 
 public final class OnClientTester {
@@ -437,4 +438,51 @@ public final class OnClientTester {
                test_Download(4_000_000);
        }
 
-}
\ No newline at end of file
+       public void test_UploadFromStream() throws SQLException, Failure {
+               prepare();
+               MonetUploadHandler handler = new MonetUploadHandler() {
+                       String data = "1|one\n2|two\n3|three\n";
+
+                       @Override
+                       public void handleUpload(MonetConnection.Upload handle, 
String name, boolean textMode, int offset) throws IOException {
+                               ByteArrayInputStream s = new 
ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
+                               handle.uploadFrom(s);
+                       }
+               };
+               conn.setUploadHandler(handler);
+               update("COPY INTO foo FROM 'banana' ON CLIENT", 3);
+               queryInt("SELECT i FROM foo WHERE t = 'three'", 3);
+       }
+
+       public void test_UploadFromReader() throws SQLException, Failure {
+               prepare();
+               MonetUploadHandler handler = new MonetUploadHandler() {
+                       String data = "1|one\n2|two\n3|three\n";
+
+                       @Override
+                       public void handleUpload(MonetConnection.Upload handle, 
String name, boolean textMode, int offset) throws IOException {
+                               StringReader r = new StringReader(data);
+                               handle.uploadFrom(r);
+                       }
+               };
+               conn.setUploadHandler(handler);
+               update("COPY INTO foo FROM 'banana' ON CLIENT", 3);
+               queryInt("SELECT i FROM foo WHERE t = 'three'", 3);
+       }
+
+       public void test_UploadFromReaderOffset() throws SQLException, Failure {
+               prepare();
+               MonetUploadHandler handler = new MonetUploadHandler() {
+                       String data = "1|one\n2|two\n3|three\n";
+
+                       @Override
+                       public void handleUpload(MonetConnection.Upload handle, 
String name, boolean textMode, int offset) throws IOException {
+                               BufferedReader r = new BufferedReader(new 
StringReader(data));
+                               handle.uploadFrom(r, offset);
+                       }
+               };
+               conn.setUploadHandler(handler);
+               update("COPY OFFSET 2 INTO foo FROM 'banana' ON CLIENT", 2);
+               queryInt("SELECT i FROM foo WHERE t = 'three'", 3);
+       }
+}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to