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