diff options
Diffstat (limited to 'config-model/src/test/java/com')
10 files changed, 90 insertions, 34 deletions
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java index 7f3ea7d14bc..2e0fc3b4f98 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java @@ -16,9 +16,12 @@ public abstract class SchemaTestCase { assertSerializedConfigFileEquals(filename, cfg); } - protected static void assertConfigFiles(String expectedFile, String cfgFile, boolean updateOnAssert) throws IOException { + protected static void assertConfigFiles(String expectedFile, + String cfgFile, + boolean orderMatters, + boolean updateOnAssert) throws IOException { try { - assertSerializedConfigEquals(readAndCensorIndexes(expectedFile), readAndCensorIndexes(cfgFile)); + assertSerializedConfigEquals(readAndCensorIndexes(expectedFile), readAndCensorIndexes(cfgFile), orderMatters); } catch (AssertionError e) { if (updateOnAssert) { BufferedWriter writer = IOUtils.createWriter(expectedFile, false); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java index a345cabe909..6b6af95a8d2 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java @@ -1,7 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived; -import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.document.DocumenttypesConfig; import com.yahoo.document.config.DocumentmanagerConfig; @@ -26,21 +26,25 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase { private static final String tempDir = "temp/"; private static final String searchDefRoot = "src/test/derived/"; - private DerivedConfiguration derive(String dirName, String searchDefinitionName, TestProperties properties) throws IOException, ParseException { + private DerivedConfiguration derive(String dirName, + String searchDefinitionName, + TestProperties properties, + DeployLogger logger) throws IOException, ParseException { File toDir = new File(tempDir + dirName); toDir.mkdirs(); deleteContent(toDir); - SearchBuilder builder = SearchBuilder.createFromDirectory(searchDefRoot + dirName + "/"); - return derive(dirName, searchDefinitionName, properties, builder); + SearchBuilder builder = SearchBuilder.createFromDirectory(searchDefRoot + dirName + "/", logger); + return derive(dirName, searchDefinitionName, properties, builder, logger); } private DerivedConfiguration derive(String dirName, String searchDefinitionName, TestProperties properties, - SearchBuilder builder) throws IOException { + SearchBuilder builder, + DeployLogger logger) throws IOException { DerivedConfiguration config = new DerivedConfiguration(builder.getSearch(searchDefinitionName), - new BaseDeployLogger(), + logger, properties, builder.getRankProfileRegistry(), builder.getQueryProfileRegistry(), @@ -80,15 +84,23 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase { * @throws IOException if file access failed. */ protected DerivedConfiguration assertCorrectDeriving(String dirName) throws IOException, ParseException { - return assertCorrectDeriving(dirName, null); + return assertCorrectDeriving(dirName, new TestableDeployLogger()); + } + protected DerivedConfiguration assertCorrectDeriving(String dirName, DeployLogger logger) throws IOException, ParseException { + return assertCorrectDeriving(dirName, null, logger); } - protected DerivedConfiguration assertCorrectDeriving(String dirName, String searchDefinitionName) throws IOException, ParseException { - return assertCorrectDeriving(dirName, searchDefinitionName, new TestProperties()); + protected DerivedConfiguration assertCorrectDeriving(String dirName, + String searchDefinitionName, + DeployLogger logger) throws IOException, ParseException { + return assertCorrectDeriving(dirName, searchDefinitionName, new TestProperties(), logger); } - protected DerivedConfiguration assertCorrectDeriving(String dirName, String searchDefinitionName, TestProperties properties) throws IOException, ParseException { - DerivedConfiguration derived = derive(dirName, searchDefinitionName, properties); + protected DerivedConfiguration assertCorrectDeriving(String dirName, + String searchDefinitionName, + TestProperties properties, + DeployLogger logger) throws IOException, ParseException { + DerivedConfiguration derived = derive(dirName, searchDefinitionName, properties, logger); assertCorrectConfigFiles(dirName); return derived; } @@ -97,9 +109,9 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase { * Asserts config is correctly derived given a builder. * This will fail if the builder contains multiple search definitions. */ - protected DerivedConfiguration assertCorrectDeriving(SearchBuilder builder, String dirName) throws IOException { + protected DerivedConfiguration assertCorrectDeriving(SearchBuilder builder, String dirName, DeployLogger logger) throws IOException { builder.build(); - DerivedConfiguration derived = derive(dirName, null, new TestProperties(), builder); + DerivedConfiguration derived = derive(dirName, null, new TestProperties(), builder, logger); assertCorrectConfigFiles(dirName); return derived; } @@ -121,13 +133,14 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase { if (files == null) return; for (File file : files) { if ( ! file.getName().endsWith(".cfg")) continue; - assertEqualFiles(file.getPath(), tempDir + name + "/" + file.getName()); + boolean orderMatters = file.getName().equals("ilscripts.cfg"); + assertEqualFiles(file.getPath(), tempDir + name + "/" + file.getName(), orderMatters); } } - static void assertEqualFiles(String correctFileName, String checkFileName) throws IOException { + static void assertEqualFiles(String correctFileName, String checkFileName, boolean orderMatters) throws IOException { // Set updateOnAssert to true if you want update the files with correct answer. - assertConfigFiles(correctFileName, checkFileName, false); + assertConfigFiles(correctFileName, checkFileName, orderMatters, false); } void deleteContent(File dir) { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java index 71cca20f8fa..770bea55af2 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java @@ -1,13 +1,14 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived; -import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; import java.io.IOException; +import static org.junit.Assert.assertEquals; + /** * Tests exporting * @@ -158,7 +159,14 @@ public class ExportingTestCase extends AbstractExportingTestCase { @Test public void testRankProfileInheritance() throws IOException, ParseException { - assertCorrectDeriving("rankprofileinheritance", "child"); + assertCorrectDeriving("rankprofileinheritance", "child", new TestableDeployLogger()); + } + + @Test + public void testLanguage() throws IOException, ParseException { + TestableDeployLogger logger = new TestableDeployLogger(); + assertCorrectDeriving("language", logger); + assertEquals(0, logger.warnings.size()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java index a0dd89229dd..f61143833c9 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java @@ -13,26 +13,26 @@ public class ImportedFieldsTestCase extends AbstractExportingTestCase { @Test public void configs_for_imported_fields_are_derived() throws IOException, ParseException { - assertCorrectDeriving("importedfields", "child"); + assertCorrectDeriving("importedfields", "child", new TestableDeployLogger()); } @Test public void configs_for_imported_struct_fields_are_derived() throws IOException, ParseException { - assertCorrectDeriving("imported_struct_fields", "child"); + assertCorrectDeriving("imported_struct_fields", "child", new TestableDeployLogger()); } @Test public void configs_for_imported_position_field_are_derived() throws IOException, ParseException { - assertCorrectDeriving("imported_position_field", "child"); + assertCorrectDeriving("imported_position_field", "child", new TestableDeployLogger()); } @Test public void configs_for_imported_position_field_summary_are_derived() throws IOException, ParseException { - assertCorrectDeriving("imported_position_field_summary", "child"); + assertCorrectDeriving("imported_position_field_summary", "child", new TestableDeployLogger()); } @Test public void derives_configs_for_imported_fields_when_reference_fields_are_inherited() throws IOException, ParseException { - assertCorrectDeriving("imported_fields_inherited_reference", "child_c"); + assertCorrectDeriving("imported_fields_inherited_reference", "child_c", new TestableDeployLogger()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java index 187e766c315..5e45102a626 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java @@ -18,7 +18,7 @@ public class MailTestCase extends AbstractExportingTestCase { String dir = "src/test/derived/mail/"; SearchBuilder sb = new SearchBuilder(); sb.importFile(dir + "mail.sd"); - assertCorrectDeriving(sb, dir); + assertCorrectDeriving(sb, dir, new TestableDeployLogger()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java index 073a15b0525..1f1c905e0bf 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java @@ -13,6 +13,6 @@ public class ReferenceFieldsTestCase extends AbstractExportingTestCase { @Test public void configs_related_to_reference_fields_are_derived() throws IOException, ParseException { - assertCorrectDeriving("reference_fields", "ad"); + assertCorrectDeriving("reference_fields", "ad", new TestableDeployLogger()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java index 45a6240d3ba..83e11c365f8 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java @@ -45,10 +45,8 @@ public class SimpleInheritTestCase extends AbstractExportingTestCase { private void checkDir(String toDirName, String expectedResultsDirName) throws IOException { File[] files = new File(expectedResultsDirName).listFiles(); for (File file : files) { - if (!file.getName().endsWith(".cfg")) { - continue; - } - assertEqualFiles(file.getPath(), toDirName + "/" + file.getName()); + if ( ! file.getName().endsWith(".cfg")) continue; + assertEqualFiles(file.getPath(), toDirName + "/" + file.getName(), false); } } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/TestableDeployLogger.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TestableDeployLogger.java new file mode 100644 index 00000000000..a23c8024872 --- /dev/null +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TestableDeployLogger.java @@ -0,0 +1,30 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.searchdefinition.derived; + +import com.yahoo.config.application.api.DeployLogger; + +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * @author bratseth + */ +public class TestableDeployLogger implements DeployLogger { + + private static final Logger log = Logger.getLogger("DeployLogger"); + + public List<String> warnings = new ArrayList<>(); + public List<String> info = new ArrayList<>(); + + @Override + public final void log(Level level, String message) { + log.log(level, message); + if (level.equals(Level.WARNING)) + warnings.add(message); + if (level.equals(Level.INFO)) + info.add(message); + } + +} diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java index 1567a4c3b5e..8861432d97b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java @@ -9,6 +9,7 @@ import com.yahoo.searchdefinition.*; import com.yahoo.searchdefinition.derived.DerivedConfiguration; import com.yahoo.searchdefinition.derived.AttributeFields; import com.yahoo.searchdefinition.derived.RawRankProfile; +import com.yahoo.searchdefinition.derived.TestableDeployLogger; import com.yahoo.searchdefinition.parser.ParseException; import ai.vespa.rankingexpression.importer.configmodelview.ImportedMlModels; import org.junit.Test; @@ -25,7 +26,8 @@ public class RankingExpressionsTestCase extends SchemaTestCase { public void testFunctions() throws IOException, ParseException { RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); Search search = SearchBuilder.createFromDirectory("src/test/examples/rankingexpressionfunction", - rankProfileRegistry).getSearch(); + rankProfileRegistry, + new TestableDeployLogger()).getSearch(); RankProfile functionsRankProfile = rankProfileRegistry.get(search, "macros"); Map<String, RankProfile.RankingExpressionFunction> functions = functionsRankProfile.getFunctions(); assertEquals(2, functions.get("titlematch$").function().arguments().size()); @@ -63,7 +65,9 @@ public class RankingExpressionsTestCase extends SchemaTestCase { @Test(expected = IllegalArgumentException.class) public void testThatIncludingFileInSubdirFails() throws IOException, ParseException { RankProfileRegistry registry = new RankProfileRegistry(); - Search search = SearchBuilder.createFromDirectory("src/test/examples/rankingexpressioninfile", registry).getSearch(); + Search search = SearchBuilder.createFromDirectory("src/test/examples/rankingexpressioninfile", + registry, + new TestableDeployLogger()).getSearch(); new DerivedConfiguration(search, new BaseDeployLogger(), new TestProperties(), registry, new QueryProfileRegistry(), new ImportedMlModels()); // rank profile parsing happens during deriving } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java index 31d0084570a..9e7370a933c 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java @@ -159,7 +159,7 @@ public class RoutingTestCase { fail("Expected file '" + fileName + "' not found."); return; } - assertSerializedConfigEquals(IOUtils.readFile(files.get(fileName)), configString); + assertSerializedConfigEquals(IOUtils.readFile(files.get(fileName)), configString, false); } /** |