This is an automated email from the ASF dual-hosted git repository. pvillard pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nifi.git
commit 9ed4623817da0a3156db3f479741e007b8142ffe Author: Matthew Burgess <[email protected]> AuthorDate: Mon Jan 6 13:13:31 2020 -0500 NIFI-6886: Fixed SiteToSiteReportingRecordSink, refactored mocks Signed-off-by: Pierre Villard <[email protected]> This closes #3959. --- .../reporting/AbstractSiteToSiteReportingTask.java | 3 +- .../sink/SiteToSiteReportingRecordSink.java | 4 +++ .../TestSiteToSiteBulletinReportingTask.java | 35 ++++++++++------------ .../TestSiteToSiteMetricsReportingTask.java | 31 ++++++++++--------- .../TestSiteToSiteProvenanceReportingTask.java | 30 +++++++++---------- .../TestSiteToSiteStatusReportingTask.java | 33 ++++++++++---------- 6 files changed, 67 insertions(+), 69 deletions(-) diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/AbstractSiteToSiteReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/AbstractSiteToSiteReportingTask.java index 267a058..17a4720 100644 --- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/AbstractSiteToSiteReportingTask.java +++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/AbstractSiteToSiteReportingTask.java @@ -117,7 +117,7 @@ public abstract class AbstractSiteToSiteReportingTask extends AbstractReportingT } public void setup(final ReportingContext reportContext) throws IOException { - if (siteToSiteClient != null) { + if (siteToSiteClient == null) { siteToSiteClient = SiteToSiteUtils.getClient(reportContext, getLogger()); } } @@ -127,6 +127,7 @@ public abstract class AbstractSiteToSiteReportingTask extends AbstractReportingT final SiteToSiteClient client = getClient(); if (client != null) { client.close(); + siteToSiteClient = null; } } diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/sink/SiteToSiteReportingRecordSink.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/sink/SiteToSiteReportingRecordSink.java index 411b9f8..5c372da 100644 --- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/sink/SiteToSiteReportingRecordSink.java +++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/sink/SiteToSiteReportingRecordSink.java @@ -21,6 +21,7 @@ import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnDisabled; import org.apache.nifi.annotation.lifecycle.OnEnabled; import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.components.state.StateManager; import org.apache.nifi.controller.AbstractControllerService; import org.apache.nifi.controller.ConfigurationContext; import org.apache.nifi.controller.ControllerServiceInitializationContext; @@ -61,6 +62,7 @@ public class SiteToSiteReportingRecordSink extends AbstractControllerService imp private List<PropertyDescriptor> properties; private volatile SiteToSiteClient siteToSiteClient; private volatile RecordSetWriterFactory writerFactory; + private volatile StateManager stateManager; @Override protected void init(final ControllerServiceInitializationContext context) { @@ -79,6 +81,7 @@ public class SiteToSiteReportingRecordSink extends AbstractControllerService imp properties.add(SiteToSiteUtils.HTTP_PROXY_USERNAME); properties.add(SiteToSiteUtils.HTTP_PROXY_PASSWORD); this.properties = Collections.unmodifiableList(properties); + this.stateManager = context.getStateManager(); } @Override @@ -118,6 +121,7 @@ public class SiteToSiteReportingRecordSink extends AbstractControllerService imp .useCompression(context.getProperty(SiteToSiteUtils.COMPRESS).asBoolean()) .eventReporter(eventReporter) .sslContext(sslContext) + .stateManager(stateManager) .timeout(context.getProperty(SiteToSiteUtils.TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS) .transportProtocol(mode) .httpProxy(httpProxy) diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteBulletinReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteBulletinReportingTask.java index 02708ad..9140cde 100644 --- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteBulletinReportingTask.java +++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteBulletinReportingTask.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -183,29 +184,25 @@ public class TestSiteToSiteBulletinReportingTask { final List<byte[]> dataSent = new ArrayList<>(); @Override - protected SiteToSiteClient getClient() { - final SiteToSiteClient client = Mockito.mock(SiteToSiteClient.class); - final Transaction transaction = Mockito.mock(Transaction.class); - - try { - Mockito.doAnswer(new Answer<Object>() { - @Override - public Object answer(final InvocationOnMock invocation) throws Throwable { + public void setup(ReportingContext reportContext) throws IOException { + if(siteToSiteClient == null) { + final SiteToSiteClient client = Mockito.mock(SiteToSiteClient.class); + final Transaction transaction = Mockito.mock(Transaction.class); + + try { + Mockito.doAnswer((Answer<Object>) invocation -> { final byte[] data = invocation.getArgument(0, byte[].class); dataSent.add(data); return null; - } - }).when(transaction).send(Mockito.any(byte[].class), Mockito.anyMap()); - - Mockito.when(client.createTransaction(Mockito.any(TransferDirection.class))).thenReturn(transaction); - } catch (final Exception e) { - e.printStackTrace(); - Assert.fail(e.toString()); + }).when(transaction).send(Mockito.any(byte[].class), Mockito.any(Map.class)); + + when(client.createTransaction(Mockito.any(TransferDirection.class))).thenReturn(transaction); + } catch (final Exception e) { + e.printStackTrace(); + Assert.fail(e.toString()); + } + siteToSiteClient = client; } - - return client; } - } - } diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteMetricsReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteMetricsReportingTask.java index 4bed62f..3b81c26 100644 --- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteMetricsReportingTask.java +++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteMetricsReportingTask.java @@ -19,6 +19,7 @@ package org.apache.nifi.reporting; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; +import static org.mockito.Mockito.when; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -295,27 +296,25 @@ public class TestSiteToSiteMetricsReportingTask { final List<byte[]> dataSent = new ArrayList<>(); @Override - protected SiteToSiteClient getClient() { - final SiteToSiteClient client = Mockito.mock(SiteToSiteClient.class); - final Transaction transaction = Mockito.mock(Transaction.class); - - try { - Mockito.doAnswer(new Answer<Object>() { - @Override - public Object answer(final InvocationOnMock invocation) throws Throwable { + public void setup(ReportingContext reportContext) throws IOException { + if(siteToSiteClient == null) { + final SiteToSiteClient client = Mockito.mock(SiteToSiteClient.class); + final Transaction transaction = Mockito.mock(Transaction.class); + + try { + Mockito.doAnswer((Answer<Object>) invocation -> { final byte[] data = invocation.getArgument(0, byte[].class); dataSent.add(data); return null; - } - }).when(transaction).send(Mockito.any(byte[].class), Mockito.any(Map.class)); + }).when(transaction).send(Mockito.any(byte[].class), Mockito.any(Map.class)); - Mockito.when(client.createTransaction(Mockito.any(TransferDirection.class))).thenReturn(transaction); - } catch (final Exception e) { - e.printStackTrace(); - Assert.fail(e.toString()); + when(client.createTransaction(Mockito.any(TransferDirection.class))).thenReturn(transaction); + } catch (final Exception e) { + e.printStackTrace(); + Assert.fail(e.toString()); + } + siteToSiteClient = client; } - - return client; } } diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteProvenanceReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteProvenanceReportingTask.java index dd153c2..5202e03 100644 --- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteProvenanceReportingTask.java +++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteProvenanceReportingTask.java @@ -677,27 +677,25 @@ public class TestSiteToSiteProvenanceReportingTask { final List<byte[]> dataSent = new ArrayList<>(); @Override - protected SiteToSiteClient getClient() { - final SiteToSiteClient client = Mockito.mock(SiteToSiteClient.class); - final Transaction transaction = Mockito.mock(Transaction.class); - - try { - Mockito.doAnswer(new Answer<Object>() { - @Override - public Object answer(final InvocationOnMock invocation) throws Throwable { + public void setup(ReportingContext reportContext) throws IOException { + if(siteToSiteClient == null) { + final SiteToSiteClient client = Mockito.mock(SiteToSiteClient.class); + final Transaction transaction = Mockito.mock(Transaction.class); + + try { + Mockito.doAnswer((Answer<Object>) invocation -> { final byte[] data = invocation.getArgument(0, byte[].class); dataSent.add(data); return null; - } - }).when(transaction).send(Mockito.any(byte[].class), Mockito.any(Map.class)); + }).when(transaction).send(Mockito.any(byte[].class), Mockito.any(Map.class)); - when(client.createTransaction(Mockito.any(TransferDirection.class))).thenReturn(transaction); - } catch (final Exception e) { - e.printStackTrace(); - Assert.fail(e.toString()); + when(client.createTransaction(Mockito.any(TransferDirection.class))).thenReturn(transaction); + } catch (final Exception e) { + e.printStackTrace(); + Assert.fail(e.toString()); + } + siteToSiteClient = client; } - - return client; } public List<byte[]> getDataSent() { diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteStatusReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteStatusReportingTask.java index 29bbd86..9914bf1 100644 --- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteStatusReportingTask.java +++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteStatusReportingTask.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.when; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -532,27 +533,25 @@ public class TestSiteToSiteStatusReportingTask { final List<byte[]> dataSent = new ArrayList<>(); @Override - protected SiteToSiteClient getClient() { - final SiteToSiteClient client = Mockito.mock(SiteToSiteClient.class); - final Transaction transaction = Mockito.mock(Transaction.class); - - try { - Mockito.doAnswer(new Answer<Object>() { - @Override - public Object answer(final InvocationOnMock invocation) throws Throwable { + public void setup(ReportingContext reportContext) throws IOException { + if(siteToSiteClient == null) { + final SiteToSiteClient client = Mockito.mock(SiteToSiteClient.class); + final Transaction transaction = Mockito.mock(Transaction.class); + + try { + Mockito.doAnswer((Answer<Object>) invocation -> { final byte[] data = invocation.getArgument(0, byte[].class); dataSent.add(data); return null; - } - }).when(transaction).send(Mockito.any(byte[].class), Mockito.any(Map.class)); - - Mockito.when(client.createTransaction(Mockito.any(TransferDirection.class))).thenReturn(transaction); - } catch (final Exception e) { - e.printStackTrace(); - Assert.fail(e.toString()); + }).when(transaction).send(Mockito.any(byte[].class), Mockito.any(Map.class)); + + when(client.createTransaction(Mockito.any(TransferDirection.class))).thenReturn(transaction); + } catch (final Exception e) { + e.printStackTrace(); + Assert.fail(e.toString()); + } + siteToSiteClient = client; } - - return client; } public List<byte[]> getDataSent() {
