aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-08-25 22:58:16 +0200
committerJon Bratseth <bratseth@oath.com>2018-08-25 22:58:16 +0200
commitb525b8d8efcf71b421db1e549e4f078514e26135 (patch)
tree1011ce314160c766e119a42c67daf6bc35980fe4 /config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java
parentccda281b6c60de0e6c7108a8532d7f7438ebd9ae (diff)
Improve evaluation API
Diffstat (limited to 'config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java')
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java b/config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java
new file mode 100644
index 00000000000..3e052421684
--- /dev/null
+++ b/config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java
@@ -0,0 +1,54 @@
+package com.yahoo.config.model;
+
+import com.yahoo.component.Version;
+import com.yahoo.config.model.application.provider.ApplicationPackageXmlFilesValidator;
+import com.yahoo.config.model.application.provider.FilesApplicationPackage;
+import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.vespa.model.search.SearchDefinition;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Helper for tests using a file application package
+ *
+ * @author bratseth
+ */
+public class ApplicationPackageTester {
+
+ private final FilesApplicationPackage applicationPackage;
+
+ private ApplicationPackageTester(String applicationPackageDir, boolean validate) {
+ try {
+ FilesApplicationPackage applicationPackage =
+ FilesApplicationPackage.fromFile(new File(applicationPackageDir));
+ if (validate) {
+ ApplicationPackageXmlFilesValidator validator =
+ ApplicationPackageXmlFilesValidator.create(new File(applicationPackageDir), new Version(6));
+ validator.checkApplication();
+ validator.checkIncludedDirs(applicationPackage);
+ }
+ this.applicationPackage = applicationPackage;
+ }
+ catch (IOException e) {
+ throw new IllegalArgumentException("Could not create an application package from '" +
+ applicationPackageDir + "'", e);
+ }
+ }
+
+ public FilesApplicationPackage app() { return applicationPackage; }
+
+ public List<SearchDefinition> getSearchDefinitions() {
+ return new DeployState.Builder().applicationPackage(app()).build().getSearchDefinitions();
+ }
+
+ public static ApplicationPackageTester create(String applicationPackageDir) {
+ return new ApplicationPackageTester(applicationPackageDir, true);
+ }
+
+ public static ApplicationPackageTester createWithoutValidation(String applicationPackageDir) {
+ return new ApplicationPackageTester(applicationPackageDir, false);
+ }
+
+}