/** * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations under * the License. * * The Original Code is OpenELIS code. * * Copyright (C) The Minnesota Department of Health. All Rights Reserved. * * Contributor(s): CIRG, University of Washington, Seattle WA. */ package us.mn.state.health.lims.common.provider.validation; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import us.mn.state.health.lims.common.util.ConfigurationProperties; import us.mn.state.health.lims.common.util.DateUtil; import us.mn.state.health.lims.common.util.ConfigurationProperties.Property; public class AccessionNumberSiteYearValidatorTest { private String siteCode = "51100"; private IAccessionNumberValidator siteYearValidator; @Before public void setUp() throws Exception { siteYearValidator = new SiteYearAccessionValidator(); ConfigurationProperties.getInstance().setPropertyValue(Property.ACCESSION_NUMBER_PREFIX, siteCode); } @Test public void siteYearAccessionValid(){ String validNumber = siteCode + getTwoDigitCurrentYear() + "000001"; assertTrue(IAccessionNumberValidator.ValidationResults.SUCCESS == siteYearValidator.validFormat(validNumber, true)); } @Test public void siteYearAccessionSiteNotValid(){ String validNumber = "41100" + getTwoDigitCurrentYear() + "000001"; assertTrue(IAccessionNumberValidator.ValidationResults.SITE_FAIL == siteYearValidator.validFormat(validNumber, true)); } @Test public void siteYearAccessionYearNotValid(){ String validNumber = siteCode + "99" + "000001"; assertTrue(IAccessionNumberValidator.ValidationResults.YEAR_FAIL == siteYearValidator.validFormat(validNumber, true)); } @Test public void siteYearAccessionYearNotValidNotChecked(){ String validNumber = siteCode + "99" + "000001"; assertTrue(IAccessionNumberValidator.ValidationResults.SUCCESS == siteYearValidator.validFormat(validNumber, false)); } @Test public void siteYearAccessionLengthNotValid(){ String validNumber = siteCode + getTwoDigitCurrentYear() + "0001"; assertTrue(IAccessionNumberValidator.ValidationResults.LENGTH_FAIL == siteYearValidator.validFormat(validNumber, true)); } @Test public void siteYearAccessionFormatNotValid(){ String validNumber = siteCode + getTwoDigitCurrentYear() + "0ab001"; assertTrue(IAccessionNumberValidator.ValidationResults.FORMAT_FAIL == siteYearValidator.validFormat(validNumber, true)); } @Test public void firstAccessionNumber(){ String expectedNumber = siteCode + getTwoDigitCurrentYear() + "000001"; assertEquals( expectedNumber, siteYearValidator.createFirstAccessionNumber(null)); } @Test public void incrementAccessionNumber(){ String orgNumber = siteCode + getTwoDigitCurrentYear() + "011111"; String nextNumber = siteCode + getTwoDigitCurrentYear() + "011112"; assertEquals(nextNumber, siteYearValidator.incrementAccessionNumber(orgNumber)); } @Test public void incrementAccessionNumberRollOverYear(){ String orgNumber = siteCode + "08011111"; String nextNumber = siteCode + getTwoDigitCurrentYear() + "000001"; assertEquals(nextNumber, siteYearValidator.incrementAccessionNumber(orgNumber)); } @Test (expected=IllegalArgumentException.class) public void incrementAccessionNumberNoMoreNumbers(){ String orgNumber = "31100" + getTwoDigitCurrentYear() + "999999"; siteYearValidator.incrementAccessionNumber(orgNumber); } private String getTwoDigitCurrentYear(){ return DateUtil.getTwoDigitYear(); } @Test public void needProgram() { boolean FALSE = false; assertEquals(FALSE, siteYearValidator.needProgramCode()); } }