From 5bd8b14640a35e37aad01b40f3da1e2f867d5ec9 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Tue, 7 Feb 2023 12:42:23 +0100 Subject: Handle schema files with no content --- .../com/yahoo/schema/IndexingParsingTestCase.java | 11 +++++--- .../com/yahoo/schema/SchemaParsingTestCase.java | 32 ++++++++-------------- .../parser/IntermediateCollectionTestCase.java | 15 +++++----- 3 files changed, 27 insertions(+), 31 deletions(-) (limited to 'config-model/src/test/java/com/yahoo/schema') diff --git a/config-model/src/test/java/com/yahoo/schema/IndexingParsingTestCase.java b/config-model/src/test/java/com/yahoo/schema/IndexingParsingTestCase.java index fcbea179810..f06b1a73e8e 100644 --- a/config-model/src/test/java/com/yahoo/schema/IndexingParsingTestCase.java +++ b/config-model/src/test/java/com/yahoo/schema/IndexingParsingTestCase.java @@ -2,9 +2,13 @@ package com.yahoo.schema; import com.yahoo.schema.parser.ParseException; +import com.yahoo.yolean.Exceptions; import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; /** * Tests that indexing statements are parsed correctly. @@ -22,10 +26,9 @@ public class IndexingParsingTestCase extends AbstractSchemaTestCase { void requireThatParseExceptionPositionIsCorrect() throws Exception { try { ApplicationBuilder.buildFromFile("src/test/examples/indexing_invalid_expression.sd"); - } catch (ParseException e) { - if (!e.getMessage().contains("at line 5, column 57.")) { - throw e; - } + fail(); + } catch (IllegalArgumentException e) { + assertTrue(Exceptions.toMessageString(e).contains("at line 5, column 57.")); } } diff --git a/config-model/src/test/java/com/yahoo/schema/SchemaParsingTestCase.java b/config-model/src/test/java/com/yahoo/schema/SchemaParsingTestCase.java index c8657df23ce..04c78773831 100644 --- a/config-model/src/test/java/com/yahoo/schema/SchemaParsingTestCase.java +++ b/config-model/src/test/java/com/yahoo/schema/SchemaParsingTestCase.java @@ -5,9 +5,11 @@ import java.io.IOException; import com.yahoo.schema.parser.ParseException; +import com.yahoo.yolean.Exceptions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; /** @@ -27,10 +29,8 @@ public class SchemaParsingTestCase extends AbstractSchemaTestCase { void requireThatParseExceptionPositionIsCorrect() throws Exception { try { ApplicationBuilder.buildFromFile("src/test/examples/invalid_sd_construct.sd"); - } catch (ParseException e) { - if (!e.getMessage().contains("at line 5, column 36.")) { - throw e; - } + } catch (IllegalArgumentException e) { + assertTrue(Exceptions.toMessageString(e).contains("at line 5, column 36.")); } } @@ -38,10 +38,8 @@ public class SchemaParsingTestCase extends AbstractSchemaTestCase { void requireThatParserHandlesLexicalError() throws Exception { try { ApplicationBuilder.buildFromFile("src/test/examples/invalid_sd_lexical_error.sd"); - } catch (ParseException e) { - if (!e.getMessage().contains("at line 7, column 27.")) { - throw e; - } + } catch (IllegalArgumentException e) { + assertTrue(Exceptions.toMessageString(e).contains("at line 7, column 27.")); } } @@ -50,10 +48,8 @@ public class SchemaParsingTestCase extends AbstractSchemaTestCase { try { ApplicationBuilder.buildFromFile("src/test/examples/invalid_sd_junk_at_end.sd"); fail("Illegal junk at end of SD passed"); - } catch (ParseException e) { - if (!e.getMessage().contains("at line 10, column 1")) { - throw e; - } + } catch (IllegalArgumentException e) { + assertTrue(Exceptions.toMessageString(e).contains("at line 10, column 1")); } } @@ -62,10 +58,8 @@ public class SchemaParsingTestCase extends AbstractSchemaTestCase { try { ApplicationBuilder.buildFromFile("src/test/examples/invalid_sd_no_closing_bracket.sd"); fail("SD without closing bracket passed"); - } catch (ParseException e) { - if (!e.getMessage().contains("Encountered \"\" at line 8, column 1")) { - throw e; - } + } catch (IllegalArgumentException e) { + assertTrue(Exceptions.toMessageString(e).contains("Encountered \"\" at line 8, column 1")); } } @@ -74,10 +68,8 @@ public class SchemaParsingTestCase extends AbstractSchemaTestCase { try { ApplicationBuilder.buildFromFile("src/test/examples/invalid-name.sd"); fail("Name with dash passed"); - } catch (ParseException e) { - if (!e.getMessage().contains("invalid-name")) { - throw e; - } + } catch (IllegalArgumentException e) { + assertTrue(Exceptions.toMessageString(e).contains("invalid-name")); } } diff --git a/config-model/src/test/java/com/yahoo/schema/parser/IntermediateCollectionTestCase.java b/config-model/src/test/java/com/yahoo/schema/parser/IntermediateCollectionTestCase.java index 6ebfea41d84..72af294d384 100644 --- a/config-model/src/test/java/com/yahoo/schema/parser/IntermediateCollectionTestCase.java +++ b/config-model/src/test/java/com/yahoo/schema/parser/IntermediateCollectionTestCase.java @@ -10,6 +10,7 @@ import java.io.File; import java.io.FileReader; import java.util.List; +import com.yahoo.yolean.Exceptions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -131,24 +132,24 @@ public class IntermediateCollectionTestCase { var collection = new IntermediateCollection(); var ex = assertThrows(IllegalArgumentException.class, () -> collection.addSchemaFromReader(readerOf("src/test/cfg/application/sdfilenametest/schemas/notmusic.sd"))); - assertEquals("The file containing schema 'music' must be named 'music.sd', was 'notmusic.sd'", + assertEquals("The file containing schema 'music' must be named 'music.sd', but is 'notmusic.sd'", ex.getMessage()); } @Test void bad_parse_throws() throws Exception { var collection = new IntermediateCollection(); - var ex = assertThrows(ParseException.class, () -> + var ex1 = assertThrows(IllegalArgumentException.class, () -> collection.addSchemaFromFile("src/test/examples/badparse.sd")); - assertTrue(ex.getMessage().startsWith("Failed parsing schema from src/test/examples/badparse.sd: Encountered")); - ex = assertThrows(ParseException.class, () -> + assertTrue(Exceptions.toMessageString(ex1).startsWith("Failed parsing schema from 'src/test/examples/badparse.sd': Encountered"), ex1.getMessage()); + var ex2 = assertThrows(IllegalArgumentException.class, () -> collection.addSchemaFromReader(readerOf("src/test/examples/badparse.sd"))); - assertTrue(ex.getMessage().startsWith("Failed parsing schema from src/test/examples/badparse.sd: Encountered")); + assertTrue(Exceptions.toMessageString(ex2).startsWith("Failed parsing schema from 'src/test/examples/badparse.sd': Encountered"), ex2.getMessage()); collection.addSchemaFromFile("src/test/derived/rankprofilemodularity/test.sd"); collection.addRankProfileFile("test", "src/test/derived/rankprofilemodularity/test/outside_schema1.profile"); - ex = assertThrows(ParseException.class, () -> + var ex3 = assertThrows(ParseException.class, () -> collection.addRankProfileFile("test", "src/test/examples/badparse.sd")); - assertTrue(ex.getMessage().startsWith("Failed parsing rank-profile from src/test/examples/badparse.sd: Encountered")); + assertTrue(Exceptions.toMessageString(ex3).startsWith("Failed parsing rank-profile from 'src/test/examples/badparse.sd': Encountered"), ex3.getMessage()); } @Test -- cgit v1.2.3