aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/core/CoreDao.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2012-12-21 12:16:29 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2012-12-21 12:16:29 +0100
commite7b1958ce5e93ead2d7d3c74eabe00a4186a048a (patch)
treea73bfce74bc740f76f11e5376a233eed026b93f5 /src/main/java/io/trygvis/esper/testing/core/CoreDao.java
parentd25d523d2a7f7e4c3446d81740e09e487ad807d0 (diff)
downloadesper-testing-e7b1958ce5e93ead2d7d3c74eabe00a4186a048a.tar.gz
esper-testing-e7b1958ce5e93ead2d7d3c74eabe00a4186a048a.tar.bz2
esper-testing-e7b1958ce5e93ead2d7d3c74eabe00a4186a048a.tar.xz
esper-testing-e7b1958ce5e93ead2d7d3c74eabe00a4186a048a.zip
o Adding a 'core' domain module.
o Adding a table scanner and a job that converts jenkins builds to builds.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/core/CoreDao.java')
-rw-r--r--src/main/java/io/trygvis/esper/testing/core/CoreDao.java73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/core/CoreDao.java b/src/main/java/io/trygvis/esper/testing/core/CoreDao.java
new file mode 100644
index 0000000..a010dad
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/core/CoreDao.java
@@ -0,0 +1,73 @@
+package io.trygvis.esper.testing.core;
+
+import io.trygvis.esper.testing.*;
+import io.trygvis.esper.testing.sql.*;
+import org.joda.time.*;
+
+import java.sql.*;
+import java.util.*;
+
+import static io.trygvis.esper.testing.sql.SqlOption.*;
+import static java.lang.System.*;
+
+public class CoreDao {
+ private final Connection c;
+
+ public static final String PERSON = "uuid, created_date, name";
+
+ public static final SqlF<ResultSet, PersonDto> person = new SqlF<ResultSet, PersonDto>() {
+ public PersonDto apply(ResultSet rs) throws SQLException {
+ int i = 1;
+ return new PersonDto(
+ UUID.fromString(rs.getString(i++)),
+ new DateTime(rs.getTimestamp(i++).getTime()),
+ rs.getString(i));
+ }
+ };
+
+ public static final String BUILD = "uuid, created_date, timestamp, success, reference_type, reference_uuid";
+
+ public CoreDao(Connection c) {
+ this.c = c;
+ }
+
+ public SqlOption<PersonDto> selectPerson(String id) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON + " FROM person WHERE id=?")) {
+ int i = 1;
+ s.setString(i, id);
+ return fromRs(s.executeQuery()).map(person);
+ }
+ }
+
+ public SqlOption<PersonDto> selectPersonByJenkinsUuid(UUID jenkinsUser) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON + " FROM person WHERE uuid=(SELECT person FROM person_jenkins_user WHERE jenkins_user=?)")) {
+ int i = 1;
+ s.setString(i, jenkinsUser.toString());
+ return fromRs(s.executeQuery()).map(person);
+ }
+ }
+
+ public UUID insertBuild(DateTime timestamp, boolean success, EntityRef ref) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("INSERT INTO build(" + BUILD + ") VALUES(?, ?, ?, ?, ?, ?)")) {
+ UUID uuid = UUID.randomUUID();
+ int i = 1;
+ s.setString(i++, uuid.toString());
+ s.setTimestamp(i++, new Timestamp(currentTimeMillis()));
+ s.setTimestamp(i++, new Timestamp(timestamp.getMillis()));
+ s.setBoolean(i++, success);
+ s.setString(i++, ref.type);
+ s.setString(i, ref.uuid.toString());
+ s.executeUpdate();
+ return uuid;
+ }
+ }
+
+ public void insertBuildParticipant(UUID build, UUID person) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("INSERT INTO build_participant(build, person) VALUES(?, ?)")) {
+ int i = 1;
+ s.setString(i++, build.toString());
+ s.setString(i, person.toString());
+ s.executeUpdate();
+ }
+ }
+}