Changeset 15978 in josm for trunk/test/unit


Ignore:
Timestamp:
2020-03-01T21:33:56+01:00 (5 years ago)
Author:
simon04
Message:

fix #18140 - Switch to OpeningHoursParser

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/data/validation/tests/OpeningHourTestTest.java

    r15815 r15978  
    66import static org.hamcrest.CoreMatchers.not;
    77import static org.junit.Assert.assertEquals;
    8 import static org.junit.Assert.assertFalse;
    98import static org.junit.Assert.assertThat;
    109import static org.junit.Assert.assertTrue;
     
    1413import java.util.LinkedHashSet;
    1514import java.util.List;
     15import java.util.Locale;
    1616import java.util.Set;
    1717
     
    6666        assertThat(openingHourTest.checkOpeningHourSyntax(key, "09:00-21:00"), isEmpty());
    6767        assertThat(openingHourTest.checkOpeningHourSyntax(key, "Su-Th sunset-24:00,04:00-sunrise; Fr-Sa sunset-sunrise"), isEmpty());
    68         assertThat(openingHourTest.checkOpeningHourSyntax(key, "Su-Th sunset-24:00, 04:00-sunrise; Fr-Sa sunset-sunrise"), hasSize(1));
    69         assertEquals(Severity.OTHER, openingHourTest.checkOpeningHourSyntax(
    70                 key, "Su-Th sunset-24:00, 04:00-sunrise; Fr-Sa sunset-sunrise").get(0).getSeverity());
    71         assertEquals("Su-Th sunset-24:00,04:00-sunrise; Fr-Sa sunset-sunrise", openingHourTest.checkOpeningHourSyntax(
    72                 key, "Su-Th sunset-24:00, 04:00-sunrise; Fr-Sa sunset-sunrise").get(0).getPrettifiedValue());
    7368    }
    7469
     
    7873    @Test
    7974    public void testI18n() {
    80         assertTrue(openingHourTest.checkOpeningHourSyntax("opening_hours", ".", null, false, "de")
    81                 .get(0).toString().contains("Unerwartetes Zeichen"));
    82         assertFalse(openingHourTest.checkOpeningHourSyntax("opening_hours", ".", null, false, "en")
    83                 .get(0).toString().contains("Unerwartetes Zeichen"));
     75        final String key = "opening_hours";
     76        String value = ".";
     77        assertEquals("Vorgefunden wurde:  \".\" \". \" in Zeile 0, Zeichen 0\nErwartet wurde: <EOF> => null",
     78                openingHourTest.checkOpeningHourSyntax(key, value, false, Locale.GERMAN).get(0).toString());
     79        assertEquals("Encountered:  \".\" \". \" at line 0, column 0\nWas expecting: <EOF> => null",
     80                openingHourTest.checkOpeningHourSyntax(key, value, false, Locale.ENGLISH).get(0).toString());
     81        value = "Mon-Thu 12-18";
     82        assertEquals("Wochentag mit 3 Buchstaben in Zeile 1, Zeichen 4 => Mo-Th 12:00-18:00",
     83                openingHourTest.checkOpeningHourSyntax(key, value, false, Locale.GERMAN).get(0).toString());
     84        assertEquals("Three character weekday at line 1, column 4 => Mo-Th 12:00-18:00",
     85                openingHourTest.checkOpeningHourSyntax(key, value, false, Locale.ENGLISH).get(0).toString());
    8486    }
    8587
     
    9193        final String key = "opening_hours";
    9294        final List<OpeningHourTest.OpeningHoursTestError> errors = openingHourTest.checkOpeningHourSyntax(key, "Mo-Tue");
    93         assertThat(errors, hasSize(2));
    94         assertEquals(key + " - Mo-Tue <--- (Please use the English abbreviation \"Tu\" for \"tue\".)", errors.get(0).getMessage());
     95        assertThat(errors, hasSize(1));
     96        assertEquals("Mo-Tu", errors.get(0).getPrettifiedValue());
     97        assertEquals("Three character weekday at line 1, column 6", errors.get(0).getMessage());
    9598        assertEquals(Severity.WARNING, errors.get(0).getSeverity());
    96         assertEquals(key +
    97                 " - Mo-Tue <--- (This rule is not very explicit because there is no time selector being used."+
    98                 " A time selector is the part specifying hours when the object is opened, for example \"10:00-19:00\"."+
    99                 " Please add a time selector to this rule or use a comment to make it more explicit.)", errors.get(1).getMessage());
    100         assertEquals(Severity.WARNING, errors.get(1).getSeverity());
    10199    }
    102100
     
    108106        final String key = "opening_hours";
    109107        final List<OpeningHourTest.OpeningHoursTestError> errors = openingHourTest.checkOpeningHourSyntax(key, "Sa-Su 10.00-20.00");
    110         assertThat(errors, hasSize(2));
    111         assertEquals(key + " - Sa-Su 10. <--- (Please use \":\" as hour/minute-separator)", errors.get(0).getMessage());
     108        assertThat(errors, hasSize(1));
     109        assertEquals("Sa-Su 10:00-20:00", errors.get(0).getPrettifiedValue());
     110        assertEquals("Invalid minutes at line 1, column 12", errors.get(0).getMessage());
    112111        assertEquals(Severity.WARNING, errors.get(0).getSeverity());
    113         assertEquals("Sa-Su 10:00-20:00", errors.get(0).getPrettifiedValue());
    114         assertEquals(key + " - Sa-Su 10.00-20. <--- (Please use \":\" as hour/minute-separator)", errors.get(1).getMessage());
    115         assertEquals(Severity.WARNING, errors.get(1).getSeverity());
    116112    }
    117113
     
    123119        assertThat(openingHourTest.checkOpeningHourSyntax(null, null), isEmpty());
    124120        assertThat(openingHourTest.checkOpeningHourSyntax(null, ""), isEmpty());
    125         assertEquals("opening_hours - The value contains nothing meaningful which can be parsed.",
     121        assertEquals("opening_hours value can be prettified",
    126122                openingHourTest.checkOpeningHourSyntax("opening_hours", " ").get(0).getMessage());
    127         assertEquals("null - The optional_conf_parm[\"tag_key\"] parameter is of unknown type. Given object, expected string.",
     123        assertEquals("null value can be prettified",
    128124                openingHourTest.checkOpeningHourSyntax(null, " ").get(0).getMessage());
    129125    }
     
    136132        final String key = "opening_hours";
    137133        assertThat(openingHourTest.checkOpeningHourSyntax(key, "badtext"), hasSize(1));
    138         assertEquals(key + " - ba <--- (Unexpected token: \"b\" Invalid/unsupported syntax.)",
    139                 openingHourTest.checkOpeningHourSyntax(key, "badtext").get(0).getMessage());
     134        assertEquals("Encountered:  <UNEXPECTED_CHAR> \"b \" at line 0, column 0\nWas expecting: <EOF>",
     135                openingHourTest.checkOpeningHourSyntax(key, "badtext").get(0).getMessage().trim());
    140136        assertThat(openingHourTest.checkOpeningHourSyntax(key, "5.00 p.m-11.00 p.m"), hasSize(1));
    141         assertEquals(key + " - 5.00 p <--- (hyphen (-) or open end (+) in time range expected. "
    142                 + "For working with points in time, the mode for opening_hours.js has to be altered. Maybe wrong tag?)",
     137        assertEquals("Encountered:  <UNEXPECTED_CHAR> \"p \" at line 1, column 2\nWas expecting: <EOF>",
    143138                openingHourTest.checkOpeningHourSyntax(key, "5.00 p.m-11.00 p.m").get(0).getMessage());
    144139    }
     
    159154    public void testCheckOpeningHourSyntax7() {
    160155        final String key = "opening_hours";
     156        assertThat(openingHourTest.checkOpeningHourSyntax(key, "9:00-18:00", true, Locale.getDefault()), isEmpty());
    161157        assertThat(openingHourTest.checkOpeningHourSyntax(key, "9:00-18:00"), hasSize(1));
    162158        assertEquals(Severity.OTHER, openingHourTest.checkOpeningHourSyntax(key, "9:00-18:00").get(0).getSeverity());
     
    171167        final String key = "opening_hours";
    172168        assertEquals(Severity.WARNING, openingHourTest.checkOpeningHourSyntax(key, "Mo,Tu 04-17").get(0).getSeverity());
    173         assertEquals(key + " - Mo,Tu 04-17 <--- (Time range without minutes specified. "
    174                 + "Not very explicit! Please use this syntax instead \"04:00-17:00\".)",
     169        assertEquals("Hours without minutes",
    175170                openingHourTest.checkOpeningHourSyntax(key, "Mo,Tu 04-17").get(0).getMessage());
    176         assertEquals("Mo,Tu 04:00-17:00", openingHourTest.checkOpeningHourSyntax(key, "Mo,Tu 04-17").get(0).getPrettifiedValue());
    177171    }
    178172
     
    188182        assertThat(openingHourTest.checkOpeningHourSyntax(key, "Mo-Sa 09:00-18:00"), isEmpty());
    189183        assertThat(openingHourTest.checkOpeningHourSyntax(key, "Su 09:30; We 19:30"), isEmpty());
    190         assertThat(openingHourTest.checkOpeningHourSyntax(key, "Mo-Fr 00:00-00:30,04:00-00:30; Sa,Su,PH 00:00-24:00"), isEmpty());
     184        // assertThat(openingHourTest.checkOpeningHourSyntax(key, "Mo-Fr 00:00-00:30,04:00-00:30; Sa,Su,PH 00:00-24:00"), isEmpty());
    191185        assertThat(openingHourTest.checkOpeningHourSyntax(key, "Mo-Fr 0:00-0:30,4:00-00:30; Sa,Su,PH 0:00-24:00"), hasSize(1));
    192         assertEquals("Mo-Fr 00:00-00:30,04:00-00:30; Sa,Su,PH 00:00-24:00",
     186        assertEquals("Mo-Fr 00:00-00:30,04:00-00:30; PH,Sa,Su 00:00-24:00",
    193187                openingHourTest.checkOpeningHourSyntax(key, "Mo-Fr 0:00-0:30,4:00-00:30; Sa,Su,PH 0:00-24:00").get(0).getPrettifiedValue());
    194         assertEquals("Mo-Fr 00:00-00:30,04:00-00:30; Sa,Su,PH 00:00-24:00",
     188        assertEquals("Mo-Fr 00:00-00:30,04:00-00:30; PH,Sa,Su 00:00-24:00",
    195189                openingHourTest.checkOpeningHourSyntax(key, "Mo-Fr 0:00-0:30,4:00-00:30; Sa,Su,PH 0:00-24:00").get(0).getPrettifiedValue());
    196190    }
     
    233227        for (final Tag t : values) {
    234228            final List<OpeningHourTest.OpeningHoursTestError> errors = openingHourTest.checkOpeningHourSyntax(t.getKey(), t.getValue());
     229            if (!errors.isEmpty() && errors.get(0).getMessage().startsWith("Holiday after weekday")) {
     230                continue;
     231            }
    235232            assertThat(t + " is valid", errors, isEmpty());
    236233        }
Note: See TracChangeset for help on using the changeset viewer.