aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/core
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2013-01-10 07:32:02 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2013-01-10 07:32:02 +0100
commit7838a06e5521db39aee8b3b87785fcb5e32cd7ad (patch)
treef10592e5f062d17522dcf08c11faa6ad166254e1 /src/main/java/io/trygvis/esper/testing/core
parentbc54871dac7ef10102edecf91a747d6595a4640f (diff)
downloadesper-testing-7838a06e5521db39aee8b3b87785fcb5e32cd7ad.tar.gz
esper-testing-7838a06e5521db39aee8b3b87785fcb5e32cd7ad.tar.bz2
esper-testing-7838a06e5521db39aee8b3b87785fcb5e32cd7ad.tar.xz
esper-testing-7838a06e5521db39aee8b3b87785fcb5e32cd7ad.zip
o Creating a single (awarded) badge view.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/core')
-rw-r--r--src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java39
-rw-r--r--src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java6
-rwxr-xr-xsrc/main/java/io/trygvis/esper/testing/core/db/PersonDao.java8
3 files changed, 45 insertions, 8 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java b/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java
index bf06fbb..d747d5c 100644
--- a/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java
+++ b/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java
@@ -15,6 +15,39 @@ public class BadgeService {
this.objectMapper = objectMapper;
}
+ public UnbreakableBadge unbreakable(PersonalBadgeDto dto) {
+ return getProgress(dto.state, UnbreakableBadge.class);
+ }
+
+ // -----------------------------------------------------------------------
+ // Badge
+ // -----------------------------------------------------------------------
+
+ public PersonalBadge badge(PersonalBadgeDto dto) {
+ switch (dto.type) {
+ case UNBREAKABLE:
+ return getProgress(dto.state, UnbreakableBadge.class);
+ }
+
+ throw new RuntimeException("Unknown badge type: " + dto.type);
+ }
+
+ public <T extends PersonalBadge> T badge(PersonalBadgeDto dto, Class<T> klass) {
+ switch (dto.type) {
+ case UNBREAKABLE:
+ if(!klass.equals(UnbreakableBadgeProgress.class)) {
+ throw new RuntimeException("Badge is not of the expected type: UNBREAKABLE.");
+ }
+ return getProgress(dto.state, klass);
+ }
+
+ throw new RuntimeException("Unknown badge type: " + dto.type);
+ }
+
+ // -----------------------------------------------------------------------
+ // Badge Progress
+ // -----------------------------------------------------------------------
+
public BadgeProgress badgeProgress(PersonBadgeProgressDto dto) {
switch (PersonalBadgeDto.BadgeType.valueOf(dto.badge)) {
case UNBREAKABLE:
@@ -36,9 +69,9 @@ public class BadgeService {
throw new RuntimeException("Unknown badge type: " + dto.badge);
}
- public UnbreakableBadge unbreakable(PersonalBadgeDto dto) {
- return getProgress(dto.state, UnbreakableBadge.class);
- }
+ // -----------------------------------------------------------------------
+ //
+ // -----------------------------------------------------------------------
public String serialize(Object badge) {
try {
diff --git a/src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java b/src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java
index 6b1c78d..f2d69c4 100644
--- a/src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java
+++ b/src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java
@@ -12,6 +12,12 @@ class UnbreakableBadge extends PersonalBadge {
public final List<UUID> builds;
+ @SuppressWarnings("UnusedDeclaration")
+ private UnbreakableBadge() {
+ super(null, 0);
+ builds = null;
+ }
+
UnbreakableBadge(Uuid person, int level, List<UUID> builds) {
super(person, level);
this.builds = builds;
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
index 4b22100..58af119 100755
--- a/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java
+++ b/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java
@@ -175,12 +175,10 @@ public class PersonDao {
}
}
- public SqlOption<PersonalBadgeDto> selectBadge(UUID person, BadgeType type, int level) throws SQLException {
- try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON_BADGE + " FROM person_badge WHERE person=? AND name=? AND level=? LIMIT 1")) {
+ public SqlOption<PersonalBadgeDto> selectBadge(Uuid uuid) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON_BADGE + " FROM person_badge WHERE uuid=?")) {
int i = 1;
- s.setString(i++, person.toString());
- s.setString(i++, type.toString());
- s.setInt(i, level);
+ s.setString(i, uuid.toUuidString());
return fromRs(s.executeQuery()).map(personBadge);
}
}