package schemacrawler.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import org.junit.Test; import schemacrawler.schemacrawler.SchemaCrawlerException; import schemacrawler.tools.lint.LintSeverity; import schemacrawler.tools.lint.LinterConfig; import schemacrawler.tools.lint.LinterConfigs; public class LinterConfigsTest { private static Reader readerForResource(final String resource) throws IOException { final InputStream inputStream = LinterConfigsTest.class .getResource(resource).openStream(); Reader reader; if (inputStream != null) { reader = new InputStreamReader(inputStream); } else { reader = null; } return reader; } @Test public void testParseBadLinterConfigs1() throws SchemaCrawlerException, IOException { final Reader reader = readerForResource("/bad-schemacrawler-linter-configs-a.xml"); final LinterConfigs linterConfigs = new LinterConfigs(); linterConfigs.parse(reader); assertEquals(3, linterConfigs.size()); LinterConfig linterConfig; linterConfig = linterConfigs.get("linter.Linter1"); assertEquals(null, linterConfig.getConfig().getStringValue("exclude", null)); linterConfig = linterConfigs.get("linter.Linter2"); assertEquals(".*", linterConfig.getConfig().getStringValue("exclude", null)); linterConfig = linterConfigs.get("linter.Linter3"); assertNull(linterConfig.getSeverity()); } @Test(expected = IllegalArgumentException.class) public void testParseBadXml0() throws SchemaCrawlerException { final LinterConfigs linterConfigs = new LinterConfigs(); linterConfigs.parse(null); } @Test(expected = SchemaCrawlerException.class) public void testParseBadXml1() throws SchemaCrawlerException, IOException { final Reader reader = readerForResource("/bad-schemacrawler-linter-configs-1.xml"); final LinterConfigs linterConfigs = new LinterConfigs(); linterConfigs.parse(reader); assertEquals(0, linterConfigs.size()); } @Test public void testParseBadXml2() throws SchemaCrawlerException, IOException { final Reader reader = readerForResource("/bad-schemacrawler-linter-configs-2.xml"); final LinterConfigs linterConfigs = new LinterConfigs(); linterConfigs.parse(reader); } @Test public void testParseGoodLinterConfigs() throws SchemaCrawlerException, IOException { final Reader reader = readerForResource("/schemacrawler-linter-configs-1.xml"); final LinterConfigs linterConfigs = new LinterConfigs(); linterConfigs.parse(reader); assertEquals(3, linterConfigs.size()); LinterConfig linterConfig; linterConfig = linterConfigs.get("linter.Linter1"); assertEquals(LintSeverity.medium, linterConfig.getSeverity()); linterConfig = linterConfigs.get("linter.Linter2"); assertTrue(linterConfig.getSeverity() == null); assertEquals(".*", linterConfig.getConfig().getStringValue("exclude", null)); linterConfig = linterConfigs.get("linter.Linter3"); assertEquals(LintSeverity.high, linterConfig.getSeverity()); } }