NIFI-728: Allow Mock Framework to use property descriptors from subclasses that 
are created for unit testing


Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/f58972e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/f58972e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/f58972e5

Branch: refs/heads/master
Commit: f58972e566448886cdf984e6c8a34c83674b0705
Parents: 69297a3
Author: Mark Payne <marka...@hotmail.com>
Authored: Thu Jun 25 09:46:16 2015 -0400
Committer: Mark Payne <marka...@hotmail.com>
Committed: Thu Jun 25 09:56:07 2015 -0400

----------------------------------------------------------------------
 .../nifi/util/MockConfigurationContext.java       | 18 +++++++++++++++++-
 .../nifi/util/StandardProcessorTestRunner.java    |  4 ++--
 2 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f58972e5/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java
 
b/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java
index 61af49d..742f03b 100644
--- 
a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java
+++ 
b/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java
@@ -22,14 +22,21 @@ import java.util.Map;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.PropertyValue;
 import org.apache.nifi.controller.ConfigurationContext;
+import org.apache.nifi.controller.ControllerService;
 import org.apache.nifi.controller.ControllerServiceLookup;
 
 public class MockConfigurationContext implements ConfigurationContext {
 
     private final Map<PropertyDescriptor, String> properties;
     private final ControllerServiceLookup serviceLookup;
+    private final ControllerService service;
 
     public MockConfigurationContext(final Map<PropertyDescriptor, String> 
properties, final ControllerServiceLookup serviceLookup) {
+        this(null, properties, serviceLookup);
+    }
+
+    public MockConfigurationContext(final ControllerService service, final 
Map<PropertyDescriptor, String> properties, final ControllerServiceLookup 
serviceLookup) {
+        this.service = service;
         this.properties = properties;
         this.serviceLookup = serviceLookup;
     }
@@ -38,7 +45,7 @@ public class MockConfigurationContext implements 
ConfigurationContext {
     public PropertyValue getProperty(final PropertyDescriptor property) {
         String value = properties.get(property);
         if (value == null) {
-            value = property.getDefaultValue();
+            value = getActualDescriptor(property).getDefaultValue();
         }
         return new MockPropertyValue(value, serviceLookup);
     }
@@ -47,4 +54,13 @@ public class MockConfigurationContext implements 
ConfigurationContext {
     public Map<PropertyDescriptor, String> getProperties() {
         return new HashMap<>(this.properties);
     }
+
+    private PropertyDescriptor getActualDescriptor(final PropertyDescriptor 
property) {
+        if (service == null) {
+            return property;
+        }
+
+        final PropertyDescriptor resolved = 
service.getPropertyDescriptor(property.getName());
+        return resolved == null ? property : resolved;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f58972e5/nifi/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
 
b/nifi/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
index 8938547..048e2b9 100644
--- 
a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
+++ 
b/nifi/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java
@@ -215,7 +215,7 @@ public class StandardProcessorTestRunner implements 
TestRunner {
             executorService.shutdown();
             try {
                 executorService.awaitTermination(runWait, 
TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e1) {
+            } catch (final InterruptedException e1) {
             }
 
             int finishedCount = 0;
@@ -609,7 +609,7 @@ public class StandardProcessorTestRunner implements 
TestRunner {
         }
 
         try {
-            final ConfigurationContext configContext = new 
MockConfigurationContext(configuration.getProperties(), context);
+            final ConfigurationContext configContext = new 
MockConfigurationContext(service, configuration.getProperties(), context);
             ReflectionUtils.invokeMethodsWithAnnotation(OnEnabled.class, 
service, configContext);
         } catch (final InvocationTargetException ite) {
             ite.getCause().printStackTrace();

Reply via email to