aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/core/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/core/db')
-rw-r--r--src/main/java/io/trygvis/esper/testing/core/db/BuildDao.java (renamed from src/main/java/io/trygvis/esper/testing/core/db/CoreDao.java)44
-rw-r--r--src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java10
-rw-r--r--src/main/java/io/trygvis/esper/testing/core/db/PersonBadgeDto.java25
-rw-r--r--src/main/java/io/trygvis/esper/testing/core/db/PersonBadgeProgressDto.java20
-rw-r--r--src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java154
5 files changed, 221 insertions, 32 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/core/db/CoreDao.java b/src/main/java/io/trygvis/esper/testing/core/db/BuildDao.java
index 5eab2c9..24ecfd3 100644
--- a/src/main/java/io/trygvis/esper/testing/core/db/CoreDao.java
+++ b/src/main/java/io/trygvis/esper/testing/core/db/BuildDao.java
@@ -7,46 +7,30 @@ import org.joda.time.*;
import java.sql.*;
import java.util.*;
-import static io.trygvis.esper.testing.util.sql.SqlOption.*;
+import static io.trygvis.esper.testing.util.sql.ResultSetF.*;
import static java.lang.System.*;
-public class CoreDao {
+public class BuildDao {
private final Connection c;
- public static final String PERSON = "uuid, created_date, name";
+ public static final String BUILD = "uuid, created_date, timestamp, success, reference_type, reference_uuid";
- public static final SqlF<ResultSet, PersonDto> person = new SqlF<ResultSet, PersonDto>() {
- public PersonDto apply(ResultSet rs) throws SQLException {
+ public static final SqlF<ResultSet, BuildDto> build = new SqlF<ResultSet, BuildDto>() {
+ public BuildDto apply(ResultSet rs) throws SQLException {
int i = 1;
- return new PersonDto(
+ return new BuildDto(
UUID.fromString(rs.getString(i++)),
new DateTime(rs.getTimestamp(i++).getTime()),
- rs.getString(i));
+ new DateTime(rs.getTimestamp(i++).getTime()),
+ rs.getBoolean(i++),
+ EntityRef.fromRs(rs, i));
}
};
- public static final String BUILD = "uuid, created_date, timestamp, success, reference_type, reference_uuid";
-
- public CoreDao(Connection c) {
+ public BuildDao(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();
@@ -70,4 +54,12 @@ public class CoreDao {
s.executeUpdate();
}
}
+
+ public List<UUID> selectPersonsFromBuildParticipant(UUID build) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT person FROM build_participant WHERE build=?")) {
+ int i = 1;
+ s.setString(i, build.toString());
+ return Util.toList(s, getUuid);
+ }
+ }
}
diff --git a/src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java b/src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java
index 5cc6b0a..305c93a 100644
--- a/src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java
+++ b/src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java
@@ -5,17 +5,15 @@ import org.joda.time.*;
import java.util.*;
-class BuildDto extends AbstractEntity {
+public class BuildDto extends AbstractEntity {
public final DateTime timestamp;
public final boolean success;
- public final UUID referenceUuid;
- public final String referenceType;
+ public final EntityRef ref;
- BuildDto(UUID uuid, DateTime createdDate, DateTime timestamp, boolean success, UUID referenceUuid, String referenceType) {
+ public BuildDto(UUID uuid, DateTime createdDate, DateTime timestamp, boolean success, EntityRef ref) {
super(uuid, createdDate);
this.timestamp = timestamp;
this.success = success;
- this.referenceUuid = referenceUuid;
- this.referenceType = referenceType;
+ this.ref = ref;
}
}
diff --git a/src/main/java/io/trygvis/esper/testing/core/db/PersonBadgeDto.java b/src/main/java/io/trygvis/esper/testing/core/db/PersonBadgeDto.java
new file mode 100644
index 0000000..5bbe159
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/core/db/PersonBadgeDto.java
@@ -0,0 +1,25 @@
+package io.trygvis.esper.testing.core.db;
+
+import io.trygvis.esper.testing.*;
+import org.joda.time.*;
+
+import java.util.*;
+
+public class PersonBadgeDto extends AbstractEntity {
+ public enum Type {
+ UNBREAKABLE
+ }
+
+ public final UUID person;
+ public final Type type;
+ public final int level;
+ public final int count;
+
+ public PersonBadgeDto(UUID uuid, DateTime createdDate, UUID person, Type type, int level, int count) {
+ super(uuid, createdDate);
+ this.person = person;
+ this.type = type;
+ this.level = level;
+ this.count = count;
+ }
+}
diff --git a/src/main/java/io/trygvis/esper/testing/core/db/PersonBadgeProgressDto.java b/src/main/java/io/trygvis/esper/testing/core/db/PersonBadgeProgressDto.java
new file mode 100644
index 0000000..e572bb2
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/core/db/PersonBadgeProgressDto.java
@@ -0,0 +1,20 @@
+package io.trygvis.esper.testing.core.db;
+
+import io.trygvis.esper.testing.*;
+import org.joda.time.*;
+
+import java.util.*;
+
+public class PersonBadgeProgressDto extends AbstractEntity {
+
+ public final UUID person;
+ public final String badge;
+ public final String state;
+
+ public PersonBadgeProgressDto(UUID uuid, DateTime createdDate, UUID person, String badge, String state) {
+ super(uuid, createdDate);
+ this.person = person;
+ this.badge = badge;
+ this.state = state;
+ }
+}
diff --git a/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java b/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java
new file mode 100644
index 0000000..2cb6e6a
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java
@@ -0,0 +1,154 @@
+package io.trygvis.esper.testing.core.db;
+
+import io.trygvis.esper.testing.util.sql.*;
+import org.joda.time.*;
+
+import java.sql.*;
+import java.util.*;
+
+import static io.trygvis.esper.testing.util.sql.SqlOption.*;
+import static java.lang.System.*;
+
+public class PersonDao {
+ 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 PERSON_BADGE = "uuid, created_date, person, name, level, count";
+
+ public static final SqlF<ResultSet, PersonBadgeDto> personBadge = new SqlF<ResultSet, PersonBadgeDto>() {
+ public PersonBadgeDto apply(ResultSet rs) throws SQLException {
+ int i = 1;
+ return new PersonBadgeDto(
+ UUID.fromString(rs.getString(i++)),
+ new DateTime(rs.getTimestamp(i++).getTime()),
+ UUID.fromString(rs.getString(i++)),
+ PersonBadgeDto.Type.valueOf(rs.getString(i++)),
+ rs.getInt(i),
+ rs.getInt(i));
+ }
+ };
+
+ public static final String PERSON_BADGE_PROGRESS = "uuid, created_date, person, badge, state";
+
+ public static final SqlF<ResultSet, PersonBadgeProgressDto> personBadgeProgress = new SqlF<ResultSet, PersonBadgeProgressDto>() {
+ public PersonBadgeProgressDto apply(ResultSet rs) throws SQLException {
+ int i = 1;
+ return new PersonBadgeProgressDto(
+ UUID.fromString(rs.getString(i++)),
+ new DateTime(rs.getTimestamp(i++).getTime()),
+ UUID.fromString(rs.getString(i++)),
+ rs.getString(i++),
+ rs.getString(i));
+ }
+ };
+
+ public PersonDao(Connection c) {
+ this.c = c;
+ }
+
+ // -----------------------------------------------------------------------
+ // Person
+ // -----------------------------------------------------------------------
+
+ 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);
+ }
+ }
+
+ // -----------------------------------------------------------------------
+ // Badge
+ // -----------------------------------------------------------------------
+
+ public UUID insertBadge(UUID person, PersonBadgeDto.Type type, int level, int count) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("INSERT INTO person_badge(" + PERSON_BADGE + ") VALUES(?, ?, ?, ?, ?, ?)")) {
+ UUID uuid = UUID.randomUUID();
+ int i = 1;
+ s.setString(i++, uuid.toString());
+ s.setTimestamp(i++, new Timestamp(currentTimeMillis()));
+ s.setString(i++, person.toString());
+ s.setString(i++, type.toString());
+ s.setInt(i++, level);
+ s.setInt(i, count);
+ s.executeUpdate();
+ return uuid;
+ }
+ }
+
+ public void incrementBadgeCount(UUID person, PersonBadgeDto.Type type, int level) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("UPDATE person_badge SET count=count+1 WHERE person=? AND name=? AND level=?")) {
+ int i = 1;
+ s.setString(i++, person.toString());
+ s.setString(i++, type.toString());
+ s.setInt(i, level);
+ s.executeUpdate();
+ }
+ }
+
+ public SqlOption<PersonBadgeDto> selectBadge(UUID person, PersonBadgeDto.Type type, int level) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON_BADGE + " FROM person_badge WHERE person=? AND name=? AND level=?")) {
+ int i = 1;
+ s.setString(i++, person.toString());
+ s.setString(i++, type.toString());
+ s.setInt(i, level);
+ return fromRs(s.executeQuery()).map(personBadge);
+ }
+ }
+
+ // -----------------------------------------------------------------------
+ // Badge Progress
+ // -----------------------------------------------------------------------
+
+ public SqlOption<PersonBadgeProgressDto> selectBadgeProgress(UUID person, PersonBadgeDto.Type type) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON_BADGE_PROGRESS + " FROM person_badge_progress WHERE person=? AND badge=?")) {
+ int i = 1;
+ s.setString(i++, person.toString());
+ s.setString(i, type.toString());
+ return fromRs(s.executeQuery()).map(personBadgeProgress);
+ }
+ }
+
+ public void insertBadgeProgress(UUID person, PersonBadgeDto.Type type, String state) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("INSERT INTO person_badge_progress (" + PERSON_BADGE_PROGRESS + ") VALUES(?, ?, ?, ?, ?)")) {
+ UUID uuid = UUID.randomUUID();
+ int i = 1;
+ s.setString(i++, uuid.toString());
+ s.setTimestamp(i++, new Timestamp(currentTimeMillis()));
+ s.setString(i++, person.toString());
+ s.setString(i++, type.toString());
+ s.setString(i, state);
+ s.executeUpdate();
+ }
+ }
+
+ public void updateBadgeProgress(UUID person, PersonBadgeDto.Type type, String state) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("UPDATE person_badge_progress SET state=? WHERE person=? AND badge=?")) {
+ int i = 1;
+ s.setString(i++, state);
+ s.setString(i++, person.toString());
+ s.setString(i, type.toString());
+ s.executeUpdate();
+ }
+ }
+}