@VisibleForTesting public static PrestoWarning createTestWarning(int code) { // format string below is a hack to construct a vendor specific SQLState value // 01 is the class of warning code and 5 is the first allowed vendor defined prefix character // See the SQL Standard ISO_IEC_9075-2E_2016 24.1: SQLState for more information return new PrestoWarning(new WarningCode(code, format("015%02d", code % 100)), "Test warning " + code); } }
public static List<PrestoWarning> createTestWarnings(int numberOfWarnings) { checkArgument(numberOfWarnings > 0, "numberOfWarnings must be > 0"); ImmutableList.Builder<PrestoWarning> builder = ImmutableList.builder(); range(1, numberOfWarnings) .mapToObj(code -> new PrestoWarning(new WarningCode(code, "testWarning"), "Test warning " + code)) .forEach(builder::add); return builder.build(); }
@Test public void testMaxWarnings() { WarningCollector warningCollector = new DefaultWarningCollector(new WarningCollectorConfig().setMaxWarnings(2)); warningCollector.add(new PrestoWarning(new WarningCode(1, "1"), "warning 1")); warningCollector.add(new PrestoWarning(new WarningCode(2, "2"), "warning 2")); warningCollector.add(new PrestoWarning(new WarningCode(3, "3"), "warning 3")); assertEquals(warningCollector.getWarnings().size(), 2); } }
@Test public void testNoWarnings() { WarningCollector warningCollector = new DefaultWarningCollector(new WarningCollectorConfig().setMaxWarnings(0)); warningCollector.add(new PrestoWarning(new WarningCode(1, "1"), "warning 1")); assertEquals(warningCollector.getWarnings().size(), 0); }
@Test public void testSqlWarning() { ImmutableList.Builder<PrestoWarning> builder = ImmutableList.builder(); for (int i = 0; i < 3; i++) { builder.add(new PrestoWarning(new WarningCode(i, "CODE_" + i), "warning message " + i)); } List<PrestoWarning> warnings = builder.build(); SQLWarning warning = fromPrestoWarnings(warnings); assertEquals(Iterators.size(warning.iterator()), warnings.size()); assertWarningsEqual(warning, new PrestoSqlWarning(warnings.get(0))); assertWarningsEqual(warning.getNextWarning(), new PrestoSqlWarning(warnings.get(1))); assertWarningsEqual(warning.getNextWarning().getNextWarning(), new PrestoSqlWarning(warnings.get(2))); }
@Test public void testSqlWarning() { ImmutableList.Builder<PrestoWarning> builder = ImmutableList.builder(); for (int i = 0; i < 3; i++) { builder.add(new PrestoWarning(new WarningCode(i, "CODE_" + i), "warning message " + i)); } List<PrestoWarning> warnings = builder.build(); SQLWarning warning = fromPrestoWarnings(warnings); assertEquals(Iterators.size(warning.iterator()), warnings.size()); assertWarningsEqual(warning, new PrestoSqlWarning(warnings.get(0))); assertWarningsEqual(warning.getNextWarning(), new PrestoSqlWarning(warnings.get(1))); assertWarningsEqual(warning.getNextWarning().getNextWarning(), new PrestoSqlWarning(warnings.get(2))); }