Author: schor
Date: Sat Jul 14 15:36:32 2018
New Revision: 1835911
URL: http://svn.apache.org/viewvc?rev=1835911&view=rev
Log:
[UIMA-5730] add test and test-pear for pear specifier parameters
Added:
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapperTest.java
uima/uimaj/trunk/uimaj-core/src/test/resources/pearTests/analysisEngineWithParameters.pear
(with props)
Added:
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapperTest.java
URL:
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapperTest.java?rev=1835911&view=auto
==============================================================================
---
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapperTest.java
(added)
+++
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapperTest.java
Sat Jul 14 15:36:32 2018
@@ -0,0 +1,130 @@
+package org.apache.uima.analysis_engine.impl;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+
+import org.apache.uima.pear.tools.PackageBrowser;
+import org.apache.uima.pear.tools.PackageInstaller;
+import org.apache.uima.pear.util.FileUtil;
+import org.apache.uima.resource.Parameter;
+import org.apache.uima.resource.PearSpecifier;
+import org.apache.uima.resource.impl.Parameter_impl;
+import org.apache.uima.resource.impl.PearSpecifier_impl;
+import org.apache.uima.test.junit_extension.JUnitExtension;
+import org.junit.Assert;
+
+import junit.framework.TestCase;
+
+public class PearAnalysisEngineWrapperTest extends TestCase {
+
+ private final static String PARAMETER_NAME = "StringParam";
+
+ private final static String PARAMETER_VALUE = "test";
+
+ private final static String PARAMETER_VALUE_OVERRIDE = "testOverride";
+
+ private PearAnalysisEngineWrapper pearAnalysisEngineWrapper;
+
+ private File tempInstallDirectory = null;
+
+ private PackageBrowser installedPearPackage;
+
+ public PearAnalysisEngineWrapperTest(String arg0) {
+
+ super(arg0);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+
+ this.pearAnalysisEngineWrapper = new PearAnalysisEngineWrapper();
+
+ this.tempInstallDirectory = this.createInstallationDirectory();
+
+ this.installedPearPackage = this.installPearPackage();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ this.removeInstallationDirectory();
+ }
+
+ public void testInitializeWithOverride() throws Exception {
+
+ PearSpecifier pearSpecifier = this.createPearSpecifierWithParameters();
+
+ boolean initialized =
this.pearAnalysisEngineWrapper.initialize(pearSpecifier,
+ new HashMap<String, Object>());
+
+ Assert.assertTrue("Pear was not initialized", initialized);
+
+ String stringParamValue = (String) this.pearAnalysisEngineWrapper
+
.getConfigParameterValue(PearAnalysisEngineWrapperTest.PARAMETER_NAME);
+
+ Assert.assertEquals("The value of StringParam was not overridden",
+ PearAnalysisEngineWrapperTest.PARAMETER_VALUE_OVERRIDE,
stringParamValue);
+ }
+
+ private PearSpecifier createPearSpecifierWithParameters() {
+
+ Parameter parameterStringParam = new Parameter_impl();
+ parameterStringParam.setName(PearAnalysisEngineWrapperTest.PARAMETER_NAME);
+
parameterStringParam.setValue(PearAnalysisEngineWrapperTest.PARAMETER_VALUE_OVERRIDE);
+
+ PearSpecifier_impl pearSpecifier_impl = new PearSpecifier_impl();
+
pearSpecifier_impl.setPearPath(this.installedPearPackage.getRootDirectory().toString());
+ pearSpecifier_impl.setParameters(new Parameter[] { parameterStringParam });
+ return pearSpecifier_impl;
+ }
+
+ public void testInitializeWithoutOverride() throws Exception {
+
+ PearSpecifier pearSpecifier = this.createPearSpecifierWithoutParameters();
+
+ boolean initialized =
this.pearAnalysisEngineWrapper.initialize(pearSpecifier,
+ new HashMap<String, Object>());
+
+ Assert.assertTrue("Pear was not initialized", initialized);
+
+ String stringParamValue = (String) this.pearAnalysisEngineWrapper
+
.getConfigParameterValue(PearAnalysisEngineWrapperTest.PARAMETER_NAME);
+
+ Assert.assertEquals("The value of StringParam has changed",
+ PearAnalysisEngineWrapperTest.PARAMETER_VALUE, stringParamValue);
+ }
+
+ private PearSpecifier createPearSpecifierWithoutParameters() {
+
+ PearSpecifier_impl pearSpecifier_impl = new PearSpecifier_impl();
+
pearSpecifier_impl.setPearPath(this.installedPearPackage.getRootDirectory().toString());
+ return pearSpecifier_impl;
+ }
+
+ private File createInstallationDirectory() throws IOException {
+
+ File tempDirectory = File.createTempFile("pear_verification_test_", "tmp");
+ if (tempDirectory.delete()) {
+
+ if (!tempDirectory.mkdirs()) {
+ throw new IllegalStateException(
+ "Tmp directory (" + tempDirectory + ") could not be created");
+ }
+ }
+
+ return tempDirectory;
+ }
+
+ private PackageBrowser installPearPackage() {
+ File pearFile =
JUnitExtension.getFile("pearTests/analysisEngineWithParameters.pear");
+ Assert.assertNotNull("analysisEngine.pear file not found", pearFile);
+
+ return PackageInstaller.installPackage(this.tempInstallDirectory,
pearFile, false);
+ }
+
+ private void removeInstallationDirectory() throws IOException {
+ if (this.tempInstallDirectory != null) {
+ FileUtil.deleteDirectory(this.tempInstallDirectory);
+ }
+ }
+}
Added:
uima/uimaj/trunk/uimaj-core/src/test/resources/pearTests/analysisEngineWithParameters.pear
URL:
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/pearTests/analysisEngineWithParameters.pear?rev=1835911&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
uima/uimaj/trunk/uimaj-core/src/test/resources/pearTests/analysisEngineWithParameters.pear
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream