diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-08-25 22:58:16 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-08-25 22:58:16 +0200 |
commit | b525b8d8efcf71b421db1e549e4f078514e26135 (patch) | |
tree | 1011ce314160c766e119a42c67daf6bc35980fe4 /config-model/src/test/java/com/yahoo/config/model/ApplicationPackageTester.java | |
parent | ccda281b6c60de0e6c7108a8532d7f7438ebd9ae (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.java | 54 |
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); + } + +} |