refactor rxjava-jdbc

This commit is contained in:
Ahmed Tawila 2017-09-23 15:26:36 +02:00
parent a6befdb84e
commit 7ef66d7e83
8 changed files with 47 additions and 77 deletions

View File

@ -1,8 +1,13 @@
package com.baeldung.rxjava.jdbc; package com.baeldung.rxjava.jdbc;
import com.github.davidmoten.rx.jdbc.ConnectionProvider;
import com.github.davidmoten.rx.jdbc.ConnectionProviderFromUrl;
public class Connector { public class Connector {
public static final String DB_CONNECTION = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1"; public static final String DB_CONNECTION = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
public static final String DB_USER = ""; public static final String DB_USER = "";
public static final String DB_PASSWORD = ""; public static final String DB_PASSWORD = "";
public static final ConnectionProvider connectionProvider = new ConnectionProviderFromUrl(DB_CONNECTION, DB_USER, DB_PASSWORD);
} }

View File

@ -9,28 +9,20 @@ import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import com.github.davidmoten.rx.jdbc.ConnectionProvider; import com.github.davidmoten.rx.jdbc.ConnectionProvider;
import com.github.davidmoten.rx.jdbc.ConnectionProviderFromUrl;
import com.github.davidmoten.rx.jdbc.Database; import com.github.davidmoten.rx.jdbc.Database;
import rx.Observable; import rx.Observable;
public class AutomapClassTest { public class AutomapClassTest {
private String DB_CONNECTION = Connector.DB_CONNECTION; ConnectionProvider connectionProvider = Connector.connectionProvider;
private String DB_USER = Connector.DB_USER; Database db = Database.from(connectionProvider);
private String DB_PASSWORD = Connector.DB_PASSWORD;
ConnectionProvider cp = null;
Database db = null;
Observable<Integer> create = null; Observable<Integer> create = null;
Observable<Integer> insert1, insert2 = null; Observable<Integer> insert1, insert2 = null;
@Before @Before
public void setup() { public void setup() {
cp = new ConnectionProviderFromUrl(DB_CONNECTION, DB_USER, DB_PASSWORD);
db = Database.from(cp);
create = db.update("CREATE TABLE IF NOT EXISTS MANAGER(id int primary key, name varchar(255))") create = db.update("CREATE TABLE IF NOT EXISTS MANAGER(id int primary key, name varchar(255))")
.count(); .count();
insert1 = db.update("INSERT INTO MANAGER(id, name) VALUES(1, 'Alan')") insert1 = db.update("INSERT INTO MANAGER(id, name) VALUES(1, 'Alan')")
@ -66,6 +58,6 @@ public class AutomapClassTest {
public void close() { public void close() {
db.update("DROP TABLE MANAGER") db.update("DROP TABLE MANAGER")
.dependsOn(create); .dependsOn(create);
cp.close(); connectionProvider.close();
} }
} }

View File

@ -16,21 +16,14 @@ import rx.Observable;
public class AutomapInterfaceTest { public class AutomapInterfaceTest {
private String DB_CONNECTION = Connector.DB_CONNECTION; ConnectionProvider connectionProvider = Connector.connectionProvider;
private String DB_USER = Connector.DB_USER; Database db = Database.from(connectionProvider);
private String DB_PASSWORD = Connector.DB_PASSWORD;
ConnectionProvider cp = null;
Database db = null;
Observable<Integer> create = null; Observable<Integer> create = null;
Observable<Integer> insert1, insert2 = null; Observable<Integer> insert1, insert2 = null;
@Before @Before
public void setup() { public void setup() {
cp = new ConnectionProviderFromUrl(DB_CONNECTION, DB_USER, DB_PASSWORD);
db = Database.from(cp);
create = db.update("CREATE TABLE IF NOT EXISTS EMPLOYEE(id int primary key, name varchar(255))") create = db.update("CREATE TABLE IF NOT EXISTS EMPLOYEE(id int primary key, name varchar(255))")
.count(); .count();
insert1 = db.update("INSERT INTO EMPLOYEE(id, name) VALUES(1, 'Alan')") insert1 = db.update("INSERT INTO EMPLOYEE(id, name) VALUES(1, 'Alan')")
@ -66,7 +59,7 @@ public class AutomapInterfaceTest {
public void close() { public void close() {
db.update("DROP TABLE EMPLOYEE") db.update("DROP TABLE EMPLOYEE")
.dependsOn(create); .dependsOn(create);
cp.close(); connectionProvider.close();
} }
} }

View File

@ -17,20 +17,10 @@ import rx.Observable;
public class BasicQueryTypesTest { public class BasicQueryTypesTest {
private String DB_CONNECTION = Connector.DB_CONNECTION; ConnectionProvider connectionProvider = Connector.connectionProvider;
private String DB_USER = Connector.DB_USER; Database db = Database.from(connectionProvider);
private String DB_PASSWORD = Connector.DB_PASSWORD;
ConnectionProvider cp = null; Observable<Integer> create, insert1, insert2, insert3, update, delete = null;
Database db = null;
Observable<Integer> create, insert1, insert2, insert3, insert4, insert5, update, delete = null;
@Before
public void setup() {
cp = new ConnectionProviderFromUrl(DB_CONNECTION, DB_USER, DB_PASSWORD);
db = Database.from(cp);
}
@Test @Test
public void whenCreateTableAndInsertRecords_thenCorrect() { public void whenCreateTableAndInsertRecords_thenCorrect() {
@ -48,36 +38,29 @@ public class BasicQueryTypesTest {
insert3 = db.update("INSERT INTO EMPLOYEE(id, name) VALUES(3, 'Mike')") insert3 = db.update("INSERT INTO EMPLOYEE(id, name) VALUES(3, 'Mike')")
.dependsOn(create) .dependsOn(create)
.count(); .count();
insert4 = db.update("INSERT INTO EMPLOYEE(id, name) VALUES(4, 'Jennifer')") delete = db.update("DELETE FROM EMPLOYEE WHERE id = 2")
.dependsOn(create) .dependsOn(create)
.count(); .count();
insert5 = db.update("INSERT INTO EMPLOYEE(id, name) VALUES(5, 'George')") List<String> names = db.select("select name from EMPLOYEE where id < ?")
.dependsOn(create) .parameter(3)
.count();
delete = db.update("DELETE FROM EMPLOYEE WHERE id = 5")
.dependsOn(create)
.count();
List<String> names = db.select("select name from EMPLOYEE where id > ?")
.parameter(2)
.dependsOn(create) .dependsOn(create)
.dependsOn(insert1) .dependsOn(insert1)
.dependsOn(insert2) .dependsOn(insert2)
.dependsOn(insert3) .dependsOn(insert3)
.dependsOn(insert4)
.dependsOn(insert5)
.dependsOn(update) .dependsOn(update)
.dependsOn(delete) .dependsOn(delete)
.getAs(String.class) .getAs(String.class)
.toList() .toList()
.toBlocking() .toBlocking()
.single(); .single();
assertEquals(Arrays.asList("Mike", "Jennifer"), names);
assertEquals(Arrays.asList("Alan"), names);
} }
@After @After
public void close() { public void close() {
db.update("DROP TABLE EMPLOYEE") db.update("DROP TABLE EMPLOYEE")
.dependsOn(create); .dependsOn(create);
cp.close(); connectionProvider.close();
} }
} }

View File

@ -5,28 +5,21 @@ import static org.junit.Assert.assertEquals;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.StringWriter;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import com.github.davidmoten.rx.jdbc.ConnectionProvider; import com.github.davidmoten.rx.jdbc.ConnectionProvider;
import com.github.davidmoten.rx.jdbc.ConnectionProviderFromUrl;
import com.github.davidmoten.rx.jdbc.Database; import com.github.davidmoten.rx.jdbc.Database;
import rx.Observable; import rx.Observable;
public class InsertBlobTest { public class InsertBlobTest {
private String DB_CONNECTION = Connector.DB_CONNECTION; ConnectionProvider connectionProvider = Connector.connectionProvider;
private String DB_USER = Connector.DB_USER; Database db = Database.from(connectionProvider);
private String DB_PASSWORD = Connector.DB_PASSWORD;
ConnectionProvider cp = new ConnectionProviderFromUrl(DB_CONNECTION, DB_USER, DB_PASSWORD);
Database db = Database.from(cp);
String expectedDocument = null; String expectedDocument = null;
String actualDocument = null; String actualDocument = null;
@ -67,6 +60,6 @@ public class InsertBlobTest {
public void close() { public void close() {
db.update("DROP TABLE SERVERLOG") db.update("DROP TABLE SERVERLOG")
.dependsOn(create); .dependsOn(create);
cp.close(); connectionProvider.close();
} }
} }

View File

@ -18,12 +18,8 @@ import rx.Observable;
public class InsertClobTest { public class InsertClobTest {
private String DB_CONNECTION = Connector.DB_CONNECTION; ConnectionProvider connectionProvider = Connector.connectionProvider;
private String DB_USER = Connector.DB_USER; Database db = Database.from(connectionProvider);
private String DB_PASSWORD = Connector.DB_PASSWORD;
ConnectionProvider cp = new ConnectionProviderFromUrl(DB_CONNECTION, DB_USER, DB_PASSWORD);
Database db = Database.from(cp);
String expectedDocument = null; String expectedDocument = null;
String actualDocument = null; String actualDocument = null;
@ -63,6 +59,6 @@ public class InsertClobTest {
public void close() { public void close() {
db.update("DROP TABLE SERVERLOG") db.update("DROP TABLE SERVERLOG")
.dependsOn(create); .dependsOn(create);
cp.close(); connectionProvider.close();
} }
} }

View File

@ -2,6 +2,7 @@ package com.baeldung.rxjava.jdbc;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@ -13,15 +14,11 @@ import rx.Observable;
public class ReturnKeysTest { public class ReturnKeysTest {
private String DB_CONNECTION = Connector.DB_CONNECTION;
private String DB_USER = Connector.DB_USER;
private String DB_PASSWORD = Connector.DB_PASSWORD;
Observable<Boolean> begin, commit = null; Observable<Boolean> begin, commit = null;
Observable<Integer> createStatement, insertStatement, updateStatement = null; Observable<Integer> createStatement, insertStatement, updateStatement = null;
ConnectionProvider cp = new ConnectionProviderFromUrl(DB_CONNECTION, DB_USER, DB_PASSWORD); ConnectionProvider connectionProvider = Connector.connectionProvider;
Database db = Database.from(cp); Database db = Database.from(connectionProvider);
@Before @Before
public void setup() { public void setup() {
@ -42,4 +39,11 @@ public class ReturnKeysTest {
.single(); .single();
assertThat(key).isEqualTo(1); assertThat(key).isEqualTo(1);
} }
@After
public void close() {
db.update("DROP TABLE EMPLOYEE")
.dependsOn(createStatement);
connectionProvider.close();
}
} }

View File

@ -2,6 +2,7 @@ package com.baeldung.rxjava.jdbc;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.Test; import org.junit.Test;
import com.github.davidmoten.rx.jdbc.ConnectionProvider; import com.github.davidmoten.rx.jdbc.ConnectionProvider;
@ -12,15 +13,11 @@ import rx.Observable;
public class TransactionTest { public class TransactionTest {
private String DB_CONNECTION = Connector.DB_CONNECTION;
private String DB_USER = Connector.DB_USER;
private String DB_PASSWORD = Connector.DB_PASSWORD;
Observable<Boolean> begin, commit = null; Observable<Boolean> begin, commit = null;
Observable<Integer> createStatement, insertStatement, updateStatement = null; Observable<Integer> createStatement, insertStatement, updateStatement = null;
ConnectionProvider cp = new ConnectionProviderFromUrl(DB_CONNECTION, DB_USER, DB_PASSWORD); ConnectionProvider connectionProvider = Connector.connectionProvider;
Database db = Database.from(cp); Database db = Database.from(connectionProvider);
@Test @Test
public void whenCommitTransaction_thenRecordUpdated() { public void whenCommitTransaction_thenRecordUpdated() {
@ -43,4 +40,11 @@ public class TransactionTest {
assertEquals("Tom", name); assertEquals("Tom", name);
} }
@After
public void close() {
db.update("DROP TABLE EMPLOYEE")
.dependsOn(createStatement);
connectionProvider.close();
}
} }