package net.codjo.control.server.util; import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; import net.codjo.control.common.ControlException; import net.codjo.control.common.i18n.InternationalizationFixture; import net.codjo.mad.server.handler.HandlerException; import org.junit.After; import org.junit.Before; import org.junit.Test; import static java.util.Calendar.DECEMBER; import static java.util.Calendar.JANUARY; import static java.util.Calendar.MARCH; import static java.util.Calendar.getInstance; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; /** * */ public class ControlUtilsTest { private InternationalizationFixture i18nFixture = new InternationalizationFixture(); @Before public void setUp() throws Exception { i18nFixture.doSetUp(); } @After public void tearDown() throws Exception { i18nFixture.doTearDown(); } @Test public void checkFieldNotNullOK() throws Exception { ControlUtils.checkFieldNotNull(new Object(), 1, "object"); } @Test public void checkFieldNotNullKO() { try { ControlUtils.checkFieldNotNull(null, 1, "object"); fail(); } catch (ControlException e) { assertEquals("Erreur 1 - Le champ 'object' est obligatoire.", e.getMessage()); } } @Test public void checkFieldNotBlankOK() throws ControlException { ControlUtils.checkFieldNotBlank(" 12 \t", 1, "object"); } @Test public void checkFieldNotBlankKO() { try { ControlUtils.checkFieldNotBlank(" ", 1, "object"); fail(); } catch (ControlException e) { assertEquals("Erreur 1 - Le champ 'object' est obligatoire.", e.getMessage()); } } @Test public void checkFieldStrictlyGreaterThanThresholdOK() throws ControlException { ControlUtils.checkFieldStrictlyGreaterThanThreshold(BigDecimal.valueOf(12.0), 10.0, 1, "my error message"); ControlUtils.checkFieldStrictlyGreaterThanThreshold(null, 10.0, 1, "my error message"); } @Test public void checkFieldStrictlyGreaterThanThresholdKO() { try { ControlUtils.checkFieldStrictlyGreaterThanThreshold(BigDecimal.valueOf(12.0), 26.0, 1, "my error message"); fail(); } catch (ControlException e) { assertEquals("Erreur 1 - my error message", e.getMessage()); } } @Test public void checkFieldStrictlyInsideBoundsOK() throws ControlException { ControlUtils.checkFieldStrictlyInsideBounds(BigDecimal.valueOf(12.0), 10.0, 200.0, 1, "my error message"); ControlUtils.checkFieldStrictlyInsideBounds(null, 10.0, 200.0, 1, "my error message"); } @Test public void checkFieldStrictlyInsideBoundsKOTooSmall() { try { ControlUtils.checkFieldStrictlyInsideBounds(BigDecimal.valueOf(12.0), 26.0, 200.0, 1, "my error message"); fail(); } catch (ControlException e) { assertEquals("Erreur 1 - my error message", e.getMessage()); } } @Test public void checkFieldStrictlyInsideBoundsKOTooBig() { try { ControlUtils.checkFieldStrictlyInsideBounds(BigDecimal.valueOf(300.0), 26.0, 200.0, 1, "my error message"); fail(); } catch (ControlException e) { assertEquals("Erreur 1 - my error message", e.getMessage()); } } @Test public void checkFirstValueLowerThanSecondValueOK() throws ControlException { ControlUtils.checkFirstValueLowerThanSecondValue(BigDecimal.valueOf(200.0), BigDecimal.valueOf(200.0), 1, "my error message"); ControlUtils.checkFirstValueLowerThanSecondValue(BigDecimal.valueOf(200.0), null, 1, "my error message"); ControlUtils.checkFirstValueLowerThanSecondValue(null, BigDecimal.valueOf(200.0), 1, "my error message"); ControlUtils.checkFirstValueLowerThanSecondValue(BigDecimal.valueOf(200.0), BigDecimal.valueOf(300.0), 1, "my error message"); } @Test public void checkFirstValueLowerThanSecondValueKO() { try { ControlUtils.checkFirstValueLowerThanSecondValue(BigDecimal.valueOf(200.0), BigDecimal.valueOf(100.0), 1, "my error message"); fail(); } catch (ControlException e) { assertEquals("Erreur 1 - my error message", e.getMessage()); } } @Test public void checkFirstDateNotNullIfSecondDateNotNullOK() throws ControlException { Calendar calendar = getInstance(); calendar.set(2000, JANUARY, 1); Date firstDate = calendar.getTime(); calendar.set(2002, MARCH, 5); Date secondDate = calendar.getTime(); ControlUtils.checkFirstDateNotNullIfSecondDateNotNull(firstDate, secondDate, "<premi�re date>", "<seconde date>", 1); ControlUtils.checkFirstDateNotNullIfSecondDateNotNull(firstDate, null, "<premi�re date>", "<seconde date>", 1); ControlUtils.checkFirstDateNotNullIfSecondDateNotNull(null, null, "<premi�re date>", "<seconde date>", 1); } @Test public void checkFirstDateNotNullIfSecondDateNotNullKO() { Calendar calendar = getInstance(); calendar.set(2002, MARCH, 5); Date secondDate = calendar.getTime(); try { ControlUtils.checkFirstDateNotNullIfSecondDateNotNull(null, secondDate, "<premi�re date>", "<seconde date>", 1); fail(); } catch (ControlException e) { assertEquals("Erreur 1 - La <seconde date> ne peut �tre remplie si la <premi�re date> est nulle.", e.getMessage()); } } @Test public void checkSecondDateAfterFirstDateOK() throws ControlException { Calendar calendar = getInstance(); calendar.set(2000, JANUARY, 1); Date firstDate = calendar.getTime(); calendar.set(2002, MARCH, 5); Date secondDate = calendar.getTime(); ControlUtils.checkSecondDateAfterFirstDate(firstDate, secondDate, "<premi�re date>", "<seconde date>", 1); ControlUtils.checkSecondDateAfterFirstDate(firstDate, null, "<premi�re date>", "<seconde date>", 1); ControlUtils.checkSecondDateAfterFirstDate(null, secondDate, "<premi�re date>", "<seconde date>", 1); ControlUtils.checkSecondDateAfterFirstDate(null, null, "<premi�re date>", "<seconde date>", 1); } @Test public void checkSecondDateAfterFirstDateKO() { Calendar calendar = getInstance(); calendar.set(2008, JANUARY, 1); Date firstDate = calendar.getTime(); calendar.set(2002, MARCH, 5); Date secondDate = calendar.getTime(); try { ControlUtils.checkSecondDateAfterFirstDate(firstDate, secondDate, "<premi�re date>", "<seconde date>", 1); fail(); } catch (ControlException e) { assertEquals("Erreur 1 - Veuillez saisir une <seconde date> sup�rieure � la <premi�re date>.", e.getMessage()); } } @Test public void checkDateInsideBoundsOK() throws HandlerException { Calendar calendar = getInstance(); calendar.set(2000, JANUARY, 1); Date beginDate = calendar.getTime(); calendar.set(2001, DECEMBER, 31); Date shiftDate = calendar.getTime(); calendar.set(2002, JANUARY, 1); Date endDate = calendar.getTime(); ControlUtils.checkDateInsideBounds(beginDate, shiftDate, endDate); } @Test public void checkDateInsideBoundsKOShiftDateTooLate() { Calendar calendar = getInstance(); calendar.set(2000, JANUARY, 1); Date beginDate = calendar.getTime(); calendar.set(2002, JANUARY, 1); Date shiftDate = calendar.getTime(); calendar.set(2002, JANUARY, 1); Date endDate = calendar.getTime(); try { ControlUtils.checkDateInsideBounds(beginDate, shiftDate, endDate); fail(); } catch (HandlerException exception) { assertEquals( "La date de recalage doit �tre comprise entre le 02/01/2000 et le 31/12/2001.", exception.getMessage()); } } @Test public void checkDateInsideBoundsKOShiftDateTooEarly() { Calendar calendar = getInstance(); calendar.set(2000, JANUARY, 1); Date beginDate = calendar.getTime(); calendar.set(1999, DECEMBER, 31); Date shiftDate = calendar.getTime(); calendar.set(2002, JANUARY, 1); Date endDate = calendar.getTime(); try { ControlUtils.checkDateInsideBounds(beginDate, shiftDate, endDate); fail(); } catch (HandlerException exception) { assertEquals( "La date de recalage doit �tre comprise entre le 02/01/2000 et le 31/12/2001.", exception.getMessage()); } } @Test public void checkDateInsideBoundsKOShiftDateTooLateNoBeginDate() { Calendar calendar = getInstance(); calendar.set(2002, JANUARY, 1); Date shiftDate = calendar.getTime(); calendar.set(2002, JANUARY, 1); Date endDate = calendar.getTime(); try { ControlUtils.checkDateInsideBounds(null, shiftDate, endDate); fail(); } catch (HandlerException exception) { assertEquals( "La date de recalage doit �tre inf�rieure ou �gale au 31/12/2001.", exception.getMessage()); } } }