package com.dbdeploy.scripts; import com.dbdeploy.exceptions.UnrecognisedFilenameException; import static org.junit.Assert.*; import org.junit.Test; public class FilenameParserTest { @Test public void canParseAnyFilenameThatStartsWithANumber() throws Exception { FilenameParser parser = new FilenameParser(); assertEquals(1L, parser.extractIdFromFilename("0001_a_filename.txt")); assertEquals(1L, parser.extractIdFromFilename("1_a_filename.txt")); assertEquals(1L, parser.extractIdFromFilename("1 a filename.txt")); assertEquals(1L, parser.extractIdFromFilename("1.txt")); assertEquals(123L, parser.extractIdFromFilename("00123_something.txt")); } @Test public void throwsWhenFilenameDoesNotStartWithANumber() throws Exception { FilenameParser parser = new FilenameParser(); try { parser.extractIdFromFilename("blah blah blah"); fail("expected exception"); } catch (UnrecognisedFilenameException e) { assertEquals("Could not extract a change script number from filename: blah blah blah", e.getMessage() ); } } }