package gov.nysenate.openleg.processor.hearing; import gov.nysenate.openleg.BaseTests; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.net.URISyntaxException; import java.util.List; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; public class PublicHearingAddressParserTest extends BaseTests { private PublicHearingAddressParser addressParser; @Before public void setup() { addressParser = new PublicHearingAddressParser(); } @Test public void basicAddressParses() throws IOException, URISyntaxException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "01-17-13 NYSenateHearing_Marcellino_Final.txt"); String expected = "Legislative & Executive Chamber\nNassau County Office Building\n1550 Franklin Avenue\nMineola, New York 11501"; String actual = addressParser.parse(pages.get(0)); assertThat(actual, is(expected)); // Line numbers aligned differently pages = PublicHearingTestHelper.getPagesFromFileName( "01-03-13 HurricaneSandy_NYS TaskForce Roundtable_Final.txt"); expected = "Freeport Recreation Center\n130 East Merrick Road\nFreeport, New York 11520"; actual = addressParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void multiWordCityParses() throws IOException, URISyntaxException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "01-25-12 Young_Roundtable_III_Final.txt"); String expected = "250 Broadway - 19th Floor\nNew York, New York 10007"; String actual = addressParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void extraSpacesParses() throws IOException, URISyntaxException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "02-04-13 NYSJudiciaryHearing_Bonacic FINAL.txt"); String expected = "New York State Capitol Building\n172 State Street, Room 124 CAP\nAlbany, New York 12247"; String actual = addressParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void zipPlusFiveParses() throws IOException, URISyntaxException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "09-17-13 Carlucci_Mental Health_Ogdensburg_FINAL.txt"); String expected = "Ogdensburg City Hall\nCity Council Chambers\n330 Ford Street\nOgdensburg, New York 13669-1626"; String actual = addressParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void noZipCodeParses() throws IOException, URISyntaxException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "09-12-13 NYSsenate_DeFrancisco_Buffalo_FINAL.txt"); String expected = "Buffalo City Hall\nCommon Council Chambers, 13th Floor\n65 Niagara Square\nBuffalo, New York"; String actual = addressParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void parsesWithoutStateZipInfo() throws IOException, URISyntaxException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "06-04-14 NYsenate Heroin-Opioid Addiction Special Task Force_Seneca Nation_FINAL.txt"); String expected = "Seneca Nation of Indians'\nCattaraugus County Reservation"; String actual = addressParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void stateAbbreviationParses() throws IOException, URISyntaxException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "10-10-13 NYsenate_Fuschillo_MTA_FINAL.txt"); String expected = "Senate Majority Office\n250 Broadway, Suite 2034\nNew York, NY 10007-2375"; String actual = addressParser.parse(pages.get(0)); assertThat(actual, is(expected)); } }