comparison tests/OnClientTester.java @ 526:6060ca8c5c1a onclient

Add test for uploadFrom methods
author Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
date Thu, 26 Aug 2021 14:24:31 +0200 (2021-08-26)
parents 70ff796c42f7
children ccf9c7fbdb50
comparison
equal deleted inserted replaced
525:70ff796c42f7 526:6060ca8c5c1a
3 import org.monetdb.jdbc.MonetUploadHandler; 3 import org.monetdb.jdbc.MonetUploadHandler;
4 4
5 import java.io.*; 5 import java.io.*;
6 import java.lang.reflect.InvocationTargetException; 6 import java.lang.reflect.InvocationTargetException;
7 import java.lang.reflect.Method; 7 import java.lang.reflect.Method;
8 import java.nio.charset.StandardCharsets;
8 import java.sql.*; 9 import java.sql.*;
9 10
10 public final class OnClientTester { 11 public final class OnClientTester {
11 public static final int VERBOSITY_NONE = 0; 12 public static final int VERBOSITY_NONE = 0;
12 public static final int VERBOSITY_ON = 1; 13 public static final int VERBOSITY_ON = 1;
435 436
436 public void test_LargeDownload() throws SQLException, Failure { 437 public void test_LargeDownload() throws SQLException, Failure {
437 test_Download(4_000_000); 438 test_Download(4_000_000);
438 } 439 }
439 440
441 public void test_UploadFromStream() throws SQLException, Failure {
442 prepare();
443 MonetUploadHandler handler = new MonetUploadHandler() {
444 String data = "1|one\n2|two\n3|three\n";
445
446 @Override
447 public void handleUpload(MonetConnection.Upload handle, String name, boolean textMode, int offset) throws IOException {
448 ByteArrayInputStream s = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
449 handle.uploadFrom(s);
450 }
451 };
452 conn.setUploadHandler(handler);
453 update("COPY INTO foo FROM 'banana' ON CLIENT", 3);
454 queryInt("SELECT i FROM foo WHERE t = 'three'", 3);
455 }
456
457 public void test_UploadFromReader() throws SQLException, Failure {
458 prepare();
459 MonetUploadHandler handler = new MonetUploadHandler() {
460 String data = "1|one\n2|two\n3|three\n";
461
462 @Override
463 public void handleUpload(MonetConnection.Upload handle, String name, boolean textMode, int offset) throws IOException {
464 StringReader r = new StringReader(data);
465 handle.uploadFrom(r);
466 }
467 };
468 conn.setUploadHandler(handler);
469 update("COPY INTO foo FROM 'banana' ON CLIENT", 3);
470 queryInt("SELECT i FROM foo WHERE t = 'three'", 3);
471 }
472
473 public void test_UploadFromReaderOffset() throws SQLException, Failure {
474 prepare();
475 MonetUploadHandler handler = new MonetUploadHandler() {
476 String data = "1|one\n2|two\n3|three\n";
477
478 @Override
479 public void handleUpload(MonetConnection.Upload handle, String name, boolean textMode, int offset) throws IOException {
480 BufferedReader r = new BufferedReader(new StringReader(data));
481 handle.uploadFrom(r, offset);
482 }
483 };
484 conn.setUploadHandler(handler);
485 update("COPY OFFSET 2 INTO foo FROM 'banana' ON CLIENT", 2);
486 queryInt("SELECT i FROM foo WHERE t = 'three'", 3);
487 }
440 } 488 }