/** * 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.Test; import us.mn.state.health.lims.common.provider.validation.IAccessionNumberValidator; import us.mn.state.health.lims.common.provider.validation.YearNumAccessionValidator; import us.mn.state.health.lims.common.util.DateUtil; public class AccessionNumberYearValidatorTest { private IAccessionNumberValidator validator = new YearNumAccessionValidator(6, null); @Test public void siteYearAccessionValid(){ String validNumber = getTwoDigitCurrentYear() + "000001"; assertTrue(IAccessionNumberValidator.ValidationResults.SUCCESS == validator.validFormat(validNumber, true)); } @Test public void siteYearAccessionYearNotValid(){ String validNumber = "99" + "000001"; assertTrue(IAccessionNumberValidator.ValidationResults.YEAR_FAIL == validator.validFormat(validNumber, true)); } @Test public void siteYearAccessionYearNotValidNotChecked(){ String validNumber = "99" + "000001"; assertTrue(IAccessionNumberValidator.ValidationResults.SUCCESS == validator.validFormat(validNumber, false)); } @Test public void siteYearAccessionLengthNotValid(){ String validNumber = getTwoDigitCurrentYear() + "0001"; assertTrue(IAccessionNumberValidator.ValidationResults.LENGTH_FAIL == validator.validFormat(validNumber, true)); } @Test public void siteYearAccessionFormatNotValid(){ String validNumber = getTwoDigitCurrentYear() + "0ab001"; assertTrue(IAccessionNumberValidator.ValidationResults.FORMAT_FAIL == validator.validFormat(validNumber, true)); } @Test public void firstAccessionNumber(){ String expectedNumber = getTwoDigitCurrentYear() + "000001"; assertEquals( expectedNumber, validator.createFirstAccessionNumber(null)); } @Test public void incrementAccessionNumber(){ String orgNumber = getTwoDigitCurrentYear() + "011111"; String nextNumber = getTwoDigitCurrentYear() + "011112"; assertEquals(nextNumber, validator.incrementAccessionNumber(orgNumber)); } @Test public void incrementAccessionNumberRollOverYear(){ String orgNumber = "08011111"; String nextNumber = getTwoDigitCurrentYear() + "000001"; assertEquals(nextNumber, validator.incrementAccessionNumber(orgNumber)); } @Test (expected=IllegalArgumentException.class) public void incrementAccessionNumberNoMoreNumbers(){ String orgNumber = getTwoDigitCurrentYear() + "999999"; validator.incrementAccessionNumber(orgNumber); } private String getTwoDigitCurrentYear(){ return DateUtil.getTwoDigitYear(); } @Test public void needProgram() { boolean FALSE = false; assertEquals(FALSE, validator.needProgramCode()); } }