You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ex...@apache.org on 2022/12/30 21:19:31 UTC
[nifi] branch main updated: NIFI-10979 Additional nifi-framework upgrades from JUnit 4 to 5
This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new b74c5b423f NIFI-10979 Additional nifi-framework upgrades from JUnit 4 to 5
b74c5b423f is described below
commit b74c5b423fba78b150f43e118993031f9d69e036
Author: dan-s1 <ds...@gmail.com>
AuthorDate: Fri Dec 23 19:10:13 2022 +0000
NIFI-10979 Additional nifi-framework upgrades from JUnit 4 to 5
This closes #6806
Signed-off-by: David Handermann <ex...@apache.org>
---
...StandardVersionedComponentSynchronizerTest.java | 22 +-
.../nifi/integration/versioned/ImportFlowIT.java | 2 +-
...pertyBasedNarProviderInitializationContext.java | 28 +-
.../nifi/nar/NarThreadContextClassLoaderTest.java | 36 +-
.../java/org/apache/nifi/nar/NarUnpackerTest.java | 15 +-
.../apache/nifi/nar/TestInstanceClassLoader.java | 10 +-
.../repository/TestStandardRepositoryRecord.java | 8 +-
.../authorization/ShellUserGroupProviderIT.java | 387 ---------------------
.../remote/SocketRemoteSiteListenerTest.groovy | 24 +-
.../remote/StandardPublicPortGroovyTest.groovy | 114 ------
.../nifi/remote/TestHttpRemoteSiteListener.java | 56 ++-
.../nifi/remote/TestPeerDescriptionModifier.java | 96 +++--
.../nifi/remote/TestSocketRemoteSiteListener.java | 11 +-
.../apache/nifi/remote/TestStandardPublicPort.java | 18 +-
.../nifi/remote/TestStandardRemoteGroupPort.java | 10 +-
.../remote/TestStandardSiteToSiteProtocol.java | 116 ------
.../http/TestHttpFlowFileServerProtocol.java | 106 ++----
.../socket/TestSocketFlowFileServerProtocol.java | 8 +-
.../prioritizer/NewestFirstPrioritizerTest.java | 20 +-
.../prioritizer/OldestFirstPrioritizerTest.java | 25 +-
.../PriorityAttributePrioritizerTest.java | 34 +-
21 files changed, 229 insertions(+), 917 deletions(-)
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/test/java/org/apache/nifi/flow/synchronization/StandardVersionedComponentSynchronizerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/test/java/org/apache/nifi/flow/synchronization/StandardVersionedComponentSynchronizerTest.java
index 8a91c011ec..5d3a697c28 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/test/java/org/apache/nifi/flow/synchronization/StandardVersionedComponentSynchronizerTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/test/java/org/apache/nifi/flow/synchronization/StandardVersionedComponentSynchronizerTest.java
@@ -67,8 +67,8 @@ import org.apache.nifi.processor.Relationship;
import org.apache.nifi.registry.flow.mapping.FlowMappingOptions;
import org.apache.nifi.scheduling.ExecutionNode;
import org.apache.nifi.scheduling.SchedulingStrategy;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
@@ -138,7 +138,7 @@ public class StandardVersionedComponentSynchronizerTest {
private final Set<String> queuesWithData = Collections.synchronizedSet(new HashSet<>());
private final Bundle bundle = new Bundle("group", "artifact", "version 1.0");
- @Before
+ @BeforeEach
public void setup() {
final ExtensionManager extensionManager = Mockito.mock(ExtensionManager.class);
final FlowManager flowManager = Mockito.mock(FlowManager.class);
@@ -260,11 +260,9 @@ public class StandardVersionedComponentSynchronizerTest {
private void instrumentComponentNodeMethods(final String uuid, final ComponentNode component) {
when(component.getIdentifier()).thenReturn(uuid);
when(component.getProperties()).thenReturn(Collections.emptyMap());
- when(component.getPropertyDescriptor(anyString())).thenAnswer(invocation -> {
- return new PropertyDescriptor.Builder()
- .name(invocation.getArgument(0, String.class))
- .build();
- });
+ when(component.getPropertyDescriptor(anyString())).thenAnswer(invocation -> new PropertyDescriptor.Builder()
+ .name(invocation.getArgument(0, String.class))
+ .build());
when(component.getBundleCoordinate()).thenReturn(new BundleCoordinate("group", "artifact", "version 1.0"));
}
@@ -375,9 +373,7 @@ public class StandardVersionedComponentSynchronizerTest {
synchronizationOptions = createQuickFailSynchronizationOptions(FlowSynchronizationOptions.ComponentStopTimeoutAction.THROW_TIMEOUT_EXCEPTION);
- assertThrows(TimeoutException.class, () -> {
- synchronizer.synchronize(processorA, versionedProcessor, group, synchronizationOptions);
- });
+ assertThrows(TimeoutException.class, () -> synchronizer.synchronize(processorA, versionedProcessor, group, synchronizationOptions));
verifyStopped(processorA);
verifyNotRestarted(processorA);
@@ -466,9 +462,7 @@ public class StandardVersionedComponentSynchronizerTest {
synchronizationOptions = createQuickFailSynchronizationOptions(FlowSynchronizationOptions.ComponentStopTimeoutAction.THROW_TIMEOUT_EXCEPTION);
- assertThrows(TimeoutException.class, () -> {
- synchronizer.synchronize(connectionAB, versionedConnection, group, synchronizationOptions);
- });
+ assertThrows(TimeoutException.class, () -> synchronizer.synchronize(connectionAB, versionedConnection, group, synchronizationOptions));
// Ensure that we terminate the source
verify(processorA, times(0)).terminate();
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/integration/versioned/ImportFlowIT.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/integration/versioned/ImportFlowIT.java
index daaf8e4d46..f127acd7f5 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/integration/versioned/ImportFlowIT.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/integration/versioned/ImportFlowIT.java
@@ -56,7 +56,7 @@ import org.apache.nifi.registry.flow.diff.StandardFlowComparator;
import org.apache.nifi.registry.flow.mapping.InstantiatedVersionedProcessGroup;
import org.apache.nifi.registry.flow.mapping.NiFiRegistryFlowMapper;
import org.apache.nifi.util.FlowDifferenceFilters;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.Collection;
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-loading-utils/src/test/java/org/apache/nifi/nar/TestPropertyBasedNarProviderInitializationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-loading-utils/src/test/java/org/apache/nifi/nar/TestPropertyBasedNarProviderInitializationContext.java
index c0ba0c5911..a0b159091b 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-loading-utils/src/test/java/org/apache/nifi/nar/TestPropertyBasedNarProviderInitializationContext.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-loading-utils/src/test/java/org/apache/nifi/nar/TestPropertyBasedNarProviderInitializationContext.java
@@ -18,17 +18,19 @@ package org.apache.nifi.nar;
import org.apache.nifi.security.util.TlsException;
import org.apache.nifi.util.NiFiProperties;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
import java.util.HashMap;
import java.util.Map;
-@RunWith(MockitoJUnitRunner.class)
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@ExtendWith(MockitoExtension.class)
public class TestPropertyBasedNarProviderInitializationContext {
private static final String PROVIDER_NAME = "external";
@@ -45,7 +47,7 @@ public class TestPropertyBasedNarProviderInitializationContext {
// then
Mockito.verify(properties, Mockito.times(1)).getPropertiesWithPrefix(PREFIX);
- Assert.assertTrue(result.isEmpty());
+ assertTrue(result.isEmpty());
}
@Test
@@ -61,7 +63,7 @@ public class TestPropertyBasedNarProviderInitializationContext {
// then
Mockito.verify(properties, Mockito.times(1)).getPropertiesWithPrefix(PREFIX);
- Assert.assertTrue(result.isEmpty());
+ assertTrue(result.isEmpty());
}
@Test
@@ -77,7 +79,7 @@ public class TestPropertyBasedNarProviderInitializationContext {
// then
Mockito.verify(properties, Mockito.times(1)).getPropertiesWithPrefix(PREFIX);
- Assert.assertTrue(result.isEmpty());
+ assertTrue(result.isEmpty());
}
@Test
@@ -94,10 +96,10 @@ public class TestPropertyBasedNarProviderInitializationContext {
// then
Mockito.verify(properties, Mockito.times(1)).getPropertiesWithPrefix(PREFIX);
- Assert.assertEquals(2, result.size());
- Assert.assertTrue(result.containsKey("key1"));
- Assert.assertTrue(result.containsKey("key2"));
- Assert.assertEquals("value1", result.get("key1"));
- Assert.assertEquals("value2", result.get("key2"));
+ assertEquals(2, result.size());
+ assertTrue(result.containsKey("key1"));
+ assertTrue(result.containsKey("key2"));
+ assertEquals("value1", result.get("key1"));
+ assertEquals("value2", result.get("key2"));
}
}
\ No newline at end of file
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/NarThreadContextClassLoaderTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/NarThreadContextClassLoaderTest.java
index 585d9af92c..24a79fb0aa 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/NarThreadContextClassLoaderTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/NarThreadContextClassLoaderTest.java
@@ -16,19 +16,21 @@
*/
package org.apache.nifi.nar;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
import org.apache.nifi.bundle.Bundle;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.util.NiFiProperties;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
public class NarThreadContextClassLoaderTest {
@@ -39,22 +41,21 @@ public class NarThreadContextClassLoaderTest {
ExtensionDiscoveringManager extensionManager = new StandardExtensionDiscoveringManager();
extensionManager.discoverExtensions(systemBundle, Collections.emptySet());
- Object obj = NarThreadContextClassLoader.createInstance(extensionManager, WithPropertiesConstructor.class.getName(),
+ WithPropertiesConstructor withPropertiesConstructor = NarThreadContextClassLoader.createInstance(extensionManager, WithPropertiesConstructor.class.getName(),
WithPropertiesConstructor.class, properties);
- assertTrue(obj instanceof WithPropertiesConstructor);
- WithPropertiesConstructor withPropertiesConstructor = (WithPropertiesConstructor) obj;
assertNotNull(withPropertiesConstructor.properties);
}
- @Test(expected = IllegalStateException.class)
- public void validateWithPropertiesConstructorInstantiationFailure() throws Exception {
+ @Test
+ public void validateWithPropertiesConstructorInstantiationFailure() {
Map<String, String> additionalProperties = new HashMap<>();
additionalProperties.put("fail", "true");
NiFiProperties properties = NiFiProperties.createBasicNiFiProperties("src/test/resources/nifi.properties", additionalProperties);
Bundle systemBundle = SystemBundle.create(properties);
ExtensionDiscoveringManager extensionManager = new StandardExtensionDiscoveringManager();
extensionManager.discoverExtensions(systemBundle, Collections.emptySet());
- NarThreadContextClassLoader.createInstance(extensionManager, WithPropertiesConstructor.class.getName(), WithPropertiesConstructor.class, properties);
+ assertThrows(IllegalStateException.class,
+ () -> NarThreadContextClassLoader.createInstance(extensionManager, WithPropertiesConstructor.class.getName(), WithPropertiesConstructor.class, properties));
}
@Test
@@ -63,16 +64,11 @@ public class NarThreadContextClassLoaderTest {
Bundle systemBundle = SystemBundle.create(properties);
ExtensionDiscoveringManager extensionManager = new StandardExtensionDiscoveringManager();
extensionManager.discoverExtensions(systemBundle, Collections.emptySet());
- assertTrue(NarThreadContextClassLoader.createInstance(extensionManager, WithDefaultConstructor.class.getName(),
- WithDefaultConstructor.class, properties) instanceof WithDefaultConstructor);
+ assertInstanceOf(WithDefaultConstructor.class, NarThreadContextClassLoader.createInstance(extensionManager, WithDefaultConstructor.class.getName(), WithDefaultConstructor.class, properties));
}
public static class WithPropertiesConstructor extends AbstractProcessor {
- private NiFiProperties properties;
-
- public WithPropertiesConstructor() {
-
- }
+ private final NiFiProperties properties;
public WithPropertiesConstructor(NiFiProperties properties) {
if (properties.getProperty("fail") != null) {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java
index e54f9dc773..beb673f0a8 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java
@@ -17,9 +17,8 @@
package org.apache.nifi.nar;
import org.apache.nifi.util.NiFiProperties;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.IOException;
@@ -39,13 +38,13 @@ import java.util.Set;
import java.util.stream.Stream;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public class NarUnpackerTest {
- @BeforeClass
+ @BeforeAll
public static void copyResources() throws IOException {
final Path sourcePath = Paths.get("./src/test/resources");
@@ -106,7 +105,7 @@ public class NarUnpackerTest {
assertEquals(expectedNars.size(), extensionFiles.length);
for (File extensionFile : extensionFiles) {
- Assert.assertTrue(expectedNars.contains(extensionFile.getName()));
+ assertTrue(expectedNars.contains(extensionFile.getName()));
}
}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/TestInstanceClassLoader.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/TestInstanceClassLoader.java
index 12256faf8c..e5f99c745e 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/TestInstanceClassLoader.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/TestInstanceClassLoader.java
@@ -16,17 +16,17 @@
*/
package org.apache.nifi.nar;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestInstanceClassLoader {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-repository-models/src/test/java/org/apache/nifi/controller/repository/TestStandardRepositoryRecord.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-repository-models/src/test/java/org/apache/nifi/controller/repository/TestStandardRepositoryRecord.java
index 7c0807ca36..6570402c69 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-repository-models/src/test/java/org/apache/nifi/controller/repository/TestStandardRepositoryRecord.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-repository-models/src/test/java/org/apache/nifi/controller/repository/TestStandardRepositoryRecord.java
@@ -16,15 +16,15 @@
*/
package org.apache.nifi.controller.repository;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public class TestStandardRepositoryRecord {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-shell-authorizer/src/test/java/org/apache/nifi/authorization/ShellUserGroupProviderIT.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-shell-authorizer/src/test/java/org/apache/nifi/authorization/ShellUserGroupProviderIT.java
deleted file mode 100644
index 57ace6dd3e..0000000000
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-shell-authorizer/src/test/java/org/apache/nifi/authorization/ShellUserGroupProviderIT.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization;
-
-import org.apache.nifi.authorization.exception.AuthorizerCreationException;
-import org.apache.nifi.authorization.util.ShellRunner;
-import org.apache.nifi.util.MockPropertyValue;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Assume;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.rules.TemporaryFolder;
-import org.mockito.Mockito;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.utility.MountableFile;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-
-
-public class ShellUserGroupProviderIT {
- private static final Logger logger = LoggerFactory.getLogger(ShellUserGroupProviderIT.class);
-
- // These images are publicly available on the hub.docker.com, and the source to each
- // is available on github. In lieu of using named images, the Dockerfiles could be
- // migrated into module and referenced in the testcontainer setup.
- private final static String ALPINE_IMAGE = "natural/alpine-sshd:latest";
- private final static String CENTOS_IMAGE = "natural/centos-sshd:latest";
- private final static String DEBIAN_IMAGE = "natural/debian-sshd:latest";
- private final static String UBUNTU_IMAGE = "natural/ubuntu-sshd:latest";
- private final static List<String> TEST_CONTAINER_IMAGES =
- Arrays.asList(
- ALPINE_IMAGE,
- CENTOS_IMAGE,
- DEBIAN_IMAGE,
- UBUNTU_IMAGE
- );
-
- private final static String CONTAINER_SSH_AUTH_KEYS = "/root/.ssh/authorized_keys";
- private final static Integer CONTAINER_SSH_PORT = 22;
-
- private final String KNOWN_USER = "root";
- private final String KNOWN_UID = "0";
-
- @SuppressWarnings("FieldCanBeLocal")
- private final String KNOWN_GROUP = "root";
-
- @SuppressWarnings("FieldCanBeLocal")
- private final String OTHER_GROUP = "wheel"; // e.g., macos
- private final String KNOWN_GID = "0";
-
- // We're using this knob to control the test runs on Travis. The issue there is that tests
- // running on Travis do not have `getent`, thus not behaving like a typical Linux installation.
- protected static boolean systemCheckFailed = false;
-
- private static String sshPrivKeyFile;
- private static String sshPubKeyFile;
-
- private AuthorizerConfigurationContext authContext = Mockito.mock(AuthorizerConfigurationContext.class);
- private ShellUserGroupProvider localProvider;
- private UserGroupProviderInitializationContext initContext;
-
- private static ShellRunner shellRunner;
-
- @ClassRule
- static public TemporaryFolder tempFolder = new TemporaryFolder();
-
- @Rule
- public ExpectedException expectedException = ExpectedException.none();
-
- @BeforeClass
- public static void setupOnce() throws IOException {
- sshPrivKeyFile = tempFolder.getRoot().getAbsolutePath() + "/id_rsa";
- sshPubKeyFile = sshPrivKeyFile + ".pub";
-
- shellRunner = new ShellRunner(60);
- try {
- // NB: this command is a bit perplexing: it works without prompt from the shell, but hangs
- // here without the pipe from `yes`:
- shellRunner.runShell("yes | ssh-keygen -C '' -N '' -t rsa -f " + sshPrivKeyFile, "Setup");
- } catch (final IOException ioexc) {
- systemCheckFailed = true;
- logger.error("setupOnce() exception: " + ioexc + "; tests cannot run on this system.");
- return;
- }
-
- // Fix the file permissions to abide by the ssh client
- // requirements:
- Arrays.asList(sshPrivKeyFile, sshPubKeyFile).forEach(name -> {
- final File f = new File(name);
- Assert.assertTrue(f.setReadable(false, false));
- Assert.assertTrue(f.setReadable(true));
- });
- }
-
- @Before
- public void setup() throws IOException {
- authContext = Mockito.mock(AuthorizerConfigurationContext.class);
- initContext = Mockito.mock(UserGroupProviderInitializationContext.class);
-
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.REFRESH_DELAY_PROPERTY))).thenReturn(new MockPropertyValue("10 sec"));
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.EXCLUDE_GROUP_PROPERTY))).thenReturn(new MockPropertyValue(".*d$"));
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.EXCLUDE_USER_PROPERTY))).thenReturn(new MockPropertyValue("^s.*"));
-
- localProvider = new ShellUserGroupProvider();
- try {
- localProvider.initialize(initContext);
- localProvider.onConfigured(authContext);
- } catch (final Exception exc) {
- systemCheckFailed = true;
- logger.error("setup() exception: " + exc + "; tests cannot run on this system.");
- return;
- }
- Assert.assertEquals(10000, localProvider.getRefreshDelay());
- }
-
- @After
- public void tearDown() {
- localProvider.preDestruction();
- }
-
- private GenericContainer createContainer(String image) throws IOException, InterruptedException {
- GenericContainer container = new GenericContainer(image)
- .withEnv("SSH_ENABLE_ROOT", "true").withExposedPorts(CONTAINER_SSH_PORT);
- container.start();
-
- // This can go into the docker images:
- container.execInContainer("mkdir", "-p", "/root/.ssh");
- container.copyFileToContainer(MountableFile.forHostPath(sshPubKeyFile), CONTAINER_SSH_AUTH_KEYS);
- return container;
- }
-
- private UserGroupProvider createRemoteProvider(GenericContainer container) {
- final ShellCommandsProvider remoteCommands =
- RemoteShellCommands.wrapOtherProvider(new NssShellCommands(),
- sshPrivKeyFile,
- container.getContainerIpAddress(),
- container.getMappedPort(CONTAINER_SSH_PORT));
-
- ShellUserGroupProvider remoteProvider = new ShellUserGroupProvider();
- remoteProvider.setCommandsProvider(remoteCommands);
- remoteProvider.initialize(initContext);
- remoteProvider.onConfigured(authContext);
- return remoteProvider;
- }
-
- @Test
- public void testTooShortDelayIntervalThrowsException() throws AuthorizerCreationException {
- final AuthorizerConfigurationContext authContext = Mockito.mock(AuthorizerConfigurationContext.class);
- final ShellUserGroupProvider localProvider = new ShellUserGroupProvider();
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.REFRESH_DELAY_PROPERTY))).thenReturn(new MockPropertyValue("1 milliseconds"));
-
- expectedException.expect(AuthorizerCreationException.class);
- expectedException.expectMessage("The Refresh Delay '1 milliseconds' is below the minimum value of '10000 ms'");
-
- localProvider.onConfigured(authContext);
- }
-
-
- @Test
- public void testInvalidGroupExcludeExpressionsThrowsException() throws AuthorizerCreationException {
- AuthorizerConfigurationContext authContext = Mockito.mock(AuthorizerConfigurationContext.class);
- ShellUserGroupProvider localProvider = new ShellUserGroupProvider();
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.REFRESH_DELAY_PROPERTY))).thenReturn(new MockPropertyValue("3 minutes"));
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.EXCLUDE_GROUP_PROPERTY))).thenReturn(new MockPropertyValue("(3"));
-
- expectedException.expect(AuthorizerCreationException.class);
- expectedException.expectMessage("Unclosed group near index");
- localProvider.onConfigured(authContext);
-
-
- }
-
- @Test
- public void testInvalidUserExcludeExpressionsThrowsException() throws AuthorizerCreationException {
- AuthorizerConfigurationContext authContext = Mockito.mock(AuthorizerConfigurationContext.class);
- ShellUserGroupProvider localProvider = new ShellUserGroupProvider();
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.REFRESH_DELAY_PROPERTY))).thenReturn(new MockPropertyValue("3 minutes"));
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.EXCLUDE_USER_PROPERTY))).thenReturn(new MockPropertyValue("*"));
-
- expectedException.expect(AuthorizerCreationException.class);
- expectedException.expectMessage("Dangling meta character");
- localProvider.onConfigured(authContext);
- }
-
- @Test
- public void testMissingExcludeExpressionsAllowed() throws AuthorizerCreationException {
- AuthorizerConfigurationContext authContext = Mockito.mock(AuthorizerConfigurationContext.class);
- ShellUserGroupProvider localProvider = new ShellUserGroupProvider();
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.REFRESH_DELAY_PROPERTY))).thenReturn(new MockPropertyValue("3 minutes"));
-
- localProvider.onConfigured(authContext);
- verifyUsersAndUsersMinimumCount(localProvider);
- }
-
- @Test
- public void testInvalidDelayIntervalThrowsException() throws AuthorizerCreationException {
- final AuthorizerConfigurationContext authContext = Mockito.mock(AuthorizerConfigurationContext.class);
- final ShellUserGroupProvider localProvider = new ShellUserGroupProvider();
- Mockito.when(authContext.getProperty(Mockito.eq(ShellUserGroupProvider.REFRESH_DELAY_PROPERTY))).thenReturn(new MockPropertyValue("Not an interval"));
-
- expectedException.expect(AuthorizerCreationException.class);
- expectedException.expectMessage("The Refresh Delay 'Not an interval' is not a valid time interval.");
-
- localProvider.onConfigured(authContext);
- }
-
- @Test
- public void testCacheSizesAfterClearingCaches() {
- localProvider.clearCaches();
- assert localProvider.userCacheSize() == 0;
- assert localProvider.groupCacheSize() == 0;
- }
-
- @Test
- public void testLocalGetUsersAndUsersMinimumCount() {
- verifyUsersAndUsersMinimumCount(localProvider);
- }
-
- @Test
- public void testLocalGetKnownUserByUsername() {
- verifyKnownUserByUsername(localProvider);
- }
-
- @Test
- public void testLocalGetGroupsAndMinimumGroupCount() {
- verifyGroupsAndMinimumGroupCount(localProvider);
- }
-
- @Test
- public void testLocalGetUserByIdentityAndGetGroupMembership() {
- verifyGetUserByIdentityAndGetGroupMembership(localProvider);
- }
-
- // @Ignore // for now
- @Test
- public void testVariousSystemImages() {
- // Here we explicitly clear the system check flag to allow the remote checks that follow:
- systemCheckFailed = false;
- Assume.assumeTrue(isSSHAvailable());
-
- TEST_CONTAINER_IMAGES.forEach(image -> {
- GenericContainer container;
- UserGroupProvider remoteProvider;
- logger.debug("creating container from image: " + image);
-
- try {
- container = createContainer(image);
- } catch (final Exception exc) {
- logger.error("create container exception: " + exc);
- return;
- }
- try {
- remoteProvider = createRemoteProvider(container);
- } catch (final Exception exc) {
- logger.error("create user provider exception: " + exc);
- return;
- }
-
- try {
- verifyUsersAndUsersMinimumCount(remoteProvider);
- verifyKnownUserByUsername(remoteProvider);
- verifyGroupsAndMinimumGroupCount(remoteProvider);
- verifyGetUserByIdentityAndGetGroupMembership(remoteProvider);
- } catch (final Exception e) {
- // Some environments don't allow our tests to work.
- logger.error("Exception running remote provider on image: " + image + ", exception: " + e);
- }
-
- container.stop();
- remoteProvider.preDestruction();
- logger.debug("finished with container image: " + image);
- });
- }
-
- // TODO: Make test which retrieves list of users and then getUserByIdentity to ensure the user is populated in the response
-
-
-
- /**
- * Ensures that the test can run because Docker is available and the remote instance can be reached via ssh.
- *
- * @return true if Docker is available on this OS
- */
- private boolean isSSHAvailable() {
- return !systemCheckFailed;
- }
-
- /**
- * Tests the provider behavior by getting its users and checking minimum size.
- *
- * @param provider {@link UserGroupProvider}
- */
- private void verifyUsersAndUsersMinimumCount(UserGroupProvider provider) {
- Assume.assumeTrue(isSSHAvailable());
-
- Set<User> users = provider.getUsers();
-
- // This shows that we don't have any users matching the exclude regex, which is likely because those users
- // exist but were excluded:
- for (User user : users) {
- Assert.assertFalse(user.getIdentifier().startsWith("s"));
- }
-
- Assert.assertNotNull(users);
- Assert.assertTrue(users.size() > 0);
- }
-
- /**
- * Tests the provider behavior by getting a known user by id.
- *
- * @param provider {@link UserGroupProvider}
- */
- private void verifyKnownUserByUsername(UserGroupProvider provider) {
- Assume.assumeTrue(isSSHAvailable());
-
- User root = provider.getUserByIdentity(KNOWN_USER);
- Assert.assertNotNull(root);
- Assert.assertEquals(KNOWN_USER, root.getIdentity());
- }
-
- /**
- * Tests the provider behavior by getting its groups and checking minimum size.
- *
- * @param provider {@link UserGroupProvider}
- */
- private void verifyGroupsAndMinimumGroupCount(UserGroupProvider provider) {
- Assume.assumeTrue(isSSHAvailable());
-
- Set<Group> groups = provider.getGroups();
-
- // This shows that we don't have any groups matching the exclude regex, which is likely because those groups
- // exist but were excluded:
- for (Group group : groups) {
- Assert.assertFalse(group.getName().endsWith("d"));
- }
-
- Assert.assertNotNull(groups);
- Assert.assertTrue(groups.size() > 0);
- }
-
- /**
- * Tests the provider behavior by getting a known user and checking its group membership.
- *
- * @param provider {@link UserGroupProvider}
- */
- private void verifyGetUserByIdentityAndGetGroupMembership(UserGroupProvider provider) {
- Assume.assumeTrue(isSSHAvailable());
-
- UserAndGroups user = provider.getUserAndGroups(KNOWN_USER);
- Assert.assertNotNull(user);
-
- try {
- Assert.assertTrue(user.getGroups().size() > 0);
- logger.info("root user group count: " + user.getGroups().size());
- } catch (final AssertionError ignored) {
- logger.info("root user and groups group count zero on this system");
- }
-
- Set<Group> groups = provider.getGroups();
- Assert.assertTrue(groups.size() > user.getGroups().size());
- }
-}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/groovy/org/apache/nifi/remote/SocketRemoteSiteListenerTest.groovy b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/groovy/org/apache/nifi/remote/SocketRemoteSiteListenerTest.groovy
index 681274f313..5d712f7389 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/groovy/org/apache/nifi/remote/SocketRemoteSiteListenerTest.groovy
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/groovy/org/apache/nifi/remote/SocketRemoteSiteListenerTest.groovy
@@ -23,12 +23,9 @@ import org.apache.nifi.security.util.StandardTlsConfiguration
import org.apache.nifi.security.util.TlsConfiguration
import org.apache.nifi.util.NiFiProperties
import org.bouncycastle.jce.provider.BouncyCastleProvider
-import org.junit.After
-import org.junit.Before
-import org.junit.BeforeClass
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.junit.runners.JUnit4
+import org.junit.jupiter.api.AfterEach
+import org.junit.jupiter.api.BeforeAll
+import org.junit.jupiter.api.Test
import org.slf4j.Logger
import org.slf4j.LoggerFactory
@@ -36,8 +33,9 @@ import javax.net.ssl.SSLContext
import javax.net.ssl.SSLServerSocket
import java.security.Security
-@RunWith(JUnit4.class)
-class SocketRemoteSiteListenerTest extends GroovyTestCase {
+import static org.junit.jupiter.api.Assertions.assertTrue
+
+class SocketRemoteSiteListenerTest {
private static final Logger logger = LoggerFactory.getLogger(SocketRemoteSiteListenerTest.class)
private static final String KEYSTORE_PATH = "src/test/resources/localhost-ks.jks"
@@ -71,7 +69,7 @@ class SocketRemoteSiteListenerTest extends GroovyTestCase {
private SocketRemoteSiteListener srsListener
- @BeforeClass
+ @BeforeAll
static void setUpOnce() throws Exception {
Security.addProvider(new BouncyCastleProvider())
@@ -83,11 +81,7 @@ class SocketRemoteSiteListenerTest extends GroovyTestCase {
sslContext = SslContextFactory.createSslContext(tlsConfiguration)
}
- @Before
- void setUp() {
- }
-
- @After
+ @AfterEach
void tearDown() {
if (srsListener) {
srsListener.stop()
@@ -126,6 +120,6 @@ class SocketRemoteSiteListenerTest extends GroovyTestCase {
SSLServerSocket sslServerSocket = srsListener.createServerSocket() as SSLServerSocket
logger.info("Created SSL server socket: ${KeyStoreUtils.sslServerSocketToString(sslServerSocket)}" as String)
assertProtocolVersions(sslServerSocket.enabledProtocols, TlsConfiguration.getCurrentSupportedTlsProtocolVersions())
- assert sslServerSocket.needClientAuth
+ assertTrue(sslServerSocket.needClientAuth)
}
}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/groovy/org/apache/nifi/remote/StandardPublicPortGroovyTest.groovy b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/groovy/org/apache/nifi/remote/StandardPublicPortGroovyTest.groovy
deleted file mode 100644
index 3a09a786f5..0000000000
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/groovy/org/apache/nifi/remote/StandardPublicPortGroovyTest.groovy
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.remote
-
-import org.apache.nifi.authorization.Authorizer
-import org.apache.nifi.connectable.Connectable
-import org.apache.nifi.connectable.ConnectableType
-import org.apache.nifi.controller.ProcessScheduler
-import org.apache.nifi.remote.protocol.CommunicationsSession
-import org.apache.nifi.remote.protocol.ServerProtocol
-import org.apache.nifi.reporting.BulletinRepository
-import org.apache.nifi.util.NiFiProperties
-import org.junit.After
-import org.junit.Before
-import org.junit.BeforeClass
-import org.junit.Ignore
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.junit.runners.JUnit4
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-@RunWith(JUnit4.class)
-class StandardPublicPortGroovyTest extends GroovyTestCase {
- private static final Logger logger = LoggerFactory.getLogger(StandardPublicPortGroovyTest.class)
-
- @BeforeClass
- static void setUpOnce() throws Exception {
- logger.metaClass.methodMissing = { String name, args ->
- logger.info("[${name?.toUpperCase()}] ${(args as List).join(" ")}")
- }
- }
-
- @Before
- void setUp() {
-
- }
-
- @After
- void tearDown() {
-
- }
-
- private static PublicPort createPublicPort(NiFiProperties niFiProperties) {
- Authorizer mockAuthorizer = [:] as Authorizer
- BulletinRepository mockBulletinRepository = [:] as BulletinRepository
- ProcessScheduler mockProcessScheduler = [registerEvent: { Connectable worker ->
- logger.mock("Registered event for worker: ${worker}")
- }] as ProcessScheduler
-
- StandardPublicPort spp = new StandardPublicPort("id", "name", TransferDirection.RECEIVE, ConnectableType.INPUT_PORT, mockAuthorizer, mockBulletinRepository, mockProcessScheduler, false, niFiProperties.getBoredYieldDuration(), [])
- logger.info("Created SPP with mocked collaborators: ${spp}")
- spp
- }
-
- // TODO: Implement test
- @Ignore("Not yet implemented")
- @Test
- void testReceiveFlowFilesShouldHandleBlockedRequestDueToContentLength() {
- // Arrange
- Map badProps = [
- (NiFiProperties.WEB_HTTP_HOST) : "localhost",
- (NiFiProperties.WEB_HTTPS_HOST): "secure.host.com",
- (NiFiProperties.WEB_THREADS) : NiFiProperties.DEFAULT_WEB_THREADS
- ]
- NiFiProperties mockProps = [
- getPort : { -> 8080 },
- getSslPort : { -> 8443 },
- getProperty: { String prop ->
- String value = badProps[prop] ?: "no_value"
- logger.mock("getProperty(${prop}) -> ${value}")
- value
- },
- ] as NiFiProperties
-
- StandardPublicPort port = createPublicPort(mockProps)
-
- final int LISTEN_SECS = 5
-
- PeerDescription peerDescription = new PeerDescription("localhost", 8080, false)
- CommunicationsSession mockCommunicationsSession = [:] as CommunicationsSession
- Peer peer = new Peer(peerDescription, mockCommunicationsSession, "http://localhost", "")
- ServerProtocol mockServerProtocol = [getRequestExpiration: { -> 500L }] as ServerProtocol
-
- // Act
- port.onSchedulingStart()
- logger.info("Listening on port for ${LISTEN_SECS} seconds")
- long end = System.nanoTime() + LISTEN_SECS * 1_000_000_000
- def responses = []
- while (System.nanoTime() < end) {
- responses << port.receiveFlowFiles(peer, mockServerProtocol)
- logger.info("Received ${responses[-1]} flowfiles")
- }
- logger.info("Stopped listening on port")
- logger.info("Received ${responses.sum()} total flowfiles")
-
- // Assert
- assert !responses.isEmpty()
- }
-}
\ No newline at end of file
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestHttpRemoteSiteListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestHttpRemoteSiteListener.java
index 099efab42d..8cb4e1b965 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestHttpRemoteSiteListener.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestHttpRemoteSiteListener.java
@@ -16,22 +16,23 @@
*/
package org.apache.nifi.remote;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.remote.protocol.FlowFileTransaction;
import org.apache.nifi.remote.protocol.HandshakeProperties;
import org.apache.nifi.util.NiFiProperties;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
public class TestHttpRemoteSiteListener {
- @BeforeClass
+ @BeforeAll
public static void setup() {
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, "src/test/resources/nifi.properties");
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.remote", "DEBUG");
@@ -42,7 +43,7 @@ public class TestHttpRemoteSiteListener {
HttpRemoteSiteListener transactionManager = HttpRemoteSiteListener.getInstance(new NiFiProperties());
String transactionId = transactionManager.createTransaction();
- assertTrue("Transaction should be active.", transactionManager.isTransactionActive(transactionId));
+ assertTrue(transactionManager.isTransactionActive(transactionId),"Transaction should be active.");
ProcessSession processSession = Mockito.mock(ProcessSession.class);
FlowFileTransaction transaction = new FlowFileTransaction(processSession, null, null, 0, null, null);
@@ -53,7 +54,7 @@ public class TestHttpRemoteSiteListener {
transaction = transactionManager.finalizeTransaction(transactionId);
assertNotNull(transaction);
- assertFalse("Transaction should not be active anymore.", transactionManager.isTransactionActive(transactionId));
+ assertFalse(transactionManager.isTransactionActive(transactionId),"Transaction should not be active anymore.");
}
@@ -62,42 +63,31 @@ public class TestHttpRemoteSiteListener {
HttpRemoteSiteListener transactionManager = HttpRemoteSiteListener.getInstance(new NiFiProperties());
String transactionId = transactionManager.createTransaction();
- assertTrue("Transaction should be active.", transactionManager.isTransactionActive(transactionId));
+ assertTrue(transactionManager.isTransactionActive(transactionId),"Transaction should be active.");
ProcessSession processSession = Mockito.mock(ProcessSession.class);
FlowFileTransaction transaction = new FlowFileTransaction(processSession, null, null, 0, null, null);
transactionManager.holdTransaction(transactionId, transaction, null);
- try {
- transactionManager.holdTransaction(transactionId, transaction, null);
- fail("The same transaction id can't hold another transaction");
- } catch (IllegalStateException e) {
- }
-
+ assertThrows(IllegalStateException.class,
+ () -> transactionManager.holdTransaction(transactionId, transaction, null),
+ "The same transaction id can't hold another transaction");
}
@Test
public void testNoneExistingTransaction() {
HttpRemoteSiteListener transactionManager = HttpRemoteSiteListener.getInstance(new NiFiProperties());
- String transactionId = "does-not-exist-1";
- assertFalse("Transaction should not be active.", transactionManager.isTransactionActive(transactionId));
+ final String transactionId = "does-not-exist-1";
+ assertFalse(transactionManager.isTransactionActive(transactionId),"Transaction should not be active.");
ProcessSession processSession = Mockito.mock(ProcessSession.class);
FlowFileTransaction transaction = new FlowFileTransaction(processSession, null, null, 0, null, null);
- try {
- transactionManager.holdTransaction(transactionId, transaction, null);
- } catch (IllegalStateException e) {
- fail("Transaction can be held even if the transaction id is not valid anymore,"
- + " in order to support large file or slow network.");
- }
-
- transactionId = "does-not-exist-2";
- try {
- transactionManager.finalizeTransaction(transactionId);
- fail("But transaction should not be finalized if it isn't active.");
- } catch (IllegalStateException e) {
- }
- }
+ assertDoesNotThrow(() -> transactionManager.holdTransaction(transactionId, transaction, null),
+ "Transaction can be held even if the transaction id is not valid anymore,"
+ + " in order to support large file or slow network.");
+ assertThrows(IllegalStateException.class, () -> transactionManager.finalizeTransaction("does-not-exist-2"),
+ "But transaction should not be finalized if it isn't active.");
+ }
}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestPeerDescriptionModifier.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestPeerDescriptionModifier.java
index 122cc3ff28..2c9b2e4cf5 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestPeerDescriptionModifier.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestPeerDescriptionModifier.java
@@ -19,17 +19,17 @@ package org.apache.nifi.remote;
import org.apache.nifi.attribute.expression.language.exception.AttributeExpressionLanguageException;
import org.apache.nifi.remote.protocol.SiteToSiteTransportProtocol;
import org.apache.nifi.util.NiFiProperties;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
public class TestPeerDescriptionModifier {
@@ -47,12 +47,10 @@ public class TestPeerDescriptionModifier {
Properties props = new Properties();
props.put("nifi.remote.route.raw.no-host.when", "true");
final NiFiProperties properties = new NiFiProperties(props);
- try {
- new PeerDescriptionModifier(properties);
- fail("Should throw an Exception");
- } catch (IllegalArgumentException e) {
- assertEquals("Found an invalid Site-to-Site route definition [no-host] 'hostname' is not specified.", e.getMessage());
- }
+
+ IllegalArgumentException illegalArgumentException =
+ assertThrows(IllegalArgumentException.class, () -> new PeerDescriptionModifier(properties));
+ assertEquals("Found an invalid Site-to-Site route definition [no-host] 'hostname' is not specified.", illegalArgumentException.getMessage());
}
@Test
@@ -61,12 +59,10 @@ public class TestPeerDescriptionModifier {
props.put("nifi.remote.route.raw.no-port.when", "true");
props.put("nifi.remote.route.raw.no-port.hostname", "proxy.example.com");
final NiFiProperties properties = new NiFiProperties(props);
- try {
- new PeerDescriptionModifier(properties);
- fail("Should throw an Exception");
- } catch (IllegalArgumentException e) {
- assertEquals("Found an invalid Site-to-Site route definition [no-port] 'port' is not specified.", e.getMessage());
- }
+
+ IllegalArgumentException illegalArgumentException =
+ assertThrows(IllegalArgumentException.class, () -> new PeerDescriptionModifier(properties));
+ assertEquals("Found an invalid Site-to-Site route definition [no-port] 'port' is not specified.", illegalArgumentException.getMessage());
}
@Test
@@ -78,14 +74,12 @@ public class TestPeerDescriptionModifier {
props.put("nifi.remote.route.raw.invalid-name.secure", "true");
props.put("nifi.remote.route.raw.invalid-name.unsupported", "true");
final NiFiProperties properties = new NiFiProperties(props);
- try {
- new PeerDescriptionModifier(properties);
- fail("Should throw an Exception");
- } catch (IllegalArgumentException e) {
- assertEquals("Found an invalid Site-to-Site route definition property 'nifi.remote.route.raw.invalid-name.unsupported'." +
- " Routing property keys should be formatted as 'nifi.remote.route.{protocol}.{name}.{routingConfigName}'." +
- " Where {protocol} is 'raw' or 'http', and {routingConfigName} is 'when', 'hostname', 'port' or 'secure'.", e.getMessage());
- }
+
+ IllegalArgumentException illegalArgumentException =
+ assertThrows(IllegalArgumentException.class, () -> new PeerDescriptionModifier(properties));
+ assertEquals("Found an invalid Site-to-Site route definition property 'nifi.remote.route.raw.invalid-name.unsupported'." +
+ " Routing property keys should be formatted as 'nifi.remote.route.{protocol}.{name}.{routingConfigName}'." +
+ " Where {protocol} is 'raw' or 'http', and {routingConfigName} is 'when', 'hostname', 'port' or 'secure'.", illegalArgumentException.getMessage());
}
@Test
@@ -93,14 +87,11 @@ public class TestPeerDescriptionModifier {
Properties props = new Properties();
props.put("nifi.remote.route.", "true");
final NiFiProperties properties = new NiFiProperties(props);
- try {
- new PeerDescriptionModifier(properties);
- fail("Should throw an Exception");
- } catch (IllegalArgumentException e) {
- assertEquals("Found an invalid Site-to-Site route definition property 'nifi.remote.route.'." +
- " Routing property keys should be formatted as 'nifi.remote.route.{protocol}.{name}.{routingConfigName}'." +
- " Where {protocol} is 'raw' or 'http', and {routingConfigName} is 'when', 'hostname', 'port' or 'secure'.", e.getMessage());
- }
+ IllegalArgumentException illegalArgumentException =
+ assertThrows(IllegalArgumentException.class, () -> new PeerDescriptionModifier(properties));
+ assertEquals("Found an invalid Site-to-Site route definition property 'nifi.remote.route.'." +
+ " Routing property keys should be formatted as 'nifi.remote.route.{protocol}.{name}.{routingConfigName}'." +
+ " Where {protocol} is 'raw' or 'http', and {routingConfigName} is 'when', 'hostname', 'port' or 'secure'.", illegalArgumentException.getMessage());
}
@Test
@@ -108,14 +99,11 @@ public class TestPeerDescriptionModifier {
Properties props = new Properties();
props.put("nifi.remote.route.http.", "true");
final NiFiProperties properties = new NiFiProperties(props);
- try {
- new PeerDescriptionModifier(properties);
- fail("Should throw an Exception");
- } catch (IllegalArgumentException e) {
- assertEquals("Found an invalid Site-to-Site route definition property 'nifi.remote.route.http.'." +
- " Routing property keys should be formatted as 'nifi.remote.route.{protocol}.{name}.{routingConfigName}'." +
- " Where {protocol} is 'raw' or 'http', and {routingConfigName} is 'when', 'hostname', 'port' or 'secure'.", e.getMessage());
- }
+ IllegalArgumentException illegalArgumentException =
+ assertThrows(IllegalArgumentException.class, () -> new PeerDescriptionModifier(properties));
+ assertEquals("Found an invalid Site-to-Site route definition property 'nifi.remote.route.http.'." +
+ " Routing property keys should be formatted as 'nifi.remote.route.{protocol}.{name}.{routingConfigName}'." +
+ " Where {protocol} is 'raw' or 'http', and {routingConfigName} is 'when', 'hostname', 'port' or 'secure'.", illegalArgumentException.getMessage());
}
@Test
@@ -130,13 +118,11 @@ public class TestPeerDescriptionModifier {
final PeerDescription source = new PeerDescription("client", 12345, true);
final PeerDescription target = new PeerDescription("nifi0", 8081, true);
- try {
- modifier.modify(source, target,
- SiteToSiteTransportProtocol.RAW, PeerDescriptionModifier.RequestType.Peers, new HashMap<>());
- fail("Should throw an Exception");
- } catch (AttributeExpressionLanguageException e) {
- assertTrue(e.getMessage().startsWith("Invalid Expression"));
- }
+ AttributeExpressionLanguageException attributeExpressionLanguageException =
+ assertThrows(AttributeExpressionLanguageException.class,
+ () -> modifier.modify(source, target,
+ SiteToSiteTransportProtocol.RAW, PeerDescriptionModifier.RequestType.Peers, new HashMap<>()));
+ assertTrue(attributeExpressionLanguageException.getMessage().startsWith("Invalid Expression"));
}
@Test
@@ -190,7 +176,7 @@ public class TestPeerDescriptionModifier {
assertNotNull(modifiedTarget);
assertEquals("proxy1.example.com", modifiedTarget.getHostname());
assertEquals(17491, modifiedTarget.getPort());
- assertEquals(true, modifiedTarget.isSecure());
+ assertTrue(modifiedTarget.isSecure());
// To nifi1.
target = new PeerDescription("nifi1", 8081, true);
@@ -199,7 +185,7 @@ public class TestPeerDescriptionModifier {
assertNotNull(modifiedTarget);
assertEquals("proxy1.example.com", modifiedTarget.getHostname());
assertEquals(17492, modifiedTarget.getPort());
- assertEquals(true, modifiedTarget.isSecure());
+ assertTrue(modifiedTarget.isSecure());
// For requests coming directly, use the original target description.
source = new PeerDescription("192.168.1.101", 23456, true);
@@ -242,7 +228,7 @@ public class TestPeerDescriptionModifier {
assertNotNull(modifiedTarget);
assertEquals("nifi0.example.com", modifiedTarget.getHostname());
assertEquals(17491, modifiedTarget.getPort());
- assertEquals(true, modifiedTarget.isSecure());
+ assertTrue(modifiedTarget.isSecure());
// To nifi1.
target = new PeerDescription("nifi1", 8081, true);
@@ -251,7 +237,7 @@ public class TestPeerDescriptionModifier {
assertNotNull(modifiedTarget);
assertEquals("nifi1.example.com", modifiedTarget.getHostname());
assertEquals(17491, modifiedTarget.getPort());
- assertEquals(true, modifiedTarget.isSecure());
+ assertTrue(modifiedTarget.isSecure());
// For requests coming directly, use the original target description.
source = new PeerDescription("192.168.1.101", 23456, true);
@@ -299,7 +285,7 @@ public class TestPeerDescriptionModifier {
assertNotNull(modifiedTarget);
assertEquals("nifi0.example.com", modifiedTarget.getHostname());
assertEquals(443, modifiedTarget.getPort());
- assertEquals(true, modifiedTarget.isSecure());
+ assertTrue(modifiedTarget.isSecure());
// To nifi1.
proxyHeders.put("X-ProxyHost", "nifi1.example.com:443");
@@ -309,7 +295,7 @@ public class TestPeerDescriptionModifier {
assertNotNull(modifiedTarget);
assertEquals("nifi1.example.com", modifiedTarget.getHostname());
assertEquals(443, modifiedTarget.getPort());
- assertEquals(true, modifiedTarget.isSecure());
+ assertTrue(modifiedTarget.isSecure());
// For requests coming directly, use the original target description.
source = new PeerDescription("192.168.1.101", 23456, true);
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestSocketRemoteSiteListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestSocketRemoteSiteListener.java
index 9fee3a87e9..72b280c32a 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestSocketRemoteSiteListener.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestSocketRemoteSiteListener.java
@@ -20,23 +20,22 @@ import org.apache.nifi.remote.cluster.NodeInformation;
import org.apache.nifi.remote.protocol.RequestType;
import org.apache.nifi.remote.protocol.ServerProtocol;
import org.apache.nifi.util.NiFiProperties;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.lang.reflect.Method;
import java.util.Optional;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
-
public class TestSocketRemoteSiteListener {
- @BeforeClass
+ @BeforeAll
public static void setup() {
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, "src/test/resources/nifi.properties");
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.remote", "DEBUG");
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardPublicPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardPublicPort.java
index 218ea0e512..32f18337ff 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardPublicPort.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardPublicPort.java
@@ -25,8 +25,7 @@ import org.apache.nifi.controller.ProcessScheduler;
import org.apache.nifi.groups.ProcessGroup;
import org.apache.nifi.reporting.BulletinRepository;
import org.apache.nifi.util.NiFiProperties;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -37,6 +36,9 @@ import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
public class TestStandardPublicPort {
private PublicPort createPublicPort(NiFiProperties nifiProperties) {
@@ -72,10 +74,10 @@ public class TestStandardPublicPort {
final PublicPort port = createPublicPort(nifiProperties);
PortAuthorizationResult authResult = port.checkUserAuthorization("CN=node1, OU=nifi.test");
- Assert.assertFalse(authResult.isAuthorized());
+ assertFalse(authResult.isAuthorized());
authResult = port.checkUserAuthorization("node1@nifi.test");
- Assert.assertTrue(authResult.isAuthorized());
+ assertTrue(authResult.isAuthorized());
}
@Test
@@ -97,10 +99,10 @@ public class TestStandardPublicPort {
final PublicPort port = createPublicPort(nifiProperties);
PortAuthorizationResult authResult = port.checkUserAuthorization("CN=node2, OU=nifi.test");
- Assert.assertFalse(authResult.isAuthorized());
+ assertFalse(authResult.isAuthorized());
authResult = port.checkUserAuthorization("CN=node1, OU=nifi.test");
- Assert.assertTrue(authResult.isAuthorized());
+ assertTrue(authResult.isAuthorized());
}
@Test
@@ -125,10 +127,10 @@ public class TestStandardPublicPort {
final PublicPort port = createPublicPort(nifiProperties);
PortAuthorizationResult authResult = port.checkUserAuthorization("CN=node2, OU=nifi.test");
- Assert.assertFalse(authResult.isAuthorized());
+ assertFalse(authResult.isAuthorized());
authResult = port.checkUserAuthorization("CN=node1, OU=nifi.test");
- Assert.assertTrue(authResult.isAuthorized());
+ assertTrue(authResult.isAuthorized());
}
}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardRemoteGroupPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardRemoteGroupPort.java
index f3ea7cd515..368f5b1e60 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardRemoteGroupPort.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardRemoteGroupPort.java
@@ -41,8 +41,8 @@ import org.apache.nifi.util.MockProcessContext;
import org.apache.nifi.util.MockProcessSession;
import org.apache.nifi.util.NiFiProperties;
import org.apache.nifi.util.SharedSessionState;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream;
import java.util.ArrayList;
@@ -56,7 +56,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.IntStream;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Matchers.anyString;
@@ -83,7 +83,7 @@ public class TestStandardRemoteGroupPort {
private MockProcessSession processSession;
private MockProcessContext processContext;
- @BeforeClass
+ @BeforeAll
public static void setup() throws Exception {
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, "src/test/resources/nifi.properties");
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.remote", "DEBUG");
@@ -367,7 +367,7 @@ public class TestStandardRemoteGroupPort {
// Verify transactions, sent packets, and provenance events.
assertEquals(flowFiles.size(), totalPacketsSent.get());
- assertEquals("The number of transactions should match as expected.", expectedNumberOfPackets.length, sentPackets.size());
+ assertEquals(expectedNumberOfPackets.length, sentPackets.size(),"The number of transactions should match as expected.");
final List<ProvenanceEventRecord> provenanceEvents = sessionState.getProvenanceEvents();
// SEND and DROP events for each flowfile
assertEquals(flowFiles.size() * 2, provenanceEvents.size());
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardSiteToSiteProtocol.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardSiteToSiteProtocol.java
deleted file mode 100644
index 8380f8b10c..0000000000
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardSiteToSiteProtocol.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.remote;
-
-//package nifi.remote;
-//
-//import static org.junit.Assert.assertEquals;
-//
-//import java.io.IOException;
-//import java.util.LinkedHashMap;
-//import java.util.List;
-//import java.util.Map;
-//
-//import nifi.cluster.NodeInformation;
-//import nifi.remote.StandardSiteToSiteProtocol.Destination;
-//
-//import org.junit.Assert;
-//import org.junit.Test;
-//import org.mockito.Mockito;
-//
-//public class TestStandardSiteToSiteProtocol {
-//
-// @Test
-// public void testWeightedDistributionWithTwoNodes() throws IOException {
-// final Map<NodeInformation, Destination> destinationMap = new LinkedHashMap<>();
-// final NodeInformation node1 = new NodeInformation("hostA", 80, 90, true, 3);
-// final NodeInformation node2 = new NodeInformation("hostB", 80, 90, true, 500);
-//
-// final Destination node1Destination = new Destination(createRemoteGroupPort("PortA"), null, node1, TransferDirection.SEND, true, null);
-// final Destination node2Destination = new Destination(createRemoteGroupPort("PortB"), null, node2, TransferDirection.SEND, true, null);
-//
-// destinationMap.put(node1, node1Destination);
-// destinationMap.put(node2, node2Destination);
-//
-// final List<Destination> destinations = StandardSiteToSiteProtocol.formulateDestinationList(destinationMap, TransferDirection.SEND);
-// int node1Count = 0, node2Count = 0;
-// for ( final Destination destination : destinations ) {
-// if ( destination.getNodeInformation() == node1 ) {
-// node1Count++;
-// } else if ( destination.getNodeInformation() == node2 ) {
-// node2Count++;
-// } else {
-// Assert.fail("Got Destination for unknkown NodeInformation");
-// }
-// }
-//
-// System.out.println(node1Count);
-// System.out.println(node2Count);
-//
-// final double node1Pct = (double) node1Count / (double) (node1Count + node2Count);
-// assertEquals(0.80, node1Pct, 0.01);
-// // node1 should get the most but is not allowed to have more than approximately 80% of the data.
-// }
-//
-// @Test
-// public void testWeightedDistributionWithThreeNodes() throws IOException {
-// final Map<NodeInformation, Destination> destinationMap = new LinkedHashMap<>();
-// final NodeInformation node1 = new NodeInformation("hostA", 80, 90, true, 3);
-// final NodeInformation node2 = new NodeInformation("hostB", 80, 90, true, 500);
-// final NodeInformation node3 = new NodeInformation("hostC", 80, 90, true, 500);
-//
-// final Destination node1Destination = new Destination(createRemoteGroupPort("PortA"), null, node1, TransferDirection.SEND, true, null);
-// final Destination node2Destination = new Destination(createRemoteGroupPort("PortB"), null, node2, TransferDirection.SEND, true, null);
-// final Destination node3Destination = new Destination(createRemoteGroupPort("PortC"), null, node3, TransferDirection.SEND, true, null);
-//
-// destinationMap.put(node1, node1Destination);
-// destinationMap.put(node2, node2Destination);
-// destinationMap.put(node3, node3Destination);
-//
-// final List<Destination> destinations = StandardSiteToSiteProtocol.formulateDestinationList(destinationMap, TransferDirection.SEND);
-// int node1Count = 0, node2Count = 0, node3Count = 0;
-// for ( final Destination destination : destinations ) {
-// if ( destination.getNodeInformation() == node1 ) {
-// node1Count++;
-// } else if ( destination.getNodeInformation() == node2 ) {
-// node2Count++;
-// } else if ( destination.getNodeInformation() == node3 ) {
-// node3Count++;
-// } else {
-// Assert.fail("Got Destination for unknkown NodeInformation");
-// }
-// }
-//
-// System.out.println(node1Count);
-// System.out.println(node2Count);
-// System.out.println(node3Count);
-//
-// final double node1Pct = (double) node1Count / (double) (node1Count + node2Count + node3Count);
-// final double node2Pct = (double) node2Count / (double) (node1Count + node2Count + node3Count);
-// final double node3Pct = (double) node3Count / (double) (node1Count + node2Count + node3Count);
-//
-// assertEquals(0.5, node1Pct, 0.02);
-// assertEquals(0.25, node2Pct, 0.02);
-// assertEquals(node2Pct, node3Pct, 0.02);
-// }
-//
-// private RemoteGroupPort createRemoteGroupPort(final String portName) {
-// RemoteGroupPort port = Mockito.mock(RemoteGroupPort.class);
-// Mockito.when(port.getName()).thenReturn(portName);
-// return port;
-// }
-//}
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/http/TestHttpFlowFileServerProtocol.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/http/TestHttpFlowFileServerProtocol.java
index e524528ad3..7f6b5ee288 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/http/TestHttpFlowFileServerProtocol.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/http/TestHttpFlowFileServerProtocol.java
@@ -48,8 +48,8 @@ import org.apache.nifi.util.MockProcessContext;
import org.apache.nifi.util.MockProcessSession;
import org.apache.nifi.util.NiFiProperties;
import org.apache.nifi.util.SharedSessionState;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -68,10 +68,10 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
@@ -84,7 +84,7 @@ public class TestHttpFlowFileServerProtocol {
private MockProcessSession processSession;
private MockProcessContext processContext;
- @BeforeClass
+ @BeforeAll
public static void setup() throws Exception {
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, "src/test/resources/nifi.properties");
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.remote", "DEBUG");
@@ -112,22 +112,18 @@ public class TestHttpFlowFileServerProtocol {
}
@Test
- public void testIllegalHandshakeProperty() throws Exception {
+ public void testIllegalHandshakeProperty() {
final HttpFlowFileServerProtocol serverProtocol = getDefaultHttpFlowFileServerProtocol();
final Peer peer = getDefaultPeer();
((HttpServerCommunicationsSession)peer.getCommunicationsSession()).getHandshakeParams().clear();
- try {
- serverProtocol.handshake(peer);
- fail();
- } catch (final HandshakeException e) {
- assertEquals(ResponseCode.MISSING_PROPERTY, e.getResponseCode());
- }
-
+ HandshakeException handshakeException =
+ assertThrows(HandshakeException.class, () -> serverProtocol.handshake(peer));
+ assertEquals(ResponseCode.MISSING_PROPERTY, handshakeException.getResponseCode());
assertFalse(serverProtocol.isHandshakeSuccessful());
}
@Test
- public void testUnknownPort() throws Exception {
+ public void testUnknownPort() {
final HttpFlowFileServerProtocol serverProtocol = getDefaultHttpFlowFileServerProtocol();
final Peer peer = getDefaultPeer();
((HttpServerCommunicationsSession)peer.getCommunicationsSession())
@@ -137,18 +133,14 @@ public class TestHttpFlowFileServerProtocol {
doReturn(true).when(processGroup).isRootGroup();
serverProtocol.setRootProcessGroup(processGroup);
- try {
- serverProtocol.handshake(peer);
- fail();
- } catch (final HandshakeException e) {
- assertEquals(ResponseCode.UNKNOWN_PORT, e.getResponseCode());
- }
-
+ HandshakeException handshakeException =
+ assertThrows(HandshakeException.class, () -> serverProtocol.handshake(peer));
+ assertEquals(ResponseCode.UNKNOWN_PORT, handshakeException.getResponseCode());
assertFalse(serverProtocol.isHandshakeSuccessful());
}
@Test
- public void testUnauthorized() throws Exception {
+ public void testUnauthorized() {
final HttpFlowFileServerProtocol serverProtocol = getDefaultHttpFlowFileServerProtocol();
final Peer peer = getDefaultPeer();
((HttpServerCommunicationsSession)peer.getCommunicationsSession())
@@ -162,18 +154,14 @@ public class TestHttpFlowFileServerProtocol {
doReturn(authResult).when(port).checkUserAuthorization(any(String.class));
serverProtocol.setRootProcessGroup(processGroup);
- try {
- serverProtocol.handshake(peer);
- fail();
- } catch (final HandshakeException e) {
- assertEquals(ResponseCode.UNAUTHORIZED, e.getResponseCode());
- }
-
+ HandshakeException handshakeException =
+ assertThrows(HandshakeException.class, () -> serverProtocol.handshake(peer));
+ assertEquals(ResponseCode.UNAUTHORIZED, handshakeException.getResponseCode());
assertFalse(serverProtocol.isHandshakeSuccessful());
}
@Test
- public void testPortNotInValidState() throws Exception {
+ public void testPortNotInValidState() {
final HttpFlowFileServerProtocol serverProtocol = getDefaultHttpFlowFileServerProtocol();
final Peer peer = getDefaultPeer();
((HttpServerCommunicationsSession)peer.getCommunicationsSession())
@@ -188,18 +176,14 @@ public class TestHttpFlowFileServerProtocol {
doReturn(true).when(authResult).isAuthorized();
serverProtocol.setRootProcessGroup(processGroup);
- try {
- serverProtocol.handshake(peer);
- fail();
- } catch (final HandshakeException e) {
- assertEquals(ResponseCode.PORT_NOT_IN_VALID_STATE, e.getResponseCode());
- }
-
+ HandshakeException handshakeException =
+ assertThrows(HandshakeException.class, () -> serverProtocol.handshake(peer));
+ assertEquals(ResponseCode.PORT_NOT_IN_VALID_STATE, handshakeException.getResponseCode());
assertFalse(serverProtocol.isHandshakeSuccessful());
}
@Test
- public void testPortDestinationFull() throws Exception {
+ public void testPortDestinationFull() {
final HttpFlowFileServerProtocol serverProtocol = getDefaultHttpFlowFileServerProtocol();
final Peer peer = getDefaultPeer();
((HttpServerCommunicationsSession)peer.getCommunicationsSession())
@@ -223,13 +207,9 @@ public class TestHttpFlowFileServerProtocol {
doReturn(true).when(flowFileQueue).isFull();
serverProtocol.setRootProcessGroup(processGroup);
- try {
- serverProtocol.handshake(peer);
- fail();
- } catch (final HandshakeException e) {
- assertEquals(ResponseCode.PORTS_DESTINATION_FULL, e.getResponseCode());
- }
-
+ HandshakeException handshakeException =
+ assertThrows(HandshakeException.class, () -> serverProtocol.handshake(peer));
+ assertEquals(ResponseCode.PORTS_DESTINATION_FULL, handshakeException.getResponseCode());
assertFalse(serverProtocol.isHandshakeSuccessful());
}
@@ -252,17 +232,10 @@ public class TestHttpFlowFileServerProtocol {
final ProcessContext context = null;
final ProcessSession processSession = null;
- try {
- serverProtocol.transferFlowFiles(peer, context, processSession, negotiatedCoded);
- fail("transferFlowFiles should fail since it's already shutdown.");
- } catch (final IllegalStateException e) {
- }
-
- try {
- serverProtocol.receiveFlowFiles(peer, context, processSession, negotiatedCoded);
- fail("receiveFlowFiles should fail since it's already shutdown.");
- } catch (final IllegalStateException e) {
- }
+ assertThrows(IllegalStateException.class,() -> serverProtocol.transferFlowFiles(peer, context, processSession, negotiatedCoded),
+ "transferFlowFiles should fail since it's already shutdown.");
+ assertThrows(IllegalStateException.class, () -> serverProtocol.receiveFlowFiles(peer, context, processSession, negotiatedCoded),
+ "receiveFlowFiles should fail since it's already shutdown.");
}
@Test
@@ -348,12 +321,9 @@ public class TestHttpFlowFileServerProtocol {
});
// Commit transaction
- try {
- serverProtocol.commitTransferTransaction(peer, "client-sent-wrong-checksum");
- fail();
- } catch (final IOException e) {
- assertTrue(e.getMessage().contains("CRC32 Checksum"));
- }
+ IOException ioException =
+ assertThrows(IOException.class, () -> serverProtocol.commitTransferTransaction(peer, "client-sent-wrong-checksum"));
+ assertTrue(ioException.getMessage().contains("CRC32 Checksum"));
}
private Peer transferFlowFiles(final HttpFlowFileServerProtocol serverProtocol, final String transactionId,
@@ -516,12 +486,8 @@ public class TestHttpFlowFileServerProtocol {
// Commit transaction
commsSession.setResponseCode(ResponseCode.BAD_CHECKSUM);
- try {
- serverProtocol.commitReceiveTransaction(peer);
- fail();
- } catch (final IOException e) {
- assertTrue(e.getMessage().contains("Received a BadChecksum response"));
- }
+ IOException ioException = assertThrows(IOException.class, () -> serverProtocol.commitReceiveTransaction(peer));
+ assertTrue(ioException.getMessage().contains("Received a BadChecksum response"));
}
private void receiveFlowFiles(final HttpFlowFileServerProtocol serverProtocol, final String transactionId, final Peer peer, final DataPacket ... dataPackets) throws IOException {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/socket/TestSocketFlowFileServerProtocol.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/socket/TestSocketFlowFileServerProtocol.java
index dbc9c913c1..c34d0fe1f0 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/socket/TestSocketFlowFileServerProtocol.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/socket/TestSocketFlowFileServerProtocol.java
@@ -29,8 +29,8 @@ import org.apache.nifi.remote.protocol.HandshakeProperty;
import org.apache.nifi.remote.protocol.Response;
import org.apache.nifi.remote.protocol.ResponseCode;
import org.apache.nifi.util.NiFiProperties;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.BeforeAll;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -43,14 +43,14 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
public class TestSocketFlowFileServerProtocol {
- @BeforeClass
+ @BeforeAll
public static void setup() throws Exception {
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, "src/test/resources/nifi.properties");
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.remote", "DEBUG");
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java
index 37364e52fe..74b8517f3a 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java
@@ -26,14 +26,14 @@ import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.MockProcessSession;
import org.apache.nifi.util.SharedSessionState;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
+import static org.junit.jupiter.api.Assertions.assertEquals;
public class NewestFirstPrioritizerTest {
@Test
- public void testPrioritizer() throws InstantiationException, IllegalAccessException {
+ public void testPrioritizer() {
final Processor processor = new SimpleProcessor();
final AtomicLong idGenerator = new AtomicLong(0L);
final MockProcessSession session = new MockProcessSession(new SharedSessionState(processor, idGenerator), Mockito.mock(Processor.class));
@@ -46,13 +46,13 @@ public class NewestFirstPrioritizerTest {
final MockFlowFile flowFile2 = session.create();
final NewestFlowFileFirstPrioritizer prioritizer = new NewestFlowFileFirstPrioritizer();
- Assert.assertEquals(0, prioritizer.compare(null, null));
- Assert.assertEquals(-1, prioritizer.compare(flowFile1, null));
- Assert.assertEquals(1, prioritizer.compare(null, flowFile1));
- Assert.assertEquals(0, prioritizer.compare(flowFile1, flowFile1));
- Assert.assertEquals(0, prioritizer.compare(flowFile2, flowFile2));
- Assert.assertEquals(1, prioritizer.compare(flowFile1, flowFile2));
- Assert.assertEquals(-1, prioritizer.compare(flowFile2, flowFile1));
+ assertEquals(0, prioritizer.compare(null, null));
+ assertEquals(-1, prioritizer.compare(flowFile1, null));
+ assertEquals(1, prioritizer.compare(null, flowFile1));
+ assertEquals(0, prioritizer.compare(flowFile1, flowFile1));
+ assertEquals(0, prioritizer.compare(flowFile2, flowFile2));
+ assertEquals(1, prioritizer.compare(flowFile1, flowFile2));
+ assertEquals(-1, prioritizer.compare(flowFile2, flowFile1));
}
public class SimpleProcessor extends AbstractProcessor {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java
index 68a8d7d6f3..32a9c7eb43 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java
@@ -16,8 +16,6 @@
*/
package org.apache.nifi.prioritizer;
-import java.util.concurrent.atomic.AtomicLong;
-
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -26,14 +24,17 @@ import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.MockProcessSession;
import org.apache.nifi.util.SharedSessionState;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
+import java.util.concurrent.atomic.AtomicLong;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
public class OldestFirstPrioritizerTest {
@Test
- public void testPrioritizer() throws InstantiationException, IllegalAccessException {
+ public void testPrioritizer() {
final Processor processor = new SimpleProcessor();
final AtomicLong idGenerator = new AtomicLong(0L);
final MockProcessSession session = new MockProcessSession(new SharedSessionState(processor, idGenerator), Mockito.mock(Processor.class));
@@ -46,13 +47,13 @@ public class OldestFirstPrioritizerTest {
final MockFlowFile flowFile2 = session.create();
final OldestFlowFileFirstPrioritizer prioritizer = new OldestFlowFileFirstPrioritizer();
- Assert.assertEquals(0, prioritizer.compare(null, null));
- Assert.assertEquals(-1, prioritizer.compare(flowFile1, null));
- Assert.assertEquals(1, prioritizer.compare(null, flowFile1));
- Assert.assertEquals(0, prioritizer.compare(flowFile1, flowFile1));
- Assert.assertEquals(0, prioritizer.compare(flowFile2, flowFile2));
- Assert.assertEquals(-1, prioritizer.compare(flowFile1, flowFile2));
- Assert.assertEquals(1, prioritizer.compare(flowFile2, flowFile1));
+ assertEquals(0, prioritizer.compare(null, null));
+ assertEquals(-1, prioritizer.compare(flowFile1, null));
+ assertEquals(1, prioritizer.compare(null, flowFile1));
+ assertEquals(0, prioritizer.compare(flowFile1, flowFile1));
+ assertEquals(0, prioritizer.compare(flowFile2, flowFile2));
+ assertEquals(-1, prioritizer.compare(flowFile1, flowFile2));
+ assertEquals(1, prioritizer.compare(flowFile2, flowFile1));
}
public class SimpleProcessor extends AbstractProcessor {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java
index d6ed2dc98c..b88d3ae1fa 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java
@@ -16,12 +16,6 @@
*/
package org.apache.nifi.prioritizer;
-import static org.junit.Assert.assertEquals;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicLong;
-
import org.apache.nifi.flowfile.attributes.CoreAttributes;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
@@ -31,21 +25,27 @@ import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.MockProcessSession;
import org.apache.nifi.util.SharedSessionState;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
public class PriorityAttributePrioritizerTest {
- static Map<String, String> attrsPri1 = new HashMap<String, String>();
- static Map<String, String> attrsPri2 = new HashMap<String, String>();
- static Map<String, String> attrsPrin1 = new HashMap<String, String>();
- static Map<String, String> attrsPriA = new HashMap<String, String>();
- static Map<String, String> attrsPriB = new HashMap<String, String>();
- static Map<String, String> attrsPriLP = new HashMap<String, String>();
- static Map<String, String> attrsPriLN = new HashMap<String, String>();
+ static Map<String, String> attrsPri1 = new HashMap<>();
+ static Map<String, String> attrsPri2 = new HashMap<>();
+ static Map<String, String> attrsPrin1 = new HashMap<>();
+ static Map<String, String> attrsPriA = new HashMap<>();
+ static Map<String, String> attrsPriB = new HashMap<>();
+ static Map<String, String> attrsPriLP = new HashMap<>();
+ static Map<String, String> attrsPriLN = new HashMap<>();
- @BeforeClass
+ @BeforeAll
public static void init() {
attrsPri1.put(CoreAttributes.PRIORITY.key(), "1");
attrsPri2.put(CoreAttributes.PRIORITY.key(), "2");
@@ -57,7 +57,7 @@ public class PriorityAttributePrioritizerTest {
}
@Test
- public void testPrioritizer() throws InstantiationException, IllegalAccessException {
+ public void testPrioritizer() {
final Processor processor = new SimpleProcessor();
final AtomicLong idGenerator = new AtomicLong(0L);
final MockProcessSession session = new MockProcessSession(new SharedSessionState(processor, idGenerator), Mockito.mock(Processor.class));