From 36734cfd05e1a80c798485496bb2bdf31aacdfce Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Thu, 26 May 2016 21:18:54 +0200 Subject: [PATCH] move of-age-test to calendar util Change-Id: I4b331c1cad92e5d3f06dfe8b325ae97198793e11 --- src/org/cacert/gigi/dbObjects/User.java | 17 +++-------------- src/org/cacert/gigi/util/CalendarUtil.java | 12 ++++++++++++ tests/org/cacert/gigi/TestCalendarUtil.java | 19 +++++++++++++++++++ 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/org/cacert/gigi/dbObjects/User.java b/src/org/cacert/gigi/dbObjects/User.java index d68b183f..99d44a7c 100644 --- a/src/org/cacert/gigi/dbObjects/User.java +++ b/src/org/cacert/gigi/dbObjects/User.java @@ -1,7 +1,6 @@ package org.cacert.gigi.dbObjects; import java.util.ArrayList; -import java.util.Calendar; import java.util.Collections; import java.util.HashSet; import java.util.LinkedList; @@ -14,6 +13,7 @@ import org.cacert.gigi.database.GigiPreparedStatement; import org.cacert.gigi.database.GigiResultSet; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.DateSelector; +import org.cacert.gigi.util.CalendarUtil; import org.cacert.gigi.util.DayDate; import org.cacert.gigi.util.Notary; import org.cacert.gigi.util.PasswordHash; @@ -132,7 +132,7 @@ public class User extends CertificateOwner { } public boolean canAssure() { - if ( !isOfAge(14)) { // PoJAM + if ( !CalendarUtil.isOfAge(dob, 14)) { // PoJAM return false; } if (getAssurancePoints() < 100) { @@ -194,7 +194,7 @@ public class User extends CertificateOwner { * @return the maximal points @ */ public int getMaxAssurePoints() { - if ( !isOfAge(18)) { + if ( !CalendarUtil.isOfAge(dob, 18)) { return 10; // PoJAM } @@ -220,17 +220,6 @@ public class User extends CertificateOwner { return points; } - public boolean isOfAge(int desiredAge) { - Calendar c = Calendar.getInstance(); - c.setTimeInMillis(dob.getTime()); - int year = c.get(Calendar.YEAR); - int month = c.get(Calendar.MONTH); - int day = c.get(Calendar.DAY_OF_MONTH); - c.set(year, month, day); - c.add(Calendar.YEAR, desiredAge); - return System.currentTimeMillis() >= c.getTime().getTime(); - } - public boolean isValidName(String name) { return getName().matches(name); } diff --git a/src/org/cacert/gigi/util/CalendarUtil.java b/src/org/cacert/gigi/util/CalendarUtil.java index 83002dc5..03fdf2fc 100644 --- a/src/org/cacert/gigi/util/CalendarUtil.java +++ b/src/org/cacert/gigi/util/CalendarUtil.java @@ -15,6 +15,18 @@ public class CalendarUtil { } + public static boolean isOfAge(DayDate dob, int age) { + Calendar c = Calendar.getInstance(); + c.setTimeInMillis(dob.getTime()); + int year = c.get(Calendar.YEAR); + int month = c.get(Calendar.MONTH); + int day = c.get(Calendar.DAY_OF_MONTH); + c.set(year, month, day); + c.add(Calendar.YEAR, age); + + return System.currentTimeMillis() >= c.getTime().getTime(); + } + public static DayDate getDateFromComponents(int year, int month, int day) { Calendar cal = Calendar.getInstance(); cal.setTimeZone(TimeZone.getTimeZone("UTC")); diff --git a/tests/org/cacert/gigi/TestCalendarUtil.java b/tests/org/cacert/gigi/TestCalendarUtil.java index 87da1b05..0ab6abb4 100644 --- a/tests/org/cacert/gigi/TestCalendarUtil.java +++ b/tests/org/cacert/gigi/TestCalendarUtil.java @@ -33,6 +33,25 @@ public class TestCalendarUtil { } + @Test + public void testIsOfAge() { + + Calendar now = Calendar.getInstance(); + int year = now.get(Calendar.YEAR); + int month = now.get(Calendar.MONTH) + 1; + int days = now.get(Calendar.DATE); + + DayDate dob = CalendarUtil.getDateFromComponents(year - 14, month, days); + + assertTrue(CalendarUtil.isOfAge(dob, 13)); + + assertTrue(CalendarUtil.isOfAge(dob, 14)); + + dob = CalendarUtil.getDateFromComponents(year - 14, month, days + 1); + assertFalse(CalendarUtil.isOfAge(dob, 14)); + + } + @Test public void testIsDateValid() { assertTrue(CalendarUtil.isDateValid(2016, 2, 28)); -- 2.39.2