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.text.ParseException; import java.util.List; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; public class PublicHearingTitleParserTest extends BaseTests { private PublicHearingTitleParser titleParser; @Before public void setup() { titleParser = new PublicHearingTitleParser(); } @Test public void basicTitleParses() throws IOException, URISyntaxException, ParseException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "03-12-14 Roundtable on the Compassionate Care Act_Savino_FINAL.txt"); String expected = "ROUNDTABLE DISCUSSION ON THE COMPASSIONATE CARE ACT"; String actual = titleParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void forumTownHallTitleParses() throws IOException, URISyntaxException, ParseException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "02-09-12 ChildCareHearing_Final.txt"); String expected = "FORUM/TOWN HALL: HUMAN SERVICES FORUM ON THE CURRENT AND FUTURE " + "ISSUES AND CONCERNS OF HUMAN SERVICES ADMINISTRATORS, ADVOCATES AND CLIENTS"; String actual = titleParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void newYorkStateForumTownHallTitleParses() throws IOException, URISyntaxException, ParseException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "05-18-11 ValeskyAgingCommitteeRoundtableFINAL.txt"); String expected = "NEW YORK STATE FORUM/TOWN HALL ROUNDTABLE ON THE SAGE COMMISSION'S " + "PROPOSAL TO MERGE THE NYS OFFICE FOR THE AGING WITH THE DEPARTMENT OF HEALTH"; String actual = titleParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void senateHearingTitleParses() throws IOException, URISyntaxException, ParseException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "05-23-11 NY Senate Flanagan Education Hearing FINAL_AMENDED COVER SHEET ONLY.txt"); String expected = "A NEW YORK STATE SENATE HEARING " + "DUE PROCESS TEACHER DISCIPLINE WITHOUT DELAY: " + "REFORMING SECTION 3020-A OF THE EDUCATION LAW " + "TO MEET THE NEEDS OF THE 21st CENTURY"; String actual = titleParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void titleFoundIfCommitteeMissing() throws IOException, URISyntaxException, ParseException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "01-03-13 HurricaneSandy_NYS TaskForce Roundtable_Final.txt"); String expected = "ROUNDTABLE DISCUSSION HELD BY THE NEW YORK STATE SENATE " + "BIPARTISAN TASK FORCE FOR \"HURRICANE SANDY\" RECOVERY"; String actual = titleParser.parse(pages.get(0)); assertThat(actual, is(expected)); } @Test public void conferenceTitleParses() throws IOException, URISyntaxException, ParseException { List<List<String>> pages = PublicHearingTestHelper.getPagesFromFileName( "02-28-13 2013 RevenueConsensusConference_Final.txt"); String expected = "NEW YORK STATE 2013 ECONOMIC AND REVENUE " + "CONSENSUS FORECASTING CONFERENCE"; String actual = titleParser.parse(pages.get(0)); assertThat(actual, is(expected)); } }