tests for anniversary checkers

This commit is contained in:
Kai Boernert committed 2017-08-28 11:53:31 +02:00
1 parent 10fd7d14b6
commit 93044d1907
2 files changed
+271

No files matched your search

@@ -0,0 +1,122 @@
package com.sap.sailing.server.anniversary;
import org.junit.Test;
import com.sap.sailing.domain.common.dto.AnniversaryType;
import com.sap.sailing.server.anniversary.PeriodicRaceListAnniversaryDeterminator.AnniversaryChecker;
import com.sap.sailing.server.anniversary.checker.QuarterChecker;
import junit.framework.Assert;
public class AnniversaryQuarterCheckerTest {
@Test
public void at9999() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(9999);
Assert.assertTrue(checker.getAnniversaries().isEmpty());
Assert.assertEquals(10000, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.QUARTER, checker.getType());
}
@Test
public void at10000() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(10000);
System.out.println(checker.getAnniversaries());
Assert.assertTrue(checker.getAnniversaries().contains(10000));
Assert.assertEquals(25000, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.QUARTER, checker.getType());
}
@Test
public void after10001() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(10001);
Assert.assertTrue(checker.getAnniversaries().contains(10000));
Assert.assertEquals(25000, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.QUARTER, checker.getType());
}
@Test
public void after11111() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(10001);
Assert.assertTrue(checker.getAnniversaries().contains(10000));
Assert.assertEquals(25000, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.QUARTER, checker.getType());
}
@Test
public void after24999() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(24999);
Assert.assertTrue(checker.getAnniversaries().contains(10000));
Assert.assertEquals(25000, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.QUARTER, checker.getType());
}
@Test
public void after25000() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(25000);
Assert.assertTrue(checker.getAnniversaries().contains(10000));
Assert.assertTrue(checker.getAnniversaries().contains(25000));
Assert.assertEquals(50000, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.QUARTER, checker.getType());
}
@Test
public void after25001() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(25001);
Assert.assertTrue(checker.getAnniversaries().contains(10000));
Assert.assertTrue(checker.getAnniversaries().contains(25000));
Assert.assertEquals(50000, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.QUARTER, checker.getType());
}
@Test
public void afterMaxValidRaceCount() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(999999999);
Assert.assertTrue(checker.getAnniversaries().contains(10000));
Assert.assertTrue(checker.getAnniversaries().contains(25000));
Assert.assertTrue(checker.getAnniversaries().contains(50000));
Assert.assertTrue(checker.getAnniversaries().contains(75000));
Assert.assertTrue(checker.getAnniversaries().contains(100000));
Assert.assertTrue(checker.getAnniversaries().contains(250000));
Assert.assertTrue(checker.getAnniversaries().contains(500000));
Assert.assertTrue(checker.getAnniversaries().contains(750000));
Assert.assertTrue(checker.getAnniversaries().contains(1000000));
Assert.assertTrue(checker.getAnniversaries().contains(2500000));
Assert.assertTrue(checker.getAnniversaries().contains(5000000));
Assert.assertTrue(checker.getAnniversaries().contains(7500000));
Assert.assertTrue(checker.getAnniversaries().contains(10000000));
Assert.assertTrue(checker.getAnniversaries().contains(25000000));
Assert.assertTrue(checker.getAnniversaries().contains(50000000));
Assert.assertTrue(checker.getAnniversaries().contains(75000000));
Assert.assertTrue(checker.getAnniversaries().contains(100000000));
Assert.assertTrue(checker.getAnniversaries().contains(250000000));
Assert.assertTrue(checker.getAnniversaries().contains(500000000));
Assert.assertTrue(checker.getAnniversaries().contains(750000000));
Assert.assertEquals(1000000000, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.QUARTER, checker.getType());
}
/**
* Tests that no runaway loop can happen, if the anniversary to check overflows internally. The used 1000000000 is
* the first number, that will lead to a overflow, after *10 multiplier is applied, testing for the next anniversary
*/
@Test(expected = IllegalStateException.class)
public void ensureInCaseOfBugNoFreeze() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(1000000000);
}
@Test(expected = IllegalStateException.class)
public void illegalRaceCountTest() {
AnniversaryChecker checker = new QuarterChecker();
checker.update(-1);
}
}
@@ -0,0 +1,149 @@
package com.sap.sailing.server.anniversary;
import org.junit.Test;
import com.sap.sailing.domain.common.dto.AnniversaryType;
import com.sap.sailing.server.anniversary.PeriodicRaceListAnniversaryDeterminator.AnniversaryChecker;
import com.sap.sailing.server.anniversary.checker.SameDigitChecker;
import junit.framework.Assert;
public class AnniversarySameDigitCheckerTest {
@Test
public void at9999() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(9999);
Assert.assertTrue(checker.getAnniversaries().isEmpty());
Assert.assertEquals(11111, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.REPEATED_DIGIT, checker.getType());
}
@Test
public void at10000() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(10000);
System.out.println(checker.getAnniversaries());
Assert.assertEquals(11111, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.REPEATED_DIGIT, checker.getType());
}
@Test
public void at11111() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(11111);
System.out.println(checker.getAnniversaries());
Assert.assertTrue(checker.getAnniversaries().contains(11111));
Assert.assertEquals(22222, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.REPEATED_DIGIT, checker.getType());
}
//
@Test
public void after11112() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(11112);
Assert.assertTrue(checker.getAnniversaries().contains(11111));
Assert.assertEquals(22222, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.REPEATED_DIGIT, checker.getType());
}
@Test
public void at88888() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(88888);
Assert.assertTrue(checker.getAnniversaries().contains(11111));
Assert.assertTrue(checker.getAnniversaries().contains(22222));
Assert.assertTrue(checker.getAnniversaries().contains(33333));
Assert.assertTrue(checker.getAnniversaries().contains(44444));
Assert.assertTrue(checker.getAnniversaries().contains(55555));
Assert.assertTrue(checker.getAnniversaries().contains(66666));
Assert.assertTrue(checker.getAnniversaries().contains(77777));
Assert.assertTrue(checker.getAnniversaries().contains(88888));
Assert.assertEquals(111111, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.REPEATED_DIGIT, checker.getType());
}
@Test
public void after22221() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(22221);
Assert.assertTrue(checker.getAnniversaries().contains(11111));
Assert.assertEquals(22222, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.REPEATED_DIGIT, checker.getType());
}
@Test
public void after22222() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(22222);
Assert.assertTrue(checker.getAnniversaries().contains(11111));
Assert.assertTrue(checker.getAnniversaries().contains(22222));
Assert.assertEquals(33333, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.REPEATED_DIGIT, checker.getType());
}
@Test
public void afterMaxValidRaceCount() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(999999999);
Assert.assertTrue(checker.getAnniversaries().contains(11111));
Assert.assertTrue(checker.getAnniversaries().contains(22222));
Assert.assertTrue(checker.getAnniversaries().contains(33333));
Assert.assertTrue(checker.getAnniversaries().contains(44444));
Assert.assertTrue(checker.getAnniversaries().contains(55555));
Assert.assertTrue(checker.getAnniversaries().contains(66666));
Assert.assertTrue(checker.getAnniversaries().contains(77777));
Assert.assertTrue(checker.getAnniversaries().contains(88888));
Assert.assertTrue(checker.getAnniversaries().contains(111111));
Assert.assertTrue(checker.getAnniversaries().contains(222222));
Assert.assertTrue(checker.getAnniversaries().contains(333333));
Assert.assertTrue(checker.getAnniversaries().contains(444444));
Assert.assertTrue(checker.getAnniversaries().contains(555555));
Assert.assertTrue(checker.getAnniversaries().contains(666666));
Assert.assertTrue(checker.getAnniversaries().contains(777777));
Assert.assertTrue(checker.getAnniversaries().contains(888888));
Assert.assertTrue(checker.getAnniversaries().contains(1111111));
Assert.assertTrue(checker.getAnniversaries().contains(2222222));
Assert.assertTrue(checker.getAnniversaries().contains(3333333));
Assert.assertTrue(checker.getAnniversaries().contains(4444444));
Assert.assertTrue(checker.getAnniversaries().contains(5555555));
Assert.assertTrue(checker.getAnniversaries().contains(6666666));
Assert.assertTrue(checker.getAnniversaries().contains(7777777));
Assert.assertTrue(checker.getAnniversaries().contains(8888888));
Assert.assertTrue(checker.getAnniversaries().contains(11111111));
Assert.assertTrue(checker.getAnniversaries().contains(22222222));
Assert.assertTrue(checker.getAnniversaries().contains(33333333));
Assert.assertTrue(checker.getAnniversaries().contains(44444444));
Assert.assertTrue(checker.getAnniversaries().contains(55555555));
Assert.assertTrue(checker.getAnniversaries().contains(66666666));
Assert.assertTrue(checker.getAnniversaries().contains(77777777));
Assert.assertTrue(checker.getAnniversaries().contains(88888888));
Assert.assertTrue(checker.getAnniversaries().contains(111111111));
Assert.assertTrue(checker.getAnniversaries().contains(222222222));
Assert.assertTrue(checker.getAnniversaries().contains(333333333));
Assert.assertTrue(checker.getAnniversaries().contains(444444444));
Assert.assertTrue(checker.getAnniversaries().contains(555555555));
Assert.assertTrue(checker.getAnniversaries().contains(666666666));
Assert.assertTrue(checker.getAnniversaries().contains(777777777));
Assert.assertTrue(checker.getAnniversaries().contains(888888888));
Assert.assertEquals(1111111111, checker.getNextAnniversary().intValue());
Assert.assertEquals(AnniversaryType.REPEATED_DIGIT, checker.getType());
}
/**
* Tests that no runaway loop can happen, if the anniversary to check overflows internally. It is expected that the
* resulting String cannot be converted to a number anymore if it exceeds IntegerRange.
*/
@Test(expected = NumberFormatException.class)
public void ensureInCaseOfBugNoFreeze() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(Integer.MAX_VALUE);
}
@Test(expected = IllegalStateException.class)
public void illegalRaceCountTest() {
AnniversaryChecker checker = new SameDigitChecker();
checker.update(-1);
}
}