package dk.daoas.daoadresseservice.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.sql.SQLException; import org.junit.BeforeClass; import org.junit.Test; import dk.daoas.daoadresseservice.AddressSearch; import dk.daoas.daoadresseservice.DaekningsType; import dk.daoas.daoadresseservice.admin.ServiceConfig; import dk.daoas.daoadresseservice.beans.SearchResult; public class AddressSearchTest { static AddressSearch search; static MockDatabaseLayer db; @BeforeClass public static void setupSearchStructure() throws SQLException { ServiceConfig conf = new ServiceConfig(); conf.useGoogle = false; conf.useOpenStreetMaps = false; db = new MockDatabaseLayer(); search = new AddressSearch(db, conf); search.buildSearchStructures(); } @Test public void testBasicLookup() { SearchResult res = search.search("8700", "Vestergade 1"); assertEquals(SearchResult.Status.STATUS_OK, res.status); assertEquals(DaekningsType.DAEKNING_DIREKTE, res.address.daekningsType); } /** * Ugyldigt postnr */ @Test public void testFailureIllegalPostal() { SearchResult res = search.search("asdf", "Vestergade 10"); assertEquals(SearchResult.Status.ERROR_UNKNOWN_POSTAL, res.status); } /** * Ukendt postnr */ @Test public void testFailurePostal() { SearchResult res = search.search("1234", "Vestergade 10"); assertEquals(SearchResult.Status.ERROR_UNKNOWN_POSTAL, res.status); } /** * Manglende husnr */ @Test public void testFailureMissingHousenumber() { SearchResult res = search.search("8700", "Vestergade"); assertEquals(SearchResult.Status.ERROR_MISSING_HOUSENUMBER, res.status); } /** * Adressen vi ukendtvej */ @Test public void testFailureUnkownStreetname() { SearchResult res = search.search("8700", "Nonsensgade 1"); assertEquals(SearchResult.Status.ERROR_UNKNOWN_STREETNAME, res.status); } /** * Levenshtein1 & 2 & 3 */ @Test public void testOkLevenshtein() { SearchResult res; res = search.search("8700", "Vstergade 1"); assertEquals(SearchResult.Status.STATUS_OK, res.status); assertEquals(DaekningsType.DAEKNING_DIREKTE, res.address.daekningsType); res = search.search("8700", "Vtergade 1"); assertEquals(SearchResult.Status.STATUS_OK, res.status); assertEquals(DaekningsType.DAEKNING_DIREKTE, res.address.daekningsType); res = search.search("8700", "Vergade 1"); assertEquals(SearchResult.Status.ERROR_UNKNOWN_STREETNAME, res.status); } /** * Adressen vi kender vejnavnet men ikke husnummeret */ @Test public void testFailureUnkownHousenumber() { SearchResult res = search.search("8700", "Vestergade 10"); assertEquals(SearchResult.Status.ERROR_UNKNOWN_ADDRESSPOINT, res.status); } /** * Adressen kendt men uden for dækning */ @Test public void testNotCovered() { SearchResult res = search.search("8800", "Enebærvej 2"); assertEquals(SearchResult.Status.STATUS_NOT_COVERED, res.status); } /** * Adressen kendt men markeret lukket */ @Test public void testClosed() { SearchResult res = search.search("8300", "Sønderbrogade 4"); assertEquals(SearchResult.Status.STATUS_NOT_COVERED, res.status); } }