Extract CsvReader into separate ebean-csv-reader module

This commit is contained in:
Rob Bygrave
2022-08-25 17:25:49 +12:00
parent 5b2a8cdacb
commit 216c43eea6
22 changed files with 372 additions and 130 deletions
@@ -1,43 +0,0 @@
package org.tests.text.csv;
import io.ebean.DB;
import io.ebean.xtest.base.TransactionalTestCase;
import io.ebean.text.csv.CsvReader;
import io.ebean.util.IOUtils;
import org.junit.jupiter.api.Test;
import org.tests.model.basic.Customer;
import org.tests.model.basic.ResetBasicData;
import java.io.Reader;
import java.net.URL;
import java.util.Locale;
public class TestCsvReader extends TransactionalTestCase {
@Test
public void test() throws Exception {
ResetBasicData.reset();
URL resource = TestCsvReaderWithCallback.class.getResource("/test1.csv");
try (Reader reader = IOUtils.newReader(resource.openStream())){
CsvReader<Customer> csvReader = DB.getDefault().createCsvReader(Customer.class);
csvReader.setPersistBatchSize(2);
csvReader.addIgnore();
// csvReader.addProperty("id");
csvReader.addProperty("status");
csvReader.addProperty("name");
csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.ENGLISH);
csvReader.addProperty("billingAddress.line1");
csvReader.addProperty("billingAddress.city");
csvReader.addProperty("billingAddress.country.code");
csvReader.process(reader);
}
}
}
@@ -1,59 +0,0 @@
package org.tests.text.csv;
import io.ebean.DB;
import io.ebean.xtest.base.TransactionalTestCase;
import io.ebean.text.csv.CsvReader;
import io.ebean.text.csv.DefaultCsvCallback;
import io.ebean.util.IOUtils;
import org.junit.jupiter.api.Test;
import org.tests.model.basic.Customer;
import java.io.Reader;
import java.net.URL;
import java.util.Locale;
import static org.assertj.core.api.Assertions.assertThat;
public class TestCsvReaderWithCallback extends TransactionalTestCase {
@Test
public void test() throws Throwable {
URL resource = TestCsvReaderWithCallback.class.getResource("/test1.csv");
try (Reader reader = IOUtils.newReader(resource.openStream())) {
CsvReader<Customer> csvReader = DB.getDefault().createCsvReader(Customer.class);
csvReader.setPersistBatchSize(2);
csvReader.setLogInfoFrequency(3);
csvReader.addIgnore();
// csvReader.addProperty("id");
csvReader.addProperty("status");
csvReader.addProperty("name");
csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.ENGLISH);
csvReader.addProperty("billingAddress.line1");
csvReader.addProperty("billingAddress.city");
// processor.addReference("billingAddress.country.code");
csvReader.addProperty("billingAddress.country.code");
int before = DB.find(Customer.class).findCount();
csvReader.process(reader, new DefaultCsvCallback<Customer>() {
@Override
public void processBean(int row, String[] lineContent, Customer cust) {
server.save(cust.getBillingAddress(), transaction);
server.save(cust, transaction);
}
});
int after = DB.find(Customer.class).findCount();
assertThat(after).isEqualTo(before + 9);
}
}
}
@@ -1,38 +0,0 @@
package org.tests.text.csv;
import io.ebean.xtest.BaseTestCase;
import io.ebean.text.TimeStringParser;
import org.junit.jupiter.api.Test;
import java.sql.Time;
import static org.junit.jupiter.api.Assertions.*;
public class TestTimeStringParser extends BaseTestCase {
@Test
public void testSimple() {
Time t = (Time) TimeStringParser.get().parse("12:00");
assertNotNull(t);
t = (Time) TimeStringParser.get().parse("12:00:12");
assertNotNull(t);
expectError("12");
expectError("12:");
expectError("12:00:");
expectError("12:00::");
expectError("12:00:00:");
}
private void expectError(String value) {
try {
TimeStringParser.get().parse(value);
fail();
} catch (IllegalArgumentException e) {
assertTrue(true);
}
}
}