diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroup.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroup.java index 9cc8b16..6fc6ab4 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroup.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroup.java @@ -23,6 +23,14 @@ public class CompetitionGroup implements Serializable { private int minBirthYear; private int maxBirthYear = OPEN_END_MAX_YEAR; + private CompetitionGroup() { + } + + CompetitionGroup(int oldest, int youngest) { + this.maxBirthYear = youngest; + this.minBirthYear = oldest; + } + public int getOldestBirthYear() { return minBirthYear; } @@ -46,7 +54,12 @@ public class CompetitionGroup implements Serializable { competitionGroup.minBirthYear = OPEN_END_MIN_YEAR; } } - + + if (competitionGroup.maxBirthYear < competitionGroup.minBirthYear) { + int tmp = competitionGroup.maxBirthYear; + competitionGroup.maxBirthYear = competitionGroup.minBirthYear; + competitionGroup.minBirthYear = tmp; + } return competitionGroup; } @@ -67,4 +80,8 @@ public class CompetitionGroup implements Serializable { return line.toLowerCase().contains(youngest); } } + + public boolean isBirthyearInGroup(int birthYear) { + return maxBirthYear >= birthYear && minBirthYear <= birthYear; + } } diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroupLineParseTest.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroupTest.java similarity index 62% rename from src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroupLineParseTest.java rename to src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroupTest.java index 5522c1d..c3e8a99 100644 --- a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroupLineParseTest.java +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/CompetitionGroupTest.java @@ -7,31 +7,34 @@ import java.util.regex.Pattern; import org.junit.Test; -public class CompetitionGroupLineParseTest { +public class CompetitionGroupTest { @Test public void testTwo4DigitYears() { CompetitionGroup group = CompetitionGroup.parseLine("Schüler – innen E 2008 -2009 P4"); assertEquals(2009, group.getYoungestBirthYear()); + assertValuesOrder(group); group = CompetitionGroup.parseLine("Heranwachsende 2001-1995 P8"); - assertEquals(1995, group.getYoungestBirthYear()); + assertEquals(1995, group.getOldestBirthYear()); + assertValuesOrder(group); group = CompetitionGroup.parseLine("Jugend C: Jg. 2004/2005 W11 - W13"); assertEquals(2005, group.getYoungestBirthYear()); + assertValuesOrder(group); group = CompetitionGroup.parseLine("Schüler – innen E 2008 -2009 P4"); assertEquals(2008, group.getOldestBirthYear()); - - group = CompetitionGroup.parseLine("Jugend E: 2008 und jünger P8 - W11"); - assertEquals(2008, group.getOldestBirthYear()); + assertValuesOrder(group); group = CompetitionGroup.parseLine("Heranwachsende 2001-1995 P8"); - assertEquals(2001, group.getOldestBirthYear()); + assertEquals(2001, group.getYoungestBirthYear()); + assertValuesOrder(group); group = CompetitionGroup.parseLine("Jugend C: Jg. 2004/2005 W11 - W13"); assertEquals(2004, group.getOldestBirthYear()); + assertValuesOrder(group); } @@ -40,18 +43,44 @@ public class CompetitionGroupLineParseTest { CompetitionGroup group = CompetitionGroup.parseLine("Erwachsene: Jg. 1996 und älter W15 - FIG A"); assertEquals(1996, group.getYoungestBirthYear()); + assertValuesOrder(group); } @Test public void testOneYearIsOldest() { CompetitionGroup group = CompetitionGroup.parseLine("Schüler – innen F 2010 und jünger P3"); assertEquals(2010, group.getOldestBirthYear()); + assertValuesOrder(group); group = CompetitionGroup.parseLine("Jugend E: 2008 und jünger P8 - W11"); assertEquals(2008, group.getOldestBirthYear()); + assertValuesOrder(group); } + @Test + public void testTestConstructor() { + CompetitionGroup g = new CompetitionGroup(2008, 2009); + assertValuesOrder(g); + } + + @Test + public void testBirthYearTest() { + CompetitionGroup g = new CompetitionGroup(2000, 2009); + for (int i = 2000; i<=2009; i++) { + assertTrue(g.isBirthyearInGroup(i)); + } + assertFalse(g.isBirthyearInGroup(0)); + assertFalse(g.isBirthyearInGroup(1999)); + assertFalse(g.isBirthyearInGroup(2010)); + assertFalse(g.isBirthyearInGroup(9999)); + } + + CompetitionGroup assertValuesOrder(CompetitionGroup g) { + assertTrue(g.getOldestBirthYear() <= g.getYoungestBirthYear()); + return g; + } + @Test public void testRegexPattern() { Pattern pattern = Pattern.compile("\\d{2,4}");