NIFI-11116 Refactored nifi-registry-core to use JUnit 5

This closes #6929

Signed-off-by: David Handermann <exceptionfactory@apache.org>
This commit is contained in:
mkalavala 2023-02-06 14:35:00 -05:00 committed by exceptionfactory
parent 99b0cd42ef
commit 889767683c
No known key found for this signature in database
GPG Key ID: 29B6A52D2AAE8DBA
46 changed files with 504 additions and 492 deletions

View File

@ -16,16 +16,16 @@
*/ */
package org.apache.nifi.registry.db; package org.apache.nifi.registry.db;
import org.junit.runner.RunWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.TestExecutionListeners;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
import org.springframework.test.context.transaction.TransactionalTestExecutionListener; import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Transactional @Transactional
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@SpringBootTest(classes = DatabaseTestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.NONE) @SpringBootTest(classes = DatabaseTestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.NONE)
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, TransactionalTestExecutionListener.class}) @TestExecutionListeners({DependencyInjectionTestExecutionListener.class, TransactionalTestExecutionListener.class})
public abstract class DatabaseBaseTest { public abstract class DatabaseBaseTest {

View File

@ -18,12 +18,12 @@ package org.apache.nifi.registry.db;
import org.apache.nifi.registry.security.key.Key; import org.apache.nifi.registry.security.key.Key;
import org.apache.nifi.registry.security.key.KeyService; import org.apache.nifi.registry.security.key.KeyService;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.assertNull;
public class TestDatabaseKeyService extends DatabaseBaseTest { public class TestDatabaseKeyService extends DatabaseBaseTest {

View File

@ -36,7 +36,7 @@ import org.apache.nifi.extension.ExtensionFilterParams;
import org.apache.nifi.extension.manifest.ExtensionType; import org.apache.nifi.extension.manifest.ExtensionType;
import org.apache.nifi.extension.manifest.ProvidedServiceAPI; import org.apache.nifi.extension.manifest.ProvidedServiceAPI;
import org.apache.nifi.registry.service.MetadataService; import org.apache.nifi.registry.service.MetadataService;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import java.util.Arrays; import java.util.Arrays;
@ -47,11 +47,11 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
public class TestDatabaseMetadataService extends DatabaseBaseTest { public class TestDatabaseMetadataService extends DatabaseBaseTest {

View File

@ -19,12 +19,12 @@ package org.apache.nifi.registry.db.migration;
import org.apache.nifi.registry.db.entity.BucketEntity; import org.apache.nifi.registry.db.entity.BucketEntity;
import org.apache.nifi.registry.db.entity.FlowEntity; import org.apache.nifi.registry.db.entity.FlowEntity;
import org.apache.nifi.registry.db.entity.FlowSnapshotEntity; import org.apache.nifi.registry.db.entity.FlowSnapshotEntity;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.util.Date; import java.util.Date;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
public class TestLegacyEntityMapper { public class TestLegacyEntityMapper {

View File

@ -30,12 +30,12 @@ import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.registry.hook.Event; import org.apache.nifi.registry.hook.Event;
import org.apache.nifi.registry.hook.EventFieldName; import org.apache.nifi.registry.hook.EventFieldName;
import org.apache.nifi.registry.hook.EventType; import org.apache.nifi.registry.hook.EventType;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.util.UUID; import java.util.UUID;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestEventFactory { public class TestEventFactory {
@ -47,7 +47,7 @@ public class TestEventFactory {
private User user; private User user;
private UserGroup userGroup; private UserGroup userGroup;
@Before @BeforeEach
public void setup() { public void setup() {
bucket = new Bucket(); bucket = new Bucket();
bucket.setName("Bucket1"); bucket.setName("Bucket1");

View File

@ -22,29 +22,30 @@ import org.apache.nifi.registry.hook.EventHookException;
import org.apache.nifi.registry.hook.EventHookProvider; import org.apache.nifi.registry.hook.EventHookProvider;
import org.apache.nifi.registry.provider.ProviderConfigurationContext; import org.apache.nifi.registry.provider.ProviderConfigurationContext;
import org.apache.nifi.registry.provider.ProviderCreationException; import org.apache.nifi.registry.provider.ProviderCreationException;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestEventService { public class TestEventService {
private CapturingEventHook eventHook; private CapturingEventHook eventHook;
private EventService eventService; private EventService eventService;
@Before @BeforeEach
public void setup() { public void setup() {
eventHook = new CapturingEventHook(); eventHook = new CapturingEventHook();
eventService = new EventService(Collections.singletonList(eventHook)); eventService = new EventService(Collections.singletonList(eventHook));
eventService.postConstruct(); eventService.postConstruct();
} }
@After @AfterEach
public void teardown() throws Exception { public void teardown() throws Exception {
eventService.destroy(); eventService.destroy();
} }
@ -63,13 +64,13 @@ public class TestEventService {
Thread.sleep(1000); Thread.sleep(1000);
final List<Event> events = eventHook.getEvents(); final List<Event> events = eventHook.getEvents();
Assert.assertEquals(2, events.size()); assertEquals(2, events.size());
final Event firstEvent = events.get(0); final Event firstEvent = events.get(0);
Assert.assertEquals(bucketCreatedEvent.getEventType(), firstEvent.getEventType()); assertEquals(bucketCreatedEvent.getEventType(), firstEvent.getEventType());
final Event secondEvent = events.get(1); final Event secondEvent = events.get(1);
Assert.assertEquals(bucketDeletedEvent.getEventType(), secondEvent.getEventType()); assertEquals(bucketDeletedEvent.getEventType(), secondEvent.getEventType());
} }
/** /**

View File

@ -20,18 +20,20 @@ import org.apache.nifi.registry.hook.Event;
import org.apache.nifi.registry.hook.EventField; import org.apache.nifi.registry.hook.EventField;
import org.apache.nifi.registry.hook.EventFieldName; import org.apache.nifi.registry.hook.EventFieldName;
import org.apache.nifi.registry.hook.EventType; import org.apache.nifi.registry.hook.EventType;
import org.junit.Assert; import org.junit.jupiter.api.Test;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
public class TestStandardEvent { public class TestStandardEvent {
@Test(expected = IllegalStateException.class) @Test
public void testInvalidEvent() { public void testInvalidEvent() {
final Event event = new StandardEvent.Builder() final Event event = new StandardEvent.Builder()
.eventType(EventType.CREATE_BUCKET) .eventType(EventType.CREATE_BUCKET)
.build(); .build();
event.validate(); assertThrows(IllegalStateException.class, () -> event.validate());
} }
@Test @Test
@ -41,7 +43,7 @@ public class TestStandardEvent {
.build(); .build();
final EventField field = event.getField(EventFieldName.BUCKET_ID); final EventField field = event.getField(EventFieldName.BUCKET_ID);
Assert.assertNull(field); assertNull(field);
} }
} }

View File

@ -21,15 +21,16 @@ import org.apache.nifi.registry.extension.ExtensionClassLoader;
import org.apache.nifi.registry.extension.ExtensionManager; import org.apache.nifi.registry.extension.ExtensionManager;
import org.apache.nifi.registry.flow.FlowPersistenceProvider; import org.apache.nifi.registry.flow.FlowPersistenceProvider;
import org.apache.nifi.registry.properties.NiFiRegistryProperties; import org.apache.nifi.registry.properties.NiFiRegistryProperties;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.net.URL; import java.net.URL;
import java.util.Properties; import java.util.Properties;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.any; import static org.mockito.Mockito.any;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@ -67,7 +68,7 @@ public class TestStandardProviderFactory {
assertEquals("extension bar", mockBundlePersistenceProvider.getProperties().get("Extension Property 2")); assertEquals("extension bar", mockBundlePersistenceProvider.getProperties().get("Extension Property 2"));
} }
@Test(expected = ProviderFactoryException.class) @Test
public void testGetFlowProviderBeforeInitializingShouldThrowException() { public void testGetFlowProviderBeforeInitializingShouldThrowException() {
final Properties properties = new Properties(); final Properties properties = new Properties();
properties.setProperty(NiFiRegistryProperties.PROVIDERS_CONFIGURATION_FILE, "src/test/resources/provider/providers-good.xml"); properties.setProperty(NiFiRegistryProperties.PROVIDERS_CONFIGURATION_FILE, "src/test/resources/provider/providers-good.xml");
@ -80,10 +81,10 @@ public class TestStandardProviderFactory {
final DataSource dataSource = Mockito.mock(DataSource.class); final DataSource dataSource = Mockito.mock(DataSource.class);
final ProviderFactory providerFactory = new StandardProviderFactory(props, extensionManager, dataSource); final ProviderFactory providerFactory = new StandardProviderFactory(props, extensionManager, dataSource);
providerFactory.getFlowPersistenceProvider(); assertThrows(ProviderFactoryException.class, () -> providerFactory.getFlowPersistenceProvider());
} }
@Test(expected = ProviderFactoryException.class) @Test
public void testProvidersConfigDoesNotExist() { public void testProvidersConfigDoesNotExist() {
final Properties properties = new Properties(); final Properties properties = new Properties();
properties.setProperty(NiFiRegistryProperties.PROVIDERS_CONFIGURATION_FILE, "src/test/resources/provider/providers-does-not-exist.xml"); properties.setProperty(NiFiRegistryProperties.PROVIDERS_CONFIGURATION_FILE, "src/test/resources/provider/providers-does-not-exist.xml");
@ -96,10 +97,10 @@ public class TestStandardProviderFactory {
final DataSource dataSource = Mockito.mock(DataSource.class); final DataSource dataSource = Mockito.mock(DataSource.class);
final ProviderFactory providerFactory = new StandardProviderFactory(props, extensionManager, dataSource); final ProviderFactory providerFactory = new StandardProviderFactory(props, extensionManager, dataSource);
providerFactory.initialize(); assertThrows(ProviderFactoryException.class, () -> providerFactory.initialize());
} }
@Test(expected = ProviderFactoryException.class) @Test
public void testFlowProviderClassNotFound() { public void testFlowProviderClassNotFound() {
final Properties properties = new Properties(); final Properties properties = new Properties();
properties.setProperty(NiFiRegistryProperties.PROVIDERS_CONFIGURATION_FILE, "src/test/resources/provider/providers-class-not-found.xml"); properties.setProperty(NiFiRegistryProperties.PROVIDERS_CONFIGURATION_FILE, "src/test/resources/provider/providers-class-not-found.xml");
@ -114,7 +115,7 @@ public class TestStandardProviderFactory {
final ProviderFactory providerFactory = new StandardProviderFactory(props, extensionManager, dataSource); final ProviderFactory providerFactory = new StandardProviderFactory(props, extensionManager, dataSource);
providerFactory.initialize(); providerFactory.initialize();
providerFactory.getFlowPersistenceProvider(); assertThrows(ProviderFactoryException.class, () -> providerFactory.getFlowPersistenceProvider());
} }
} }

View File

@ -24,9 +24,8 @@ import org.apache.nifi.registry.extension.BundlePersistenceProvider;
import org.apache.nifi.registry.extension.BundleVersionCoordinate; import org.apache.nifi.registry.extension.BundleVersionCoordinate;
import org.apache.nifi.registry.extension.BundleVersionType; import org.apache.nifi.registry.extension.BundleVersionType;
import org.apache.nifi.registry.provider.ProviderConfigurationContext; import org.apache.nifi.registry.provider.ProviderConfigurationContext;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
@ -40,6 +39,11 @@ import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
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.junit.jupiter.api.Assertions.fail;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
public class TestFileSystemBundlePersistenceProvider { public class TestFileSystemBundlePersistenceProvider {
@ -58,7 +62,7 @@ public class TestFileSystemBundlePersistenceProvider {
private File bundleStorageDir; private File bundleStorageDir;
private BundlePersistenceProvider fileSystemBundleProvider; private BundlePersistenceProvider fileSystemBundleProvider;
@Before @BeforeEach
public void setup() throws IOException { public void setup() throws IOException {
bundleStorageDir = new File(EXTENSION_STORAGE_DIR); bundleStorageDir = new File(EXTENSION_STORAGE_DIR);
if (bundleStorageDir.exists()) { if (bundleStorageDir.exists()) {
@ -66,11 +70,11 @@ public class TestFileSystemBundlePersistenceProvider {
bundleStorageDir.delete(); bundleStorageDir.delete();
} }
Assert.assertFalse(bundleStorageDir.exists()); assertFalse(bundleStorageDir.exists());
fileSystemBundleProvider = new FileSystemBundlePersistenceProvider(); fileSystemBundleProvider = new FileSystemBundlePersistenceProvider();
fileSystemBundleProvider.onConfigured(CONFIGURATION_CONTEXT); fileSystemBundleProvider.onConfigured(CONFIGURATION_CONTEXT);
Assert.assertTrue(bundleStorageDir.exists()); assertTrue(bundleStorageDir.exists());
} }
@Test @Test
@ -109,7 +113,7 @@ public class TestFileSystemBundlePersistenceProvider {
try { try {
final String newContent = "new content"; final String newContent = "new content";
createBundleVersion(fileSystemBundleProvider, versionCoordinate, newContent); createBundleVersion(fileSystemBundleProvider, versionCoordinate, newContent);
Assert.fail("Should have thrown exception"); fail("Should have thrown exception");
} catch (BundlePersistenceException e) { } catch (BundlePersistenceException e) {
// expected // expected
} }
@ -136,7 +140,7 @@ public class TestFileSystemBundlePersistenceProvider {
try (final OutputStream out = new ByteArrayOutputStream()) { try (final OutputStream out = new ByteArrayOutputStream()) {
fileSystemBundleProvider.getBundleVersionContent(versionCoordinate, out); fileSystemBundleProvider.getBundleVersionContent(versionCoordinate, out);
final String retrievedContent = new String(((ByteArrayOutputStream) out).toByteArray(), StandardCharsets.UTF_8); final String retrievedContent = new String(((ByteArrayOutputStream) out).toByteArray(), StandardCharsets.UTF_8);
Assert.assertEquals(newContent, retrievedContent); assertEquals(newContent, retrievedContent);
} }
} }
@ -159,18 +163,18 @@ public class TestFileSystemBundlePersistenceProvider {
fileSystemBundleProvider.getBundleVersionContent(versionCoordinate1, out); fileSystemBundleProvider.getBundleVersionContent(versionCoordinate1, out);
final String retrievedContent1 = new String(((ByteArrayOutputStream) out).toByteArray(), StandardCharsets.UTF_8); final String retrievedContent1 = new String(((ByteArrayOutputStream) out).toByteArray(), StandardCharsets.UTF_8);
Assert.assertEquals(content1, retrievedContent1); assertEquals(content1, retrievedContent1);
} }
try (final OutputStream out = new ByteArrayOutputStream()) { try (final OutputStream out = new ByteArrayOutputStream()) {
fileSystemBundleProvider.getBundleVersionContent(versionCoordinate2, out); fileSystemBundleProvider.getBundleVersionContent(versionCoordinate2, out);
final String retrievedContent2 = new String(((ByteArrayOutputStream) out).toByteArray(), StandardCharsets.UTF_8); final String retrievedContent2 = new String(((ByteArrayOutputStream) out).toByteArray(), StandardCharsets.UTF_8);
Assert.assertEquals(content2, retrievedContent2); assertEquals(content2, retrievedContent2);
} }
} }
@Test(expected = BundlePersistenceException.class) @Test
public void testGetWhenDoesNotExist() throws IOException { public void testGetWhenDoesNotExist() throws IOException {
final String bucketId = "b1"; final String bucketId = "b1";
final String groupId = "g1"; final String groupId = "g1";
@ -180,8 +184,7 @@ public class TestFileSystemBundlePersistenceProvider {
try (final OutputStream out = new ByteArrayOutputStream()) { try (final OutputStream out = new ByteArrayOutputStream()) {
final BundleVersionCoordinate versionCoordinate = getVersionCoordinate(bucketId, groupId, artifactId, version, type); final BundleVersionCoordinate versionCoordinate = getVersionCoordinate(bucketId, groupId, artifactId, version, type);
fileSystemBundleProvider.getBundleVersionContent(versionCoordinate, out); assertThrows(BundlePersistenceException.class, () -> fileSystemBundleProvider.getBundleVersionContent(versionCoordinate, out));
Assert.fail("Should have thrown exception");
} }
} }
@ -206,7 +209,7 @@ public class TestFileSystemBundlePersistenceProvider {
// verify it was deleted // verify it was deleted
final File bundleVersionDir = FileSystemBundlePersistenceProvider.getBundleVersionDirectory(bundleStorageDir, versionCoordinate); final File bundleVersionDir = FileSystemBundlePersistenceProvider.getBundleVersionDirectory(bundleStorageDir, versionCoordinate);
final File bundleFile = FileSystemBundlePersistenceProvider.getBundleFile(bundleVersionDir, versionCoordinate); final File bundleFile = FileSystemBundlePersistenceProvider.getBundleFile(bundleVersionDir, versionCoordinate);
Assert.assertFalse(bundleFile.exists()); assertFalse(bundleFile.exists());
} }
@Test @Test
@ -222,7 +225,7 @@ public class TestFileSystemBundlePersistenceProvider {
// verify the bundle version does not already exist // verify the bundle version does not already exist
final File bundleVersionDir = FileSystemBundlePersistenceProvider.getBundleVersionDirectory(bundleStorageDir, versionCoordinate); final File bundleVersionDir = FileSystemBundlePersistenceProvider.getBundleVersionDirectory(bundleStorageDir, versionCoordinate);
final File bundleFile = FileSystemBundlePersistenceProvider.getBundleFile(bundleVersionDir, versionCoordinate); final File bundleFile = FileSystemBundlePersistenceProvider.getBundleFile(bundleVersionDir, versionCoordinate);
Assert.assertFalse(bundleFile.exists()); assertFalse(bundleFile.exists());
// delete the bundle version // delete the bundle version
fileSystemBundleProvider.deleteBundleVersion(versionCoordinate); fileSystemBundleProvider.deleteBundleVersion(versionCoordinate);
@ -249,10 +252,10 @@ public class TestFileSystemBundlePersistenceProvider {
createBundleVersion(fileSystemBundleProvider, versionCoordinate2, content2); createBundleVersion(fileSystemBundleProvider, versionCoordinate2, content2);
verifyBundleVersion(bundleStorageDir, versionCoordinate2, content2); verifyBundleVersion(bundleStorageDir, versionCoordinate2, content2);
Assert.assertEquals(1, bundleStorageDir.listFiles().length); assertEquals(1, bundleStorageDir.listFiles().length);
final BundleCoordinate bundleCoordinate = getBundleCoordinate(bucketId, groupId, artifactId); final BundleCoordinate bundleCoordinate = getBundleCoordinate(bucketId, groupId, artifactId);
fileSystemBundleProvider.deleteAllBundleVersions(bundleCoordinate); fileSystemBundleProvider.deleteAllBundleVersions(bundleCoordinate);
Assert.assertEquals(0, bundleStorageDir.listFiles().length); assertEquals(0, bundleStorageDir.listFiles().length);
} }
@Test @Test
@ -261,10 +264,10 @@ public class TestFileSystemBundlePersistenceProvider {
final String groupId = "g1"; final String groupId = "g1";
final String artifactId = "a1"; final String artifactId = "a1";
Assert.assertEquals(0, bundleStorageDir.listFiles().length); assertEquals(0, bundleStorageDir.listFiles().length);
final BundleCoordinate bundleCoordinate = getBundleCoordinate(bucketId, groupId, artifactId); final BundleCoordinate bundleCoordinate = getBundleCoordinate(bucketId, groupId, artifactId);
fileSystemBundleProvider.deleteAllBundleVersions(bundleCoordinate); fileSystemBundleProvider.deleteAllBundleVersions(bundleCoordinate);
Assert.assertEquals(0, bundleStorageDir.listFiles().length); assertEquals(0, bundleStorageDir.listFiles().length);
} }
private void createBundleVersion(final BundlePersistenceProvider persistenceProvider, private void createBundleVersion(final BundlePersistenceProvider persistenceProvider,
@ -316,10 +319,10 @@ public class TestFileSystemBundlePersistenceProvider {
final File bundleVersionDir = FileSystemBundlePersistenceProvider.getBundleVersionDirectory(storageDir, versionCoordinate); final File bundleVersionDir = FileSystemBundlePersistenceProvider.getBundleVersionDirectory(storageDir, versionCoordinate);
final File bundleFile = FileSystemBundlePersistenceProvider.getBundleFile(bundleVersionDir, versionCoordinate); final File bundleFile = FileSystemBundlePersistenceProvider.getBundleFile(bundleVersionDir, versionCoordinate);
Assert.assertTrue(bundleFile.exists()); assertTrue(bundleFile.exists());
try (InputStream in = new FileInputStream(bundleFile)) { try (InputStream in = new FileInputStream(bundleFile)) {
Assert.assertEquals(contentString, IOUtils.toString(in, StandardCharsets.UTF_8)); assertEquals(contentString, IOUtils.toString(in, StandardCharsets.UTF_8));
} }
} }

View File

@ -19,17 +19,17 @@ package org.apache.nifi.registry.provider.flow;
import org.apache.nifi.registry.db.DatabaseBaseTest; import org.apache.nifi.registry.db.DatabaseBaseTest;
import org.apache.nifi.registry.flow.FlowPersistenceProvider; import org.apache.nifi.registry.flow.FlowPersistenceProvider;
import org.apache.nifi.registry.flow.FlowSnapshotContext; import org.apache.nifi.registry.flow.FlowSnapshotContext;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.assertNull;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
public class TestDatabaseFlowPersistenceProvider extends DatabaseBaseTest { public class TestDatabaseFlowPersistenceProvider extends DatabaseBaseTest {
@ -39,7 +39,7 @@ public class TestDatabaseFlowPersistenceProvider extends DatabaseBaseTest {
private FlowPersistenceProvider persistenceProvider; private FlowPersistenceProvider persistenceProvider;
@Before @BeforeEach
public void setup() { public void setup() {
persistenceProvider = new DatabaseFlowPersistenceProvider(); persistenceProvider = new DatabaseFlowPersistenceProvider();
((DatabaseFlowPersistenceProvider)persistenceProvider).setDataSource(dataSource); ((DatabaseFlowPersistenceProvider)persistenceProvider).setDataSource(dataSource);

View File

@ -20,9 +20,8 @@ import org.apache.commons.io.IOUtils;
import org.apache.nifi.registry.flow.FlowPersistenceProvider; import org.apache.nifi.registry.flow.FlowPersistenceProvider;
import org.apache.nifi.registry.flow.FlowSnapshotContext; import org.apache.nifi.registry.flow.FlowSnapshotContext;
import org.apache.nifi.registry.provider.ProviderConfigurationContext; import org.apache.nifi.registry.provider.ProviderConfigurationContext;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import java.io.File; import java.io.File;
@ -33,6 +32,12 @@ import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
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.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
public class TestFileSystemFlowPersistenceProvider { public class TestFileSystemFlowPersistenceProvider {
@ -51,7 +56,7 @@ public class TestFileSystemFlowPersistenceProvider {
private File flowStorageDir; private File flowStorageDir;
private FileSystemFlowPersistenceProvider fileSystemFlowProvider; private FileSystemFlowPersistenceProvider fileSystemFlowProvider;
@Before @BeforeEach
public void setup() throws IOException { public void setup() throws IOException {
flowStorageDir = new File(FLOW_STORAGE_DIR); flowStorageDir = new File(FLOW_STORAGE_DIR);
if (flowStorageDir.exists()) { if (flowStorageDir.exists()) {
@ -59,11 +64,11 @@ public class TestFileSystemFlowPersistenceProvider {
flowStorageDir.delete(); flowStorageDir.delete();
} }
Assert.assertFalse(flowStorageDir.exists()); assertFalse(flowStorageDir.exists());
fileSystemFlowProvider = new FileSystemFlowPersistenceProvider(); fileSystemFlowProvider = new FileSystemFlowPersistenceProvider();
fileSystemFlowProvider.onConfigured(CONFIGURATION_CONTEXT); fileSystemFlowProvider.onConfigured(CONFIGURATION_CONTEXT);
Assert.assertTrue(flowStorageDir.exists()); assertTrue(flowStorageDir.exists());
} }
@Test @Test
@ -95,7 +100,7 @@ public class TestFileSystemFlowPersistenceProvider {
final byte[] content2 = "XXX".getBytes(StandardCharsets.UTF_8); final byte[] content2 = "XXX".getBytes(StandardCharsets.UTF_8);
try { try {
fileSystemFlowProvider.saveFlowContent(context, content2); fileSystemFlowProvider.saveFlowContent(context, content2);
Assert.fail("Should have thrown exception"); fail("Should have thrown exception");
} catch (Exception e) { } catch (Exception e) {
} }
@ -103,7 +108,7 @@ public class TestFileSystemFlowPersistenceProvider {
// verify the new content wasn't written // verify the new content wasn't written
final File flowSnapshotFile = new File(flowStorageDir, "bucket1/flow1/1/1" + FileSystemFlowPersistenceProvider.SNAPSHOT_EXTENSION); final File flowSnapshotFile = new File(flowStorageDir, "bucket1/flow1/1/1" + FileSystemFlowPersistenceProvider.SNAPSHOT_EXTENSION);
try (InputStream in = new FileInputStream(flowSnapshotFile)) { try (InputStream in = new FileInputStream(flowSnapshotFile)) {
Assert.assertEquals("flow1v1", IOUtils.toString(in, StandardCharsets.UTF_8)); assertEquals("flow1v1", IOUtils.toString(in, StandardCharsets.UTF_8));
} }
} }
@ -113,16 +118,16 @@ public class TestFileSystemFlowPersistenceProvider {
createAndSaveSnapshot(fileSystemFlowProvider,"bucket1", "flow1", 2, "flow1v2"); createAndSaveSnapshot(fileSystemFlowProvider,"bucket1", "flow1", 2, "flow1v2");
final byte[] flow1v1 = fileSystemFlowProvider.getFlowContent("bucket1", "flow1", 1); final byte[] flow1v1 = fileSystemFlowProvider.getFlowContent("bucket1", "flow1", 1);
Assert.assertEquals("flow1v1", new String(flow1v1, StandardCharsets.UTF_8)); assertEquals("flow1v1", new String(flow1v1, StandardCharsets.UTF_8));
final byte[] flow1v2 = fileSystemFlowProvider.getFlowContent("bucket1", "flow1", 2); final byte[] flow1v2 = fileSystemFlowProvider.getFlowContent("bucket1", "flow1", 2);
Assert.assertEquals("flow1v2", new String(flow1v2, StandardCharsets.UTF_8)); assertEquals("flow1v2", new String(flow1v2, StandardCharsets.UTF_8));
} }
@Test @Test
public void testGetWhenDoesNotExist() { public void testGetWhenDoesNotExist() {
final byte[] flow1v1 = fileSystemFlowProvider.getFlowContent("bucket1", "flow1", 1); final byte[] flow1v1 = fileSystemFlowProvider.getFlowContent("bucket1", "flow1", 1);
Assert.assertNull(flow1v1); assertNull(flow1v1);
} }
@Test @Test
@ -133,13 +138,13 @@ public class TestFileSystemFlowPersistenceProvider {
createAndSaveSnapshot(fileSystemFlowProvider, bucketId, flowId, 1, "flow1v1"); createAndSaveSnapshot(fileSystemFlowProvider, bucketId, flowId, 1, "flow1v1");
createAndSaveSnapshot(fileSystemFlowProvider, bucketId, flowId, 2, "flow1v2"); createAndSaveSnapshot(fileSystemFlowProvider, bucketId, flowId, 2, "flow1v2");
Assert.assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1)); assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1));
Assert.assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2)); assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2));
fileSystemFlowProvider.deleteAllFlowContent(bucketId, flowId); fileSystemFlowProvider.deleteAllFlowContent(bucketId, flowId);
Assert.assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1)); assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1));
Assert.assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2)); assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2));
// delete a flow that doesn't exist // delete a flow that doesn't exist
fileSystemFlowProvider.deleteAllFlowContent(bucketId, "some-other-flow"); fileSystemFlowProvider.deleteAllFlowContent(bucketId, "some-other-flow");
@ -156,18 +161,18 @@ public class TestFileSystemFlowPersistenceProvider {
createAndSaveSnapshot(fileSystemFlowProvider, bucketId, flowId, 1, "flow1v1"); createAndSaveSnapshot(fileSystemFlowProvider, bucketId, flowId, 1, "flow1v1");
createAndSaveSnapshot(fileSystemFlowProvider, bucketId, flowId, 2, "flow1v2"); createAndSaveSnapshot(fileSystemFlowProvider, bucketId, flowId, 2, "flow1v2");
Assert.assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1)); assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1));
Assert.assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2)); assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2));
fileSystemFlowProvider.deleteFlowContent(bucketId, flowId, 1); fileSystemFlowProvider.deleteFlowContent(bucketId, flowId, 1);
Assert.assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1)); assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1));
Assert.assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2)); assertNotNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2));
fileSystemFlowProvider.deleteFlowContent(bucketId, flowId, 2); fileSystemFlowProvider.deleteFlowContent(bucketId, flowId, 2);
Assert.assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1)); assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 1));
Assert.assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2)); assertNull(fileSystemFlowProvider.getFlowContent(bucketId, flowId, 2));
// delete a version that doesn't exist // delete a version that doesn't exist
fileSystemFlowProvider.deleteFlowContent(bucketId, flowId, 3); fileSystemFlowProvider.deleteFlowContent(bucketId, flowId, 3);
@ -195,10 +200,10 @@ public class TestFileSystemFlowPersistenceProvider {
// verify the correct snapshot file was created // verify the correct snapshot file was created
final File flowSnapshotFile = new File(flowStorageDir, final File flowSnapshotFile = new File(flowStorageDir,
bucketId + "/" + flowId + "/" + version + "/" + version + FileSystemFlowPersistenceProvider.SNAPSHOT_EXTENSION); bucketId + "/" + flowId + "/" + version + "/" + version + FileSystemFlowPersistenceProvider.SNAPSHOT_EXTENSION);
Assert.assertTrue(flowSnapshotFile.exists()); assertTrue(flowSnapshotFile.exists());
try (InputStream in = new FileInputStream(flowSnapshotFile)) { try (InputStream in = new FileInputStream(flowSnapshotFile)) {
Assert.assertEquals(contentString, IOUtils.toString(in, StandardCharsets.UTF_8)); assertEquals(contentString, IOUtils.toString(in, StandardCharsets.UTF_8));
} }
} }
} }

View File

@ -25,8 +25,8 @@ import org.apache.nifi.registry.metadata.BucketMetadata;
import org.apache.nifi.registry.metadata.FlowMetadata; import org.apache.nifi.registry.metadata.FlowMetadata;
import org.apache.nifi.registry.metadata.FlowSnapshotMetadata; import org.apache.nifi.registry.metadata.FlowSnapshotMetadata;
import org.apache.nifi.registry.service.MetadataService; import org.apache.nifi.registry.service.MetadataService;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
@ -46,7 +46,7 @@ public class TestFlowMetadataSynchronizer {
private List<BucketMetadata> metadata; private List<BucketMetadata> metadata;
private FlowMetadataSynchronizer synchronizer; private FlowMetadataSynchronizer synchronizer;
@Before @BeforeEach
public void setup() { public void setup() {
metadataService = mock(MetadataService.class); metadataService = mock(MetadataService.class);
metadataAwareflowPersistenceProvider = mock(MetadataAwareFlowPersistenceProvider.class); metadataAwareflowPersistenceProvider = mock(MetadataAwareFlowPersistenceProvider.class);

View File

@ -17,8 +17,9 @@
package org.apache.nifi.registry.provider.flow; package org.apache.nifi.registry.provider.flow;
import org.apache.nifi.registry.flow.FlowSnapshotContext; import org.apache.nifi.registry.flow.FlowSnapshotContext;
import org.junit.Assert; import org.junit.jupiter.api.Test;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestStandardFlowSnapshotContext { public class TestStandardFlowSnapshotContext {
@ -44,14 +45,14 @@ public class TestStandardFlowSnapshotContext {
.snapshotTimestamp(timestamp) .snapshotTimestamp(timestamp)
.build(); .build();
Assert.assertEquals(bucketId, context.getBucketId()); assertEquals(bucketId, context.getBucketId());
Assert.assertEquals(bucketName, context.getBucketName()); assertEquals(bucketName, context.getBucketName());
Assert.assertEquals(flowId, context.getFlowId()); assertEquals(flowId, context.getFlowId());
Assert.assertEquals(flowName, context.getFlowName()); assertEquals(flowName, context.getFlowName());
Assert.assertEquals(version, context.getVersion()); assertEquals(version, context.getVersion());
Assert.assertEquals(comments, context.getComments()); assertEquals(comments, context.getComments());
Assert.assertEquals(author, context.getAuthor()); assertEquals(author, context.getAuthor());
Assert.assertEquals(timestamp, context.getSnapshotTimestamp()); assertEquals(timestamp, context.getSnapshotTimestamp());
} }
} }

View File

@ -27,7 +27,7 @@ import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -40,9 +40,9 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer; import java.util.function.Consumer;
import static org.junit.Assert.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class TestGitFlowPersistenceProvider { public class TestGitFlowPersistenceProvider {

View File

@ -22,7 +22,7 @@ import org.apache.nifi.registry.properties.NiFiRegistryProperties;
import org.apache.nifi.registry.provider.ProviderCreationException; import org.apache.nifi.registry.provider.ProviderCreationException;
import org.apache.nifi.registry.provider.ProviderFactory; import org.apache.nifi.registry.provider.ProviderFactory;
import org.apache.nifi.registry.provider.StandardProviderFactory; import org.apache.nifi.registry.provider.StandardProviderFactory;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import javax.sql.DataSource; import javax.sql.DataSource;
@ -30,12 +30,13 @@ import javax.sql.DataSource;
import java.net.URL; import java.net.URL;
import java.util.Properties; import java.util.Properties;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
public class TestScriptEventHookProvider { public class TestScriptEventHookProvider {
@Test(expected = ProviderCreationException.class) @Test
public void testBadScriptProvider() { public void testBadScriptProvider() {
final Properties properties = new Properties(); final Properties properties = new Properties();
properties.setProperty(NiFiRegistryProperties.PROVIDERS_CONFIGURATION_FILE, "src/test/resources/provider/hook/bad-script-provider.xml"); properties.setProperty(NiFiRegistryProperties.PROVIDERS_CONFIGURATION_FILE, "src/test/resources/provider/hook/bad-script-provider.xml");
@ -43,13 +44,16 @@ public class TestScriptEventHookProvider {
final ExtensionManager extensionManager = Mockito.mock(ExtensionManager.class); final ExtensionManager extensionManager = Mockito.mock(ExtensionManager.class);
when(extensionManager.getExtensionClassLoader(any(String.class))) when(extensionManager.getExtensionClassLoader(any(String.class)))
.thenReturn(new ExtensionClassLoader("/tmp", new URL[0],this.getClass().getClassLoader())); .thenReturn(new ExtensionClassLoader("/tmp", new URL[0], this.getClass().getClassLoader()));
final DataSource dataSource = Mockito.mock(DataSource.class); final DataSource dataSource = Mockito.mock(DataSource.class);
final ProviderFactory providerFactory = new StandardProviderFactory(props, extensionManager, dataSource); final ProviderFactory providerFactory = new StandardProviderFactory(props, extensionManager, dataSource);
providerFactory.initialize(); assertThrows(ProviderCreationException.class, () -> {
providerFactory.getEventHookProviders(); providerFactory.initialize();
providerFactory.getEventHookProviders();
});
} }
} }

View File

@ -23,15 +23,15 @@ import org.apache.nifi.registry.security.authorization.resource.ResourceFactory;
import org.apache.nifi.registry.security.authorization.user.NiFiUser; import org.apache.nifi.registry.security.authorization.user.NiFiUser;
import org.apache.nifi.registry.security.authorization.user.StandardNiFiUser; import org.apache.nifi.registry.security.authorization.user.StandardNiFiUser;
import org.apache.nifi.registry.service.RegistryService; import org.apache.nifi.registry.service.RegistryService;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test;
import org.mockito.ArgumentMatcher; import org.mockito.ArgumentMatcher;
import java.util.UUID; import java.util.UUID;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@ -57,7 +57,7 @@ public class TestStandardAuthorizableLookup {
private Bucket bucketPublic; private Bucket bucketPublic;
private Bucket bucketNotPublic; private Bucket bucketNotPublic;
@Before @BeforeEach
public void setup() { public void setup() {
authorizer = mock(Authorizer.class); authorizer = mock(Authorizer.class);
registryService = mock(RegistryService.class); registryService = mock(RegistryService.class);
@ -251,7 +251,7 @@ public class TestStandardAuthorizableLookup {
final Authorizable bucketAuthorizable = authorizableLookup.getBucketAuthorizable(bucketPublic.getIdentifier()); final Authorizable bucketAuthorizable = authorizableLookup.getBucketAuthorizable(bucketPublic.getIdentifier());
try { try {
bucketAuthorizable.authorize(authorizer, action, USER_NO_PROXY_CHAIN); bucketAuthorizable.authorize(authorizer, action, USER_NO_PROXY_CHAIN);
Assert.fail("Should have thrown exception"); fail("Should have thrown exception");
} catch (AccessDeniedException e) { } catch (AccessDeniedException e) {
// Should never call authorizer twice for specific bucket and top-level /buckets // Should never call authorizer twice for specific bucket and top-level /buckets
verify(authorizer, times(2)).authorize(any(AuthorizationRequest.class)); verify(authorizer, times(2)).authorize(any(AuthorizationRequest.class));
@ -272,7 +272,7 @@ public class TestStandardAuthorizableLookup {
final Authorizable bucketAuthorizable = authorizableLookup.getBucketAuthorizable(bucketPublic.getIdentifier()); final Authorizable bucketAuthorizable = authorizableLookup.getBucketAuthorizable(bucketPublic.getIdentifier());
try { try {
bucketAuthorizable.authorize(authorizer, action, USER_WITH_PROXY_CHAIN); bucketAuthorizable.authorize(authorizer, action, USER_WITH_PROXY_CHAIN);
Assert.fail("Should have thrown exception"); fail("Should have thrown exception");
} catch (UntrustedProxyException e) { } catch (UntrustedProxyException e) {
// Should call authorizer once for /proxy and then throw exception // Should call authorizer once for /proxy and then throw exception
verify(authorizer, times(1)).authorize(any(AuthorizationRequest.class)); verify(authorizer, times(1)).authorize(any(AuthorizationRequest.class));
@ -307,7 +307,7 @@ public class TestStandardAuthorizableLookup {
final Authorizable bucketAuthorizable = authorizableLookup.getBucketAuthorizable(bucketPublic.getIdentifier()); final Authorizable bucketAuthorizable = authorizableLookup.getBucketAuthorizable(bucketPublic.getIdentifier());
try { try {
bucketAuthorizable.authorize(authorizer, action, user); bucketAuthorizable.authorize(authorizer, action, user);
Assert.fail("Should have thrown exception"); fail("Should have thrown exception");
} catch (AccessDeniedException e) { } catch (AccessDeniedException e) {
// Should call authorizer three times for /proxy, /bucket/{id}, and /buckets // Should call authorizer three times for /proxy, /bucket/{id}, and /buckets
verify(authorizer, times(3)).authorize(any(AuthorizationRequest.class)); verify(authorizer, times(3)).authorize(any(AuthorizationRequest.class));

View File

@ -34,8 +34,8 @@ import org.apache.nifi.registry.security.exception.SecurityProviderCreationExcep
import org.apache.nifi.registry.security.identity.DefaultIdentityMapper; import org.apache.nifi.registry.security.identity.DefaultIdentityMapper;
import org.apache.nifi.registry.security.identity.IdentityMapper; import org.apache.nifi.registry.security.identity.IdentityMapper;
import org.apache.nifi.registry.util.StandardPropertyValue; import org.apache.nifi.registry.util.StandardPropertyValue;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
@ -48,11 +48,12 @@ import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.Set; import java.util.Set;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@ -85,7 +86,7 @@ public class TestDatabaseAccessPolicyProvider extends DatabaseBaseTest {
// Class under test // Class under test
private ConfigurableAccessPolicyProvider policyProvider; private ConfigurableAccessPolicyProvider policyProvider;
@Before @BeforeEach
public void setup() { public void setup() {
properties = new NiFiRegistryProperties(); properties = new NiFiRegistryProperties();
identityMapper = new DefaultIdentityMapper(properties); identityMapper = new DefaultIdentityMapper(properties);
@ -340,14 +341,14 @@ public class TestDatabaseAccessPolicyProvider extends DatabaseBaseTest {
}); });
} }
@Test(expected = SecurityProviderCreationException.class) @Test
public void testOnConfiguredWhenInitialAdminNotFound() { public void testOnConfiguredWhenInitialAdminNotFound() {
configure("does-not-exist", null); assertThrows(SecurityProviderCreationException.class, () -> configure("does-not-exist", null));
} }
@Test(expected = SecurityProviderCreationException.class) @Test
public void testOnConfiguredWhenNiFiIdentityNotFound() { public void testOnConfiguredWhenNiFiIdentityNotFound() {
configure(null, Collections.singleton("does-not-exist")); assertThrows(SecurityProviderCreationException.class, () -> configure(null, Collections.singleton("does-not-exist")));
} }
// -- Test AccessPolicy methods // -- Test AccessPolicy methods

View File

@ -27,8 +27,8 @@ import org.apache.nifi.registry.security.authorization.UserGroupProviderInitiali
import org.apache.nifi.registry.security.authorization.util.UserGroupProviderUtils; import org.apache.nifi.registry.security.authorization.util.UserGroupProviderUtils;
import org.apache.nifi.registry.security.identity.DefaultIdentityMapper; import org.apache.nifi.registry.security.identity.DefaultIdentityMapper;
import org.apache.nifi.registry.security.identity.IdentityMapper; import org.apache.nifi.registry.security.identity.IdentityMapper;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
@ -39,10 +39,10 @@ import java.util.Properties;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@ -55,7 +55,7 @@ public class TestDatabaseUserGroupProvider extends DatabaseBaseTest {
private ConfigurableUserGroupProvider userGroupProvider; private ConfigurableUserGroupProvider userGroupProvider;
@Before @BeforeEach
public void setup() { public void setup() {
properties = new NiFiRegistryProperties(); properties = new NiFiRegistryProperties();
identityMapper = new DefaultIdentityMapper(properties); identityMapper = new DefaultIdentityMapper(properties);

View File

@ -17,8 +17,8 @@
package org.apache.nifi.registry.serialization; package org.apache.nifi.registry.serialization;
import org.apache.nifi.extension.manifest.Extension; import org.apache.nifi.extension.manifest.Extension;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@ -30,7 +30,7 @@ public class TestExtensionSerializer {
private Serializer<Extension> serializer; private Serializer<Extension> serializer;
@Before @BeforeEach
public void setup() { public void setup() {
serializer = new ExtensionSerializer(); serializer = new ExtensionSerializer();
} }

View File

@ -20,8 +20,8 @@ import org.apache.nifi.flow.ExternalControllerServiceReference;
import org.apache.nifi.registry.flow.VersionedFlowSnapshot; import org.apache.nifi.registry.flow.VersionedFlowSnapshot;
import org.apache.nifi.flow.VersionedProcessGroup; import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.flow.VersionedProcessor; import org.apache.nifi.flow.VersionedProcessor;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@ -30,17 +30,17 @@ import java.io.InputStream;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.fail;
public class TestFlowContentSerializer { public class TestFlowContentSerializer {
private FlowContentSerializer serializer; private FlowContentSerializer serializer;
@Before @BeforeEach
public void setup() { public void setup() {
serializer = new FlowContentSerializer(); serializer = new FlowContentSerializer();
} }

View File

@ -20,13 +20,14 @@ import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.flow.VersionedProcessor; import org.apache.nifi.flow.VersionedProcessor;
import org.apache.nifi.registry.serialization.SerializationException; import org.apache.nifi.registry.serialization.SerializationException;
import org.apache.nifi.registry.serialization.VersionedSerializer; import org.apache.nifi.registry.serialization.VersionedSerializer;
import org.junit.Assert; import org.junit.jupiter.api.Test;
import org.junit.Test;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestJAXBVersionedProcessGroupSerializer { public class TestJAXBVersionedProcessGroupSerializer {
@Test @Test
@ -54,19 +55,19 @@ public class TestJAXBVersionedProcessGroupSerializer {
in.mark(1024); in.mark(1024);
final int version = serializer.readDataModelVersion(in); final int version = serializer.readDataModelVersion(in);
Assert.assertEquals(1, version); assertEquals(1, version);
in.reset(); in.reset();
final VersionedProcessGroup deserializedProcessGroup1 = serializer.deserialize(in); final VersionedProcessGroup deserializedProcessGroup1 = serializer.deserialize(in);
Assert.assertEquals(processGroup1.getIdentifier(), deserializedProcessGroup1.getIdentifier()); assertEquals(processGroup1.getIdentifier(), deserializedProcessGroup1.getIdentifier());
Assert.assertEquals(processGroup1.getName(), deserializedProcessGroup1.getName()); assertEquals(processGroup1.getName(), deserializedProcessGroup1.getName());
Assert.assertEquals(1, deserializedProcessGroup1.getProcessors().size()); assertEquals(1, deserializedProcessGroup1.getProcessors().size());
final VersionedProcessor deserializedProcessor1 = deserializedProcessGroup1.getProcessors().iterator().next(); final VersionedProcessor deserializedProcessor1 = deserializedProcessGroup1.getProcessors().iterator().next();
Assert.assertEquals(processor1.getIdentifier(), deserializedProcessor1.getIdentifier()); assertEquals(processor1.getIdentifier(), deserializedProcessor1.getIdentifier());
Assert.assertEquals(processor1.getName(), deserializedProcessor1.getName()); assertEquals(processor1.getName(), deserializedProcessor1.getName());
} }
} }

View File

@ -16,6 +16,8 @@
*/ */
package org.apache.nifi.registry.service; package org.apache.nifi.registry.service;
import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.flow.VersionedProcessor;
import org.apache.nifi.registry.bucket.Bucket; import org.apache.nifi.registry.bucket.Bucket;
import org.apache.nifi.registry.db.entity.BucketEntity; import org.apache.nifi.registry.db.entity.BucketEntity;
import org.apache.nifi.registry.db.entity.FlowEntity; import org.apache.nifi.registry.db.entity.FlowEntity;
@ -29,14 +31,11 @@ import org.apache.nifi.registry.flow.FlowPersistenceProvider;
import org.apache.nifi.registry.flow.VersionedFlow; import org.apache.nifi.registry.flow.VersionedFlow;
import org.apache.nifi.registry.flow.VersionedFlowSnapshot; import org.apache.nifi.registry.flow.VersionedFlowSnapshot;
import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata; import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata;
import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.flow.VersionedProcessor;
import org.apache.nifi.registry.serialization.FlowContent; import org.apache.nifi.registry.serialization.FlowContent;
import org.apache.nifi.registry.serialization.FlowContentSerializer; import org.apache.nifi.registry.serialization.FlowContentSerializer;
import org.apache.nifi.registry.service.alias.RegistryUrlAliasService; import org.apache.nifi.registry.service.alias.RegistryUrlAliasService;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test;
import org.mockito.invocation.InvocationOnMock; import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer; import org.mockito.stubbing.Answer;
@ -57,9 +56,10 @@ import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.SortedSet; import java.util.SortedSet;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertTrue; 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.any;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
@ -81,7 +81,7 @@ public class TestRegistryService {
private RegistryService registryService; private RegistryService registryService;
@Before @BeforeEach
public void setup() { public void setup() {
metadataService = mock(MetadataService.class); metadataService = mock(MetadataService.class);
flowPersistenceProvider = mock(FlowPersistenceProvider.class); flowPersistenceProvider = mock(FlowPersistenceProvider.class);
@ -119,7 +119,7 @@ public class TestRegistryService {
assertEquals(bucket.getDescription(), createdBucket.getDescription()); assertEquals(bucket.getDescription(), createdBucket.getDescription());
} }
@Test(expected = IllegalStateException.class) @Test
public void testCreateBucketWithSameName() { public void testCreateBucketWithSameName() {
final Bucket bucket = new Bucket(); final Bucket bucket = new Bucket();
bucket.setIdentifier("b2"); bucket.setIdentifier("b2");
@ -134,14 +134,14 @@ public class TestRegistryService {
when(metadataService.getBucketsByName(bucket.getName())).thenReturn(Collections.singletonList(existingBucket)); when(metadataService.getBucketsByName(bucket.getName())).thenReturn(Collections.singletonList(existingBucket));
// should throw exception since a bucket with the same name exists // should throw exception since a bucket with the same name exists
registryService.createBucket(bucket); assertThrows(IllegalStateException.class, () -> registryService.createBucket(bucket));
} }
@Test(expected = ConstraintViolationException.class) @Test
public void testCreateBucketWithMissingName() { public void testCreateBucketWithMissingName() {
final Bucket bucket = new Bucket(); final Bucket bucket = new Bucket();
when(metadataService.getBucketsByName(bucket.getName())).thenReturn(Collections.emptyList()); when(metadataService.getBucketsByName(bucket.getName())).thenReturn(Collections.emptyList());
registryService.createBucket(bucket); assertThrows(ConstraintViolationException.class, () -> registryService.createBucket(bucket));
} }
@Test @Test
@ -162,33 +162,33 @@ public class TestRegistryService {
assertEquals(existingBucket.getCreated().getTime(), bucket.getCreatedTimestamp()); assertEquals(existingBucket.getCreated().getTime(), bucket.getCreatedTimestamp());
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testGetBucketDoesNotExist() { public void testGetBucketDoesNotExist() {
when(metadataService.getBucketById(any(String.class))).thenReturn(null); when(metadataService.getBucketById(any(String.class))).thenReturn(null);
registryService.getBucket("does-not-exist"); assertThrows(ResourceNotFoundException.class, () -> registryService.getBucket("does-not-exist"));
} }
@Test(expected = IllegalArgumentException.class) @Test
public void testUpdateBucketWithoutId() { public void testUpdateBucketWithoutId() {
final Bucket bucket = new Bucket(); final Bucket bucket = new Bucket();
bucket.setName("My Bucket"); bucket.setName("My Bucket");
bucket.setDescription("This is my bucket."); bucket.setDescription("This is my bucket.");
registryService.updateBucket(bucket); assertThrows(IllegalArgumentException.class, () -> registryService.updateBucket(bucket));
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testUpdateBucketDoesNotExist() { public void testUpdateBucketDoesNotExist() {
final Bucket bucket = new Bucket(); final Bucket bucket = new Bucket();
bucket.setIdentifier("b1"); bucket.setIdentifier("b1");
bucket.setName("My Bucket"); bucket.setName("My Bucket");
bucket.setDescription("This is my bucket."); bucket.setDescription("This is my bucket.");
registryService.updateBucket(bucket); assertThrows(ResourceNotFoundException.class, () -> registryService.updateBucket(bucket));
when(metadataService.getBucketById(any(String.class))).thenReturn(null); when(metadataService.getBucketById(any(String.class))).thenReturn(null);
registryService.updateBucket(bucket); assertThrows(ResourceNotFoundException.class, () -> registryService.updateBucket(bucket));
} }
@Test(expected = IllegalStateException.class) @Test
public void testUpdateBucketWithSameNameAsExistingBucket() { public void testUpdateBucketWithSameNameAsExistingBucket() {
final BucketEntity bucketToUpdate = new BucketEntity(); final BucketEntity bucketToUpdate = new BucketEntity();
bucketToUpdate.setId("b1"); bucketToUpdate.setId("b1");
@ -212,7 +212,7 @@ public class TestRegistryService {
updatedBucket.setName("My Bucket #2"); updatedBucket.setName("My Bucket #2");
updatedBucket.setDescription(bucketToUpdate.getDescription()); updatedBucket.setDescription(bucketToUpdate.getDescription());
registryService.updateBucket(updatedBucket); assertThrows(IllegalStateException.class, () -> registryService.updateBucket(updatedBucket));
} }
@Test @Test
@ -262,11 +262,11 @@ public class TestRegistryService {
assertEquals(bucketToUpdate.getDescription(), result.getDescription()); assertEquals(bucketToUpdate.getDescription(), result.getDescription());
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testDeleteBucketDoesNotExist() { public void testDeleteBucketDoesNotExist() {
final String bucketId = "b1"; final String bucketId = "b1";
when(metadataService.getBucketById(bucketId)).thenReturn(null); when(metadataService.getBucketById(bucketId)).thenReturn(null);
registryService.deleteBucket(bucketId); assertThrows(ResourceNotFoundException.class, () -> registryService.deleteBucket(bucketId));
} }
@Test @Test
@ -300,13 +300,13 @@ public class TestRegistryService {
// ---------------------- Test VersionedFlow methods --------------------------------------------- // ---------------------- Test VersionedFlow methods ---------------------------------------------
@Test(expected = ConstraintViolationException.class) @Test
public void testCreateFlowInvalid() { public void testCreateFlowInvalid() {
final VersionedFlow versionedFlow = new VersionedFlow(); final VersionedFlow versionedFlow = new VersionedFlow();
registryService.createFlow("b1", versionedFlow); assertThrows(ConstraintViolationException.class, () -> registryService.createFlow("b1", versionedFlow));
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testCreateFlowBucketDoesNotExist() { public void testCreateFlowBucketDoesNotExist() {
when(metadataService.getBucketById(any(String.class))).thenReturn(null); when(metadataService.getBucketById(any(String.class))).thenReturn(null);
@ -316,10 +316,10 @@ public class TestRegistryService {
versionedFlow.setName("My Flow"); versionedFlow.setName("My Flow");
versionedFlow.setBucketIdentifier("b1"); versionedFlow.setBucketIdentifier("b1");
registryService.createFlow(versionedFlow.getBucketIdentifier(), versionedFlow); assertThrows(ResourceNotFoundException.class, () -> registryService.createFlow(versionedFlow.getBucketIdentifier(), versionedFlow));
} }
@Test(expected = IllegalStateException.class) @Test
public void testCreateFlowWithSameName() { public void testCreateFlowWithSameName() {
final BucketEntity existingBucket = new BucketEntity(); final BucketEntity existingBucket = new BucketEntity();
existingBucket.setId("b1"); existingBucket.setId("b1");
@ -345,7 +345,7 @@ public class TestRegistryService {
versionedFlow.setName(flowWithSameName.getName()); versionedFlow.setName(flowWithSameName.getName());
versionedFlow.setBucketIdentifier("b1"); versionedFlow.setBucketIdentifier("b1");
registryService.createFlow(versionedFlow.getBucketIdentifier(), versionedFlow); assertThrows(IllegalStateException.class, () -> registryService.createFlow(versionedFlow.getBucketIdentifier(), versionedFlow));
} }
@Test @Test
@ -376,16 +376,16 @@ public class TestRegistryService {
assertEquals(versionedFlow.getDescription(), createdFlow.getDescription()); assertEquals(versionedFlow.getDescription(), createdFlow.getDescription());
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testGetFlowDoesNotExist() { public void testGetFlowDoesNotExist() {
when(metadataService.getFlowById(any(String.class))).thenReturn(null); when(metadataService.getFlowById(any(String.class))).thenReturn(null);
registryService.getFlow("bucket1","flow1"); assertThrows(ResourceNotFoundException.class, () -> registryService.getFlow("bucket1", "flow1"));
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testGetFlowDirectDoesNotExist() { public void testGetFlowDirectDoesNotExist() {
when(metadataService.getFlowById(any(String.class))).thenReturn(null); when(metadataService.getFlowById(any(String.class))).thenReturn(null);
registryService.getFlow("flow1"); assertThrows(ResourceNotFoundException.class , () -> registryService.getFlow("flow1"));
} }
@Test @Test
@ -449,10 +449,10 @@ public class TestRegistryService {
assertEquals(flowEntity.getModified().getTime(), versionedFlow.getModifiedTimestamp()); assertEquals(flowEntity.getModified().getTime(), versionedFlow.getModifiedTimestamp());
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testGetFlowsByBucketDoesNotExist() { public void testGetFlowsByBucketDoesNotExist() {
when(metadataService.getBucketById(any(String.class))).thenReturn(null); when(metadataService.getBucketById(any(String.class))).thenReturn(null);
registryService.getFlows("b1"); assertThrows(ResourceNotFoundException.class, () -> registryService.getFlows("b1"));
} }
@Test @Test
@ -492,13 +492,13 @@ public class TestRegistryService {
assertEquals(2, allFlows.size()); assertEquals(2, allFlows.size());
} }
@Test(expected = IllegalArgumentException.class) @Test
public void testUpdateFlowWithoutId() { public void testUpdateFlowWithoutId() {
final VersionedFlow versionedFlow = new VersionedFlow(); final VersionedFlow versionedFlow = new VersionedFlow();
registryService.updateFlow(versionedFlow); assertThrows(IllegalArgumentException.class, () -> registryService.updateFlow(versionedFlow));
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testUpdateFlowDoesNotExist() { public void testUpdateFlowDoesNotExist() {
final VersionedFlow versionedFlow = new VersionedFlow(); final VersionedFlow versionedFlow = new VersionedFlow();
versionedFlow.setBucketIdentifier("b1"); versionedFlow.setBucketIdentifier("b1");
@ -506,10 +506,10 @@ public class TestRegistryService {
when(metadataService.getFlowById(versionedFlow.getIdentifier())).thenReturn(null); when(metadataService.getFlowById(versionedFlow.getIdentifier())).thenReturn(null);
registryService.updateFlow(versionedFlow); assertThrows(ResourceNotFoundException.class, () -> registryService.updateFlow(versionedFlow));
} }
@Test(expected = IllegalStateException.class) @Test
public void testUpdateFlowWithSameNameAsExistingFlow() { public void testUpdateFlowWithSameNameAsExistingFlow() {
final BucketEntity existingBucket = new BucketEntity(); final BucketEntity existingBucket = new BucketEntity();
existingBucket.setId("b1"); existingBucket.setId("b1");
@ -544,7 +544,7 @@ public class TestRegistryService {
versionedFlow.setBucketIdentifier(existingBucket.getId()); versionedFlow.setBucketIdentifier(existingBucket.getId());
versionedFlow.setName(otherFlow.getName()); versionedFlow.setName(otherFlow.getName());
registryService.updateFlow(versionedFlow); assertThrows(IllegalStateException.class, () -> registryService.updateFlow(versionedFlow));
} }
@Test @Test
@ -590,10 +590,10 @@ public class TestRegistryService {
assertEquals(flowToUpdate.getCreated().getTime(), updatedFlow.getCreatedTimestamp()); assertEquals(flowToUpdate.getCreated().getTime(), updatedFlow.getCreatedTimestamp());
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testDeleteFlowDoesNotExist() { public void testDeleteFlowDoesNotExist() {
when(metadataService.getFlowById(any(String.class))).thenReturn(null); when(metadataService.getFlowById(any(String.class))).thenReturn(null);
registryService.deleteFlow("b1", "flow1"); assertThrows(ResourceNotFoundException.class, () -> registryService.deleteFlow("b1", "flow1"));
} }
@Test @Test
@ -647,43 +647,43 @@ public class TestRegistryService {
return snapshot; return snapshot;
} }
@Test(expected = ConstraintViolationException.class) @Test
public void testCreateSnapshotInvalidMetadata() { public void testCreateSnapshotInvalidMetadata() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
snapshot.getSnapshotMetadata().setFlowIdentifier(null); snapshot.getSnapshotMetadata().setFlowIdentifier(null);
registryService.createFlowSnapshot(snapshot); assertThrows(ConstraintViolationException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test(expected = ConstraintViolationException.class) @Test
public void testCreateSnapshotInvalidFlowContents() { public void testCreateSnapshotInvalidFlowContents() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
snapshot.setFlowContents(null); snapshot.setFlowContents(null);
registryService.createFlowSnapshot(snapshot); assertThrows(ConstraintViolationException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test(expected = ConstraintViolationException.class) @Test
public void testCreateSnapshotNullMetadata() { public void testCreateSnapshotNullMetadata() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
snapshot.setSnapshotMetadata(null); snapshot.setSnapshotMetadata(null);
registryService.createFlowSnapshot(snapshot); assertThrows(ConstraintViolationException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test(expected = ConstraintViolationException.class) @Test
public void testCreateSnapshotNullFlowContents() { public void testCreateSnapshotNullFlowContents() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
snapshot.setFlowContents(null); snapshot.setFlowContents(null);
registryService.createFlowSnapshot(snapshot); assertThrows(ConstraintViolationException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testCreateSnapshotBucketDoesNotExist() { public void testCreateSnapshotBucketDoesNotExist() {
when(metadataService.getBucketById(any(String.class))).thenReturn(null); when(metadataService.getBucketById(any(String.class))).thenReturn(null);
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
registryService.createFlowSnapshot(snapshot); assertThrows(ResourceNotFoundException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testCreateSnapshotFlowDoesNotExist() { public void testCreateSnapshotFlowDoesNotExist() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
@ -697,10 +697,10 @@ public class TestRegistryService {
when(metadataService.getFlowById(snapshot.getSnapshotMetadata().getFlowIdentifier())).thenReturn(null); when(metadataService.getFlowById(snapshot.getSnapshotMetadata().getFlowIdentifier())).thenReturn(null);
registryService.createFlowSnapshot(snapshot); assertThrows(ResourceNotFoundException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test(expected = IllegalStateException.class) @Test
public void testCreateSnapshotVersionAlreadyExists() { public void testCreateSnapshotVersionAlreadyExists() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
@ -734,10 +734,10 @@ public class TestRegistryService {
final List<FlowSnapshotEntity> existingSnapshots = Arrays.asList(existingSnapshot); final List<FlowSnapshotEntity> existingSnapshots = Arrays.asList(existingSnapshot);
when(metadataService.getSnapshots(existingFlow.getId())).thenReturn(existingSnapshots); when(metadataService.getSnapshots(existingFlow.getId())).thenReturn(existingSnapshots);
registryService.createFlowSnapshot(snapshot); assertThrows(IllegalStateException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test(expected = IllegalStateException.class) @Test
public void testCreateSnapshotVersionNotNextVersion() { public void testCreateSnapshotVersionNotNextVersion() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
@ -770,7 +770,7 @@ public class TestRegistryService {
// set the version to something that is not the next one-up version // set the version to something that is not the next one-up version
snapshot.getSnapshotMetadata().setVersion(100); snapshot.getSnapshotMetadata().setVersion(100);
registryService.createFlowSnapshot(snapshot); assertThrows(IllegalStateException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test @Test
@ -808,7 +808,7 @@ public class TestRegistryService {
verify(metadataService, times(1)).createFlowSnapshot(any(FlowSnapshotEntity.class)); verify(metadataService, times(1)).createFlowSnapshot(any(FlowSnapshotEntity.class));
} }
@Test(expected = IllegalStateException.class) @Test
public void testCreateFirstSnapshotWithBadVersion() { public void testCreateFirstSnapshotWithBadVersion() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
@ -833,10 +833,10 @@ public class TestRegistryService {
// set the first version to something other than 1 // set the first version to something other than 1
snapshot.getSnapshotMetadata().setVersion(100); snapshot.getSnapshotMetadata().setVersion(100);
registryService.createFlowSnapshot(snapshot); assertThrows(IllegalStateException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test(expected = IllegalArgumentException.class) @Test
public void testCreateFirstSnapshotWithZeroVersion() { public void testCreateFirstSnapshotWithZeroVersion() {
final VersionedFlowSnapshot snapshot = createSnapshot(); final VersionedFlowSnapshot snapshot = createSnapshot();
@ -861,7 +861,7 @@ public class TestRegistryService {
// set the first version to something other than 1 // set the first version to something other than 1
snapshot.getSnapshotMetadata().setVersion(0); snapshot.getSnapshotMetadata().setVersion(0);
registryService.createFlowSnapshot(snapshot); assertThrows(IllegalArgumentException.class, () -> registryService.createFlowSnapshot(snapshot));
} }
@Test @Test
@ -1086,24 +1086,21 @@ public class TestRegistryService {
when(metadataService.getLatestSnapshot(existingFlow.getId())).thenReturn(null); when(metadataService.getLatestSnapshot(existingFlow.getId())).thenReturn(null);
try { ResourceNotFoundException e = assertThrows(ResourceNotFoundException.class, () -> registryService.getLatestFlowSnapshotMetadata(existingBucket.getId(), existingFlow.getId()));
registryService.getLatestFlowSnapshotMetadata(existingBucket.getId(), existingFlow.getId()); assertEquals("The specified flow ID has no versions", e.getMessage());
Assert.fail("Should have thrown exception");
} catch (ResourceNotFoundException e) {
assertEquals("The specified flow ID has no versions", e.getMessage());
}
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testGetSnapshotDoesNotExistInMetadataProvider() { public void testGetSnapshotDoesNotExistInMetadataProvider() {
final String bucketId = "b1"; final String bucketId = "b1";
final String flowId = "flow1"; final String flowId = "flow1";
final Integer version = 1; final Integer version = 1;
when(metadataService.getFlowSnapshot(flowId, version)).thenReturn(null); when(metadataService.getFlowSnapshot(flowId, version)).thenReturn(null);
registryService.getFlowSnapshot(bucketId, flowId, version); assertThrows(ResourceNotFoundException.class, () -> registryService.getFlowSnapshot(bucketId, flowId, version));
} }
@Test(expected = IllegalStateException.class) @Test
public void testGetSnapshotDoesNotExistInPersistenceProvider() { public void testGetSnapshotDoesNotExistInPersistenceProvider() {
final BucketEntity existingBucket = createBucketEntity("b1"); final BucketEntity existingBucket = createBucketEntity("b1");
final FlowEntity existingFlow = createFlowEntity(existingBucket.getId()); final FlowEntity existingFlow = createFlowEntity(existingBucket.getId());
@ -1126,7 +1123,7 @@ public class TestRegistryService {
existingSnapshot.getVersion() existingSnapshot.getVersion()
)).thenReturn(null); )).thenReturn(null);
registryService.getFlowSnapshot(existingBucket.getId(), existingSnapshot.getFlowId(), existingSnapshot.getVersion()); assertThrows(IllegalStateException.class, () -> registryService.getFlowSnapshot(existingBucket.getId(), existingSnapshot.getFlowId(), existingSnapshot.getVersion()));
} }
@Test @Test
@ -1180,13 +1177,13 @@ public class TestRegistryService {
assertNotNull(bucket); assertNotNull(bucket);
} }
@Test(expected = ResourceNotFoundException.class) @Test
public void testDeleteSnapshotDoesNotExist() { public void testDeleteSnapshotDoesNotExist() {
final String bucketId = "b1"; final String bucketId = "b1";
final String flowId = "flow1"; final String flowId = "flow1";
final Integer version = 1; final Integer version = 1;
when(metadataService.getFlowSnapshot(flowId, version)).thenReturn(null); when(metadataService.getFlowSnapshot(flowId, version)).thenReturn(null);
registryService.deleteFlowSnapshot(bucketId, flowId, version); assertThrows(ResourceNotFoundException.class, () -> registryService.deleteFlowSnapshot(bucketId, flowId, version));
} }
@Test @Test
@ -1260,14 +1257,14 @@ public class TestRegistryService {
final VersionedProcessGroup pgB = createVersionedProcessGroupB(); final VersionedProcessGroup pgB = createVersionedProcessGroupB();
when(flowContentSerializer.readDataModelVersion(any(InputStream.class))).thenReturn(2); when(flowContentSerializer.readDataModelVersion(any(InputStream.class))).thenReturn(2);
when(flowContentSerializer.isProcessGroupVersion(eq(2))).thenReturn(true); when(flowContentSerializer.isProcessGroupVersion(eq(2))).thenReturn(true);
when(flowContentSerializer.deserializeProcessGroup(eq(2),any())).thenReturn(pgA, pgB); when(flowContentSerializer.deserializeProcessGroup(eq(2), any())).thenReturn(pgA, pgB);
final VersionedFlowDifference diff = registryService.getFlowDiff( final VersionedFlowDifference diff = registryService.getFlowDiff(
"bucketIdentifier", "flowIdentifier", 1, 2); "bucketIdentifier", "flowIdentifier", 1, 2);
assertNotNull(diff); assertNotNull(diff);
Optional<ComponentDifferenceGroup> removedComponent = diff.getComponentDifferenceGroups().stream() Optional<ComponentDifferenceGroup> removedComponent = diff.getComponentDifferenceGroups().stream()
.filter(p->p.getComponentId().equals("ID-pg1")).findFirst(); .filter(p -> p.getComponentId().equals("ID-pg1")).findFirst();
assertTrue(removedComponent.isPresent()); assertTrue(removedComponent.isPresent());
assertTrue(removedComponent.get().getDifferences().iterator().next().getDifferenceType().equals("COMPONENT_REMOVED")); assertTrue(removedComponent.get().getDifferences().iterator().next().getDifferenceType().equals("COMPONENT_REMOVED"));
@ -1283,20 +1280,20 @@ public class TestRegistryService {
final VersionedProcessGroup pgB = createVersionedProcessGroupB(); final VersionedProcessGroup pgB = createVersionedProcessGroupB();
when(flowContentSerializer.readDataModelVersion(any(InputStream.class))).thenReturn(2); when(flowContentSerializer.readDataModelVersion(any(InputStream.class))).thenReturn(2);
when(flowContentSerializer.isProcessGroupVersion(eq(2))).thenReturn(true); when(flowContentSerializer.isProcessGroupVersion(eq(2))).thenReturn(true);
when(flowContentSerializer.deserializeProcessGroup(eq(2),any())).thenReturn(pgA, pgB); when(flowContentSerializer.deserializeProcessGroup(eq(2), any())).thenReturn(pgA, pgB);
// getFlowDiff orders the changes in ascending order of version number regardless of param order // getFlowDiff orders the changes in ascending order of version number regardless of param order
final VersionedFlowDifference diff = registryService.getFlowDiff( final VersionedFlowDifference diff = registryService.getFlowDiff(
"bucketIdentifier", "flowIdentifier", 2,1); "bucketIdentifier", "flowIdentifier", 2, 1);
assertNotNull(diff); assertNotNull(diff);
Optional<ComponentDifferenceGroup> nameChangedComponent = diff.getComponentDifferenceGroups().stream() Optional<ComponentDifferenceGroup> nameChangedComponent = diff.getComponentDifferenceGroups().stream()
.filter(p->p.getComponentId().equals("ProcessorFirstV1")).findFirst(); .filter(p -> p.getComponentId().equals("ProcessorFirstV1")).findFirst();
assertTrue(nameChangedComponent.isPresent()); assertTrue(nameChangedComponent.isPresent());
ComponentDifference nameChangeDifference = nameChangedComponent.get().getDifferences().stream() ComponentDifference nameChangeDifference = nameChangedComponent.get().getDifferences().stream()
.filter(d-> d.getDifferenceType().equals("NAME_CHANGED")).findFirst().get(); .filter(d -> d.getDifferenceType().equals("NAME_CHANGED")).findFirst().get();
assertEquals("ProcessorFirstV1", nameChangeDifference.getValueA()); assertEquals("ProcessorFirstV1", nameChangeDifference.getValueA());
assertEquals("ProcessorFirstV2", nameChangeDifference.getValueB()); assertEquals("ProcessorFirstV2", nameChangeDifference.getValueB());
@ -1310,22 +1307,23 @@ public class TestRegistryService {
return root; return root;
} }
private VersionedProcessGroup createProcessGroup(String identifier){ private VersionedProcessGroup createProcessGroup(String identifier) {
VersionedProcessGroup processGroup = new VersionedProcessGroup(); VersionedProcessGroup processGroup = new VersionedProcessGroup();
processGroup.setIdentifier(identifier); processGroup.setIdentifier(identifier);
return processGroup; return processGroup;
} }
private VersionedProcessGroup createVersionedProcessGroupB() { private VersionedProcessGroup createVersionedProcessGroupB() {
VersionedProcessGroup updated = createVersionedProcessGroupA(); VersionedProcessGroup updated = createVersionedProcessGroupA();
// remove a process group // remove a process group
updated.getProcessGroups().removeIf(pg->pg.getIdentifier().equals("ID-pg1")); updated.getProcessGroups().removeIf(pg -> pg.getIdentifier().equals("ID-pg1"));
// change the name of a processor // change the name of a processor
updated.getProcessors().stream().forEach(p->p.setPenaltyDuration(p.getName().equals("ProcessorFirstV1") ? "1" : "2")); updated.getProcessors().stream().forEach(p -> p.setPenaltyDuration(p.getName().equals("ProcessorFirstV1") ? "1" : "2"));
updated.getProcessors().stream().forEach(p->p.setName(p.getName().equals("ProcessorFirstV1") ? "ProcessorFirstV2" : p.getName())); updated.getProcessors().stream().forEach(p -> p.setName(p.getName().equals("ProcessorFirstV1") ? "ProcessorFirstV2" : p.getName()));
return updated; return updated;
} }
private VersionedProcessor createVersionedProcessor(String name){ private VersionedProcessor createVersionedProcessor(String name) {
VersionedProcessor processor = new VersionedProcessor(); VersionedProcessor processor = new VersionedProcessor();
processor.setName(name); processor.setName(name);
processor.setIdentifier(name); processor.setIdentifier(name);

View File

@ -17,12 +17,14 @@
package org.apache.nifi.registry.service.alias; package org.apache.nifi.registry.service.alias;
import org.apache.nifi.registry.url.aliaser.generated.Alias; import org.apache.nifi.registry.url.aliaser.generated.Alias;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
public class RegistryUrlAliasServiceTest { public class RegistryUrlAliasServiceTest {
private static Alias createAlias(String internal, String external) { private static Alias createAlias(String internal, String external) {
@ -42,9 +44,9 @@ public class RegistryUrlAliasServiceTest {
assertEquals(url, aliaser.getInternal(url)); assertEquals(url, aliaser.getInternal(url));
} }
@Test(expected = IllegalArgumentException.class) @Test
public void testMalformedExternal() { public void testMalformedExternal() {
new RegistryUrlAliasService(Collections.singletonList(createAlias("https://registry.com:18080", "registry.com:18080"))); assertThrows(IllegalArgumentException.class, () -> new RegistryUrlAliasService(Collections.singletonList(createAlias("https://registry.com:18080", "registry.com:18080"))));
} }
@Test @Test
@ -160,12 +162,12 @@ public class RegistryUrlAliasServiceTest {
assertEquals(external, aliaser.getExternal(internal2)); assertEquals(external, aliaser.getExternal(internal2));
} }
@Test(expected = IllegalArgumentException.class) @Test
public void testDuplicateInternalTokens() { public void testDuplicateInternalTokens() {
String internal = "THIS_NIFI_REGISTRY"; String internal = "THIS_NIFI_REGISTRY";
String external1 = "http://localhost:18080"; String external1 = "http://localhost:18080";
String external2 = "http://localhost:18081"; String external2 = "http://localhost:18081";
new RegistryUrlAliasService(Arrays.asList(createAlias(internal, external1), createAlias(internal, external2))); assertThrows(IllegalArgumentException.class, () -> new RegistryUrlAliasService(Arrays.asList(createAlias(internal, external1), createAlias(internal, external2))));
} }
} }

View File

@ -25,8 +25,8 @@ import org.apache.nifi.registry.serialization.ExtensionSerializer;
import org.apache.nifi.registry.serialization.Serializer; import org.apache.nifi.registry.serialization.Serializer;
import org.apache.nifi.registry.serialization.jackson.ObjectMapperProvider; import org.apache.nifi.registry.serialization.jackson.ObjectMapperProvider;
import org.apache.nifi.registry.service.mapper.ExtensionMappings; import org.apache.nifi.registry.service.mapper.ExtensionMappings;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
@ -43,7 +43,7 @@ public class TestHtmlExtensionDocWriter {
private ExtensionDocWriter docWriter; private ExtensionDocWriter docWriter;
private Serializer<Extension> extensionSerializer; private Serializer<Extension> extensionSerializer;
@Before @BeforeEach
public void setup() { public void setup() {
docWriter = new HtmlExtensionDocWriter(); docWriter = new HtmlExtensionDocWriter();
extensionSerializer = new ExtensionSerializer(); extensionSerializer = new ExtensionSerializer();

View File

@ -18,7 +18,7 @@ package org.apache.nifi.registry.web.api;
import org.apache.nifi.registry.bucket.Bucket; import org.apache.nifi.registry.bucket.Bucket;
import org.apache.nifi.registry.revision.entity.RevisionInfo; import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.test.annotation.IfProfileValue; import org.springframework.test.annotation.IfProfileValue;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
@ -30,9 +30,9 @@ import javax.ws.rs.core.Response;
import java.util.UUID; import java.util.UUID;
import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertBucketsEqual; import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertBucketsEqual;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
public class BucketsIT extends UnsecuredITBase { public class BucketsIT extends UnsecuredITBase {

View File

@ -16,6 +16,7 @@
*/ */
package org.apache.nifi.registry.web.api; package org.apache.nifi.registry.web.api;
import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.registry.NiFiRegistryTestApiApplication; import org.apache.nifi.registry.NiFiRegistryTestApiApplication;
import org.apache.nifi.registry.bucket.Bucket; import org.apache.nifi.registry.bucket.Bucket;
import org.apache.nifi.registry.client.NiFiRegistryClient; import org.apache.nifi.registry.client.NiFiRegistryClient;
@ -25,25 +26,24 @@ import org.apache.nifi.registry.client.impl.JerseyNiFiRegistryClient;
import org.apache.nifi.registry.flow.VersionedFlow; import org.apache.nifi.registry.flow.VersionedFlow;
import org.apache.nifi.registry.flow.VersionedFlowSnapshot; import org.apache.nifi.registry.flow.VersionedFlowSnapshot;
import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata; import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata;
import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.registry.revision.entity.RevisionInfo; import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.io.IOException; import java.io.IOException;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@SpringBootTest( @SpringBootTest(
classes = NiFiRegistryTestApiApplication.class, classes = NiFiRegistryTestApiApplication.class,
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
@ -55,7 +55,7 @@ public class DBFlowStorageIT extends IntegrationTestBase {
private NiFiRegistryClient client; private NiFiRegistryClient client;
@Before @BeforeEach
public void setup() throws IOException { public void setup() throws IOException {
final String baseUrl = createBaseURL(); final String baseUrl = createBaseURL();
LOGGER.info("Using base url = " + baseUrl); LOGGER.info("Using base url = " + baseUrl);
@ -72,7 +72,7 @@ public class DBFlowStorageIT extends IntegrationTestBase {
this.client = client; this.client = client;
} }
@After @AfterEach
public void teardown() { public void teardown() {
try { try {
client.close(); client.close();

View File

@ -16,15 +16,13 @@
*/ */
package org.apache.nifi.registry.web.api; package org.apache.nifi.registry.web.api;
import java.io.File; import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.registry.bucket.BucketItemType; import org.apache.nifi.registry.bucket.BucketItemType;
import org.apache.nifi.registry.flow.VersionedFlow; import org.apache.nifi.registry.flow.VersionedFlow;
import org.apache.nifi.registry.flow.VersionedFlowSnapshot; import org.apache.nifi.registry.flow.VersionedFlowSnapshot;
import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata; import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata;
import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.registry.revision.entity.RevisionInfo; import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.junit.Assert; import org.junit.jupiter.api.Test;
import org.junit.Test;
import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.test.annotation.IfProfileValue; import org.springframework.test.annotation.IfProfileValue;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
@ -34,15 +32,17 @@ import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget; import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.io.File;
import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertBucketsEqual; import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertBucketsEqual;
import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowSnapshotMetadataEqual; import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowSnapshotMetadataEqual;
import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowSnapshotsEqual; import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowSnapshotsEqual;
import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowsEqual; import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowsEqual;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
@Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {"classpath:db/clearDB.sql", "classpath:db/FlowsIT.sql"}) @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {"classpath:db/clearDB.sql", "classpath:db/FlowsIT.sql"})
public class FlowsIT extends UnsecuredITBase { public class FlowsIT extends UnsecuredITBase {
@ -72,7 +72,7 @@ public class FlowsIT extends UnsecuredITBase {
// NOTE: The tests that seed the DB directly from SQL end up with different results for the timestamp depending on // NOTE: The tests that seed the DB directly from SQL end up with different results for the timestamp depending on
// which DB is used, so for now these types of tests only run against H2. // which DB is used, so for now these types of tests only run against H2.
@Test @Test
@IfProfileValue(name="current.database.is.h2", value="true") @IfProfileValue(name = "current.database.is.h2", value = "true")
public void testGetFlows() throws Exception { public void testGetFlows() throws Exception {
// Given: a few buckets and flows have been populated in the DB (see FlowsIT.sql) // Given: a few buckets and flows have been populated in the DB (see FlowsIT.sql)
@ -365,7 +365,7 @@ public class FlowsIT extends UnsecuredITBase {
// NOTE: The tests that seed the DB directly from SQL end up with different results for the timestamp depending on // NOTE: The tests that seed the DB directly from SQL end up with different results for the timestamp depending on
// which DB is used, so for now these types of tests only run against H2. // which DB is used, so for now these types of tests only run against H2.
@Test @Test
@IfProfileValue(name="current.database.is.h2", value="true") @IfProfileValue(name = "current.database.is.h2", value = "true")
public void testGetFlowVersions() throws Exception { public void testGetFlowVersions() throws Exception {
// Given: a bucket "1" with flow "1" with existing snapshots has been populated in the DB (see FlowsIT.sql) // Given: a bucket "1" with flow "1" with existing snapshots has been populated in the DB (see FlowsIT.sql)
@ -532,17 +532,15 @@ public class FlowsIT extends UnsecuredITBase {
// saving the flow to bucket 1 should not work because there is a flow with the same name // saving the flow to bucket 1 should not work because there is a flow with the same name
flow.setBucketIdentifier("1"); flow.setBucketIdentifier("1");
try {
client.target(createURL("buckets/1/flows"))
.resolveTemplate("bucketId", bucketId)
.request()
.post(Entity.entity(flow, MediaType.APPLICATION_JSON), VersionedFlow.class);
Assert.fail("Should have thrown exception"); WebApplicationException e = assertThrows(WebApplicationException.class, () -> client.target(createURL("buckets/1/flows"))
} catch (WebApplicationException e) { .resolveTemplate("bucketId", bucketId)
final String errorMessage = e.getResponse().readEntity(String.class); .request()
Assert.assertEquals("A versioned flow with the same name already exists in the selected bucket", errorMessage); .post(Entity.entity(flow, MediaType.APPLICATION_JSON), VersionedFlow.class));
}
final String errorMessage = e.getResponse().readEntity(String.class);
assertEquals("A versioned flow with the same name already exists in the selected bucket", errorMessage);
} }
@ -606,10 +604,10 @@ public class FlowsIT extends UnsecuredITBase {
// GET the versioned Flow that was just imported // GET the versioned Flow that was just imported
final VersionedFlowSnapshotMetadata[] versionedFlowSnapshots = client final VersionedFlowSnapshotMetadata[] versionedFlowSnapshots = client
.target(createURL("buckets/{bucketId}/flows/{flowId}/versions")) .target(createURL("buckets/{bucketId}/flows/{flowId}/versions"))
.resolveTemplate("bucketId", bucketId) .resolveTemplate("bucketId", bucketId)
.resolveTemplate("flowId", flowId) .resolveTemplate("flowId", flowId)
.request().get(VersionedFlowSnapshotMetadata[].class); .request().get(VersionedFlowSnapshotMetadata[].class);
assertNotNull(versionedFlowSnapshots); assertNotNull(versionedFlowSnapshots);
assertEquals(2, versionedFlowSnapshots.length); assertEquals(2, versionedFlowSnapshots.length);
assertFlowSnapshotMetadataEqual(importedFlowSnapshot.getSnapshotMetadata(), versionedFlowSnapshots[0], true); assertFlowSnapshotMetadataEqual(importedFlowSnapshot.getSnapshotMetadata(), versionedFlowSnapshots[0], true);

View File

@ -21,7 +21,7 @@ import org.apache.nifi.registry.flow.VersionedFlow;
import org.apache.nifi.registry.flow.VersionedFlowSnapshot; import org.apache.nifi.registry.flow.VersionedFlowSnapshot;
import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata; import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata;
import org.apache.nifi.flow.VersionedProcessGroup; import org.apache.nifi.flow.VersionedProcessGroup;
import org.junit.Test; import org.junit.jupiter.api.Test;
import javax.ws.rs.client.Entity; import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
@ -31,8 +31,8 @@ import java.util.UUID;
import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertBucketsEqual; import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertBucketsEqual;
import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowSnapshotsEqual; import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowSnapshotsEqual;
import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowsEqual; import static org.apache.nifi.registry.web.api.IntegrationTestUtils.assertFlowsEqual;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
public class NoRevisionsIT extends UnsecuredNoRevisionsITBase { public class NoRevisionsIT extends UnsecuredNoRevisionsITBase {

View File

@ -30,27 +30,26 @@ import org.apache.nifi.registry.client.impl.JerseyNiFiRegistryClient;
import org.apache.nifi.registry.revision.entity.RevisionInfo; import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.apache.nifi.registry.security.authorization.RequestAction; import org.apache.nifi.registry.security.authorization.RequestAction;
import org.apache.nifi.registry.security.authorization.resource.ResourceFactory; import org.apache.nifi.registry.security.authorization.resource.ResourceFactory;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test; import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.runner.RunWith;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@SpringBootTest( @SpringBootTest(
classes = NiFiRegistryTestApiApplication.class, classes = NiFiRegistryTestApiApplication.class,
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
@ -66,22 +65,22 @@ public class SecureDatabaseIT extends IntegrationTestBase {
private NiFiRegistryClient client; private NiFiRegistryClient client;
@Before @BeforeEach
public void setup() { public void setup() {
final String baseUrl = createBaseURL(); final String baseUrl = createBaseURL();
LOGGER.info("Using base url = " + baseUrl); LOGGER.info("Using base url = " + baseUrl);
final NiFiRegistryClientConfig clientConfig = createClientConfig(baseUrl); final NiFiRegistryClientConfig clientConfig = createClientConfig(baseUrl);
Assert.assertNotNull(clientConfig); assertNotNull(clientConfig);
final NiFiRegistryClient client = new JerseyNiFiRegistryClient.Builder() final NiFiRegistryClient client = new JerseyNiFiRegistryClient.Builder()
.config(clientConfig) .config(clientConfig)
.build(); .build();
Assert.assertNotNull(client); assertNotNull(client);
this.client = client; this.client = client;
} }
@After @AfterEach
public void teardown() { public void teardown() {
try { try {
client.close(); client.close();

View File

@ -22,22 +22,21 @@ import org.apache.nifi.registry.authorization.Tenant;
import org.apache.nifi.registry.authorization.User; import org.apache.nifi.registry.authorization.User;
import org.apache.nifi.registry.authorization.UserGroup; import org.apache.nifi.registry.authorization.UserGroup;
import org.apache.nifi.registry.revision.entity.RevisionInfo; import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
import javax.ws.rs.client.Entity; import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.util.UUID; import java.util.UUID;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
/** /**
* Deploy the Web API Application using an embedded Jetty Server for local integration testing, with the follow characteristics: * Deploy the Web API Application using an embedded Jetty Server for local integration testing, with the follow characteristics:
@ -47,7 +46,7 @@ import static org.junit.Assert.assertNotNull;
* - The database is embed H2 using volatile (in-memory) persistence * - The database is embed H2 using volatile (in-memory) persistence
* - Custom SQL is clearing the DB before each test method by default, unless method overrides this behavior * - Custom SQL is clearing the DB before each test method by default, unless method overrides this behavior
*/ */
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@SpringBootTest( @SpringBootTest(
classes = NiFiRegistryTestApiApplication.class, classes = NiFiRegistryTestApiApplication.class,
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,

View File

@ -19,9 +19,9 @@ package org.apache.nifi.registry.web.api;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.nifi.registry.NiFiRegistryTestApiApplication; import org.apache.nifi.registry.NiFiRegistryTestApiApplication;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -33,7 +33,7 @@ import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.kerberos.authentication.KerberosTicketValidation; import org.springframework.security.kerberos.authentication.KerberosTicketValidation;
import org.springframework.security.kerberos.authentication.KerberosTicketValidator; import org.springframework.security.kerberos.authentication.KerberosTicketValidator;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
@ -41,9 +41,9 @@ import java.nio.charset.Charset;
import java.util.Arrays; import java.util.Arrays;
import java.util.Base64; import java.util.Base64;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
/** /**
* Deploy the Web API Application using an embedded Jetty Server for local integration testing, with the follow characteristics: * Deploy the Web API Application using an embedded Jetty Server for local integration testing, with the follow characteristics:
@ -53,7 +53,7 @@ import static org.junit.Assert.assertTrue;
* - The database is embed H2 using volatile (in-memory) persistence * - The database is embed H2 using volatile (in-memory) persistence
* - Custom SQL is clearing the DB before each test method by default, unless method overrides this behavior * - Custom SQL is clearing the DB before each test method by default, unless method overrides this behavior
*/ */
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@SpringBootTest( @SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
properties = "spring.profiles.include=ITSecureKerberos") properties = "spring.profiles.include=ITSecureKerberos")
@ -102,7 +102,7 @@ public class SecureKerberosIT extends IntegrationTestBase {
private String adminAuthToken; private String adminAuthToken;
@Before @BeforeEach
public void generateAuthToken() { public void generateAuthToken() {
String validTicket = new String(Base64.getEncoder().encode(validKerberosTicket.getBytes(Charset.forName("UTF-8")))); String validTicket = new String(Base64.getEncoder().encode(validKerberosTicket.getBytes(Charset.forName("UTF-8"))));
final String token = client final String token = client

View File

@ -16,6 +16,7 @@
*/ */
package org.apache.nifi.registry.web.api; package org.apache.nifi.registry.web.api;
import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.registry.NiFiRegistryTestApiApplication; import org.apache.nifi.registry.NiFiRegistryTestApiApplication;
import org.apache.nifi.registry.authorization.CurrentUser; import org.apache.nifi.registry.authorization.CurrentUser;
import org.apache.nifi.registry.authorization.Permissions; import org.apache.nifi.registry.authorization.Permissions;
@ -36,19 +37,17 @@ import org.apache.nifi.registry.client.impl.request.ProxiedEntityRequestConfig;
import org.apache.nifi.registry.flow.VersionedFlow; import org.apache.nifi.registry.flow.VersionedFlow;
import org.apache.nifi.registry.flow.VersionedFlowSnapshot; import org.apache.nifi.registry.flow.VersionedFlowSnapshot;
import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata; import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata;
import org.apache.nifi.flow.VersionedProcessGroup;
import org.apache.nifi.registry.revision.entity.RevisionInfo; import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test; import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.runner.RunWith;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
import javax.ws.rs.ForbiddenException; import javax.ws.rs.ForbiddenException;
import java.io.IOException; import java.io.IOException;
@ -60,7 +59,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@SpringBootTest( @SpringBootTest(
classes = NiFiRegistryTestApiApplication.class, classes = NiFiRegistryTestApiApplication.class,
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
@ -76,22 +75,22 @@ public class SecureNiFiRegistryClientIT extends IntegrationTestBase {
private NiFiRegistryClient client; private NiFiRegistryClient client;
@Before @BeforeEach
public void setup() { public void setup() {
final String baseUrl = createBaseURL(); final String baseUrl = createBaseURL();
LOGGER.info("Using base url = " + baseUrl); LOGGER.info("Using base url = " + baseUrl);
final NiFiRegistryClientConfig clientConfig = createClientConfig(baseUrl); final NiFiRegistryClientConfig clientConfig = createClientConfig(baseUrl);
Assert.assertNotNull(clientConfig); assertNotNull(clientConfig);
final NiFiRegistryClient client = new JerseyNiFiRegistryClient.Builder() final NiFiRegistryClient client = new JerseyNiFiRegistryClient.Builder()
.config(clientConfig) .config(clientConfig)
.build(); .build();
Assert.assertNotNull(client); assertNotNull(client);
this.client = client; this.client = client;
} }
@After @AfterEach
public void teardown() { public void teardown() {
try { try {
client.close(); client.close();
@ -129,7 +128,7 @@ public class SecureNiFiRegistryClientIT extends IntegrationTestBase {
assertNotNull(createdBucket.getRevision()); assertNotNull(createdBucket.getRevision());
final List<Bucket> buckets = bucketClient.getAll(); final List<Bucket> buckets = bucketClient.getAll();
Assert.assertEquals(4, buckets.size()); assertEquals(4, buckets.size());
buckets.forEach(b -> assertNotNull(b.getRevision())); buckets.forEach(b -> assertNotNull(b.getRevision()));
final VersionedFlow flow = new VersionedFlow(); final VersionedFlow flow = new VersionedFlow();

View File

@ -25,27 +25,26 @@ import org.apache.nifi.registry.client.RequestConfig;
import org.apache.nifi.registry.client.UserClient; import org.apache.nifi.registry.client.UserClient;
import org.apache.nifi.registry.client.impl.JerseyNiFiRegistryClient; import org.apache.nifi.registry.client.impl.JerseyNiFiRegistryClient;
import org.apache.nifi.registry.client.impl.request.ProxiedEntityRequestConfig; import org.apache.nifi.registry.client.impl.request.ProxiedEntityRequestConfig;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test; import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.runner.RunWith;
import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONAssert;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit.jupiter.SpringExtension;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
@RunWith(SpringRunner.class) @ExtendWith(SpringExtension.class)
@SpringBootTest( @SpringBootTest(
classes = NiFiRegistryTestApiApplication.class, classes = NiFiRegistryTestApiApplication.class,
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
@ -64,22 +63,22 @@ public class SecureProxyIT extends IntegrationTestBase {
private NiFiRegistryClient registryClient; private NiFiRegistryClient registryClient;
@Before @BeforeEach
public void setup() { public void setup() {
final String baseUrl = createBaseURL(); final String baseUrl = createBaseURL();
LOGGER.info("Using base url = " + baseUrl); LOGGER.info("Using base url = " + baseUrl);
final NiFiRegistryClientConfig clientConfig = createClientConfig(baseUrl); final NiFiRegistryClientConfig clientConfig = createClientConfig(baseUrl);
Assert.assertNotNull(clientConfig); assertNotNull(clientConfig);
final NiFiRegistryClient client = new JerseyNiFiRegistryClient.Builder() final NiFiRegistryClient client = new JerseyNiFiRegistryClient.Builder()
.config(clientConfig) .config(clientConfig)
.build(); .build();
Assert.assertNotNull(client); assertNotNull(client);
this.registryClient = client; this.registryClient = client;
} }
@After @AfterEach
public void teardown() { public void teardown() {
try { try {
registryClient.close(); registryClient.close();

View File

@ -24,8 +24,8 @@ import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.apache.nifi.registry.revision.web.ClientIdParameter; import org.apache.nifi.registry.revision.web.ClientIdParameter;
import org.apache.nifi.registry.revision.web.LongParameter; import org.apache.nifi.registry.revision.web.LongParameter;
import org.apache.nifi.registry.web.service.ServiceFacade; import org.apache.nifi.registry.web.service.ServiceFacade;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.net.URI; import java.net.URI;
@ -43,7 +43,7 @@ public class TenantResourceTest {
private EventService eventService; private EventService eventService;
private ServiceFacade serviceFacade; private ServiceFacade serviceFacade;
@Before @BeforeEach
public void setUp() { public void setUp() {
eventService = mock(EventService.class); eventService = mock(EventService.class);
serviceFacade = mock(ServiceFacade.class); serviceFacade = mock(ServiceFacade.class);

View File

@ -74,9 +74,9 @@ import org.apache.nifi.registry.revision.entity.RevisionInfo;
import org.apache.nifi.registry.util.FileUtils; import org.apache.nifi.registry.util.FileUtils;
import org.bouncycastle.util.encoders.Hex; import org.bouncycastle.util.encoders.Hex;
import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -103,11 +103,12 @@ import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
/** /**
* Test all basic functionality of JerseyNiFiRegistryClient. * Test all basic functionality of JerseyNiFiRegistryClient.
@ -120,7 +121,7 @@ public class UnsecuredNiFiRegistryClientIT extends UnsecuredITBase {
private NiFiRegistryClient client; private NiFiRegistryClient client;
@Before @BeforeEach
public void setup() { public void setup() {
final String baseUrl = createBaseURL(); final String baseUrl = createBaseURL();
LOGGER.info("Using base url = " + baseUrl); LOGGER.info("Using base url = " + baseUrl);
@ -149,7 +150,7 @@ public class UnsecuredNiFiRegistryClientIT extends UnsecuredITBase {
} }
} }
@After @AfterEach
public void teardown() { public void teardown() {
try { try {
client.close(); client.close();
@ -183,7 +184,7 @@ public class UnsecuredNiFiRegistryClientIT extends UnsecuredITBase {
final int numBuckets = 10; final int numBuckets = 10;
final List<Bucket> createdBuckets = new ArrayList<>(); final List<Bucket> createdBuckets = new ArrayList<>();
for (int i=0; i < numBuckets; i++) { for (int i = 0; i < numBuckets; i++) {
final Bucket createdBucket = createBucket(bucketClient, i); final Bucket createdBucket = createBucket(bucketClient, i);
LOGGER.info("Created bucket # " + i + " with id " + createdBucket.getIdentifier()); LOGGER.info("Created bucket # " + i + " with id " + createdBucket.getIdentifier());
createdBuckets.add(createdBucket); createdBuckets.add(createdBucket);
@ -346,13 +347,8 @@ public class UnsecuredNiFiRegistryClientIT extends UnsecuredITBase {
assertEquals(2, latestMetadata.getVersion()); assertEquals(2, latestMetadata.getVersion());
// get latest metadata that doesn't exist // get latest metadata that doesn't exist
try { NiFiRegistryException nfe = assertThrows(NiFiRegistryException.class, () -> snapshotClient.getLatestMetadata(snapshotFlow.getBucketIdentifier(), "DOES-NOT-EXIST"));
snapshotClient.getLatestMetadata(snapshotFlow.getBucketIdentifier(), "DOES-NOT-EXIST"); assertEquals("Error retrieving latest snapshot metadata: The specified flow ID does not exist in this bucket.", nfe.getMessage());
fail("Should have thrown exception");
} catch (NiFiRegistryException nfe) {
assertEquals("Error retrieving latest snapshot metadata: The specified flow ID does not exist in this bucket.", nfe.getMessage());
}
// get latest metadata without bucket // get latest metadata without bucket
final VersionedFlowSnapshotMetadata latestMetadataWithoutBucket = snapshotClient.getLatestMetadata(snapshotFlow.getIdentifier()); final VersionedFlowSnapshotMetadata latestMetadataWithoutBucket = snapshotClient.getLatestMetadata(snapshotFlow.getIdentifier());
assertNotNull(latestMetadataWithoutBucket); assertNotNull(latestMetadataWithoutBucket);
@ -708,7 +704,7 @@ public class UnsecuredNiFiRegistryClientIT extends UnsecuredITBase {
assertNotNull(tc.getTag()); assertNotNull(tc.getTag());
}); });
final ExtensionMetadataContainer allExtensions = extensionClient.findExtensions((ExtensionFilterParams)null); final ExtensionMetadataContainer allExtensions = extensionClient.findExtensions((ExtensionFilterParams) null);
assertNotNull(allExtensions); assertNotNull(allExtensions);
assertNotNull(allExtensions.getExtensions()); assertNotNull(allExtensions.getExtensions());
assertEquals(4, allExtensions.getNumResults()); assertEquals(4, allExtensions.getNumResults());
@ -871,7 +867,7 @@ public class UnsecuredNiFiRegistryClientIT extends UnsecuredITBase {
context1.setName("Parameter Context 1"); context1.setName("Parameter Context 1");
context1.setParameters(new HashSet<>(Arrays.asList(param1, param2))); context1.setParameters(new HashSet<>(Arrays.asList(param1, param2)));
final Map<String,VersionedParameterContext> contexts = new HashMap<>(); final Map<String, VersionedParameterContext> contexts = new HashMap<>();
contexts.put(context1.getName(), context1); contexts.put(context1.getName(), context1);
// Create an external controller service reference // Create an external controller service reference
@ -888,7 +884,7 @@ public class UnsecuredNiFiRegistryClientIT extends UnsecuredITBase {
final Map<String, ParameterProviderReference> parameterProviderReferences = new HashMap<>(); final Map<String, ParameterProviderReference> parameterProviderReferences = new HashMap<>();
parameterProviderReferences.put(parameterProviderReference.getIdentifier(), parameterProviderReference); parameterProviderReferences.put(parameterProviderReference.getIdentifier(), parameterProviderReference);
final Map<String,ExternalControllerServiceReference> serviceReferences = new HashMap<>(); final Map<String, ExternalControllerServiceReference> serviceReferences = new HashMap<>();
serviceReferences.put(serviceReference.getIdentifier(), serviceReference); serviceReferences.put(serviceReference.getIdentifier(), serviceReference);
// Create the snapshot // Create the snapshot
@ -1019,7 +1015,7 @@ public class UnsecuredNiFiRegistryClientIT extends UnsecuredITBase {
subProcessGroup.setName("Sub Process Group"); subProcessGroup.setName("Sub Process Group");
rootProcessGroup.getProcessGroups().add(subProcessGroup); rootProcessGroup.getProcessGroups().add(subProcessGroup);
final Map<String,String> processorProperties = new HashMap<>(); final Map<String, String> processorProperties = new HashMap<>();
processorProperties.put("Prop 1", "Val 1"); processorProperties.put("Prop 1", "Val 1");
processorProperties.put("Prop 2", "Val 2"); processorProperties.put("Prop 2", "Val 2");

View File

@ -16,13 +16,13 @@
*/ */
package org.apache.nifi.registry.web.link; package org.apache.nifi.registry.web.link;
import org.apache.nifi.extension.ExtensionMetadata;
import org.apache.nifi.registry.bucket.Bucket; import org.apache.nifi.registry.bucket.Bucket;
import org.apache.nifi.registry.bucket.BucketItem; import org.apache.nifi.registry.bucket.BucketItem;
import org.apache.nifi.registry.bucket.BucketItemType; import org.apache.nifi.registry.bucket.BucketItemType;
import org.apache.nifi.registry.extension.bundle.Bundle; import org.apache.nifi.registry.extension.bundle.Bundle;
import org.apache.nifi.registry.extension.bundle.BundleInfo; import org.apache.nifi.registry.extension.bundle.BundleInfo;
import org.apache.nifi.registry.extension.bundle.BundleVersionMetadata; import org.apache.nifi.registry.extension.bundle.BundleVersionMetadata;
import org.apache.nifi.extension.ExtensionMetadata;
import org.apache.nifi.registry.extension.repo.ExtensionRepoArtifact; import org.apache.nifi.registry.extension.repo.ExtensionRepoArtifact;
import org.apache.nifi.registry.extension.repo.ExtensionRepoBucket; import org.apache.nifi.registry.extension.repo.ExtensionRepoBucket;
import org.apache.nifi.registry.extension.repo.ExtensionRepoExtensionMetadata; import org.apache.nifi.registry.extension.repo.ExtensionRepoExtensionMetadata;
@ -30,15 +30,17 @@ import org.apache.nifi.registry.extension.repo.ExtensionRepoGroup;
import org.apache.nifi.registry.extension.repo.ExtensionRepoVersionSummary; import org.apache.nifi.registry.extension.repo.ExtensionRepoVersionSummary;
import org.apache.nifi.registry.flow.VersionedFlow; import org.apache.nifi.registry.flow.VersionedFlow;
import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata; import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata;
import org.junit.Assert; import org.junit.jupiter.api.BeforeEach;
import org.junit.Before; import org.junit.jupiter.api.Test;
import org.junit.Test;
import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriBuilder;
import java.net.URI; import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
public class TestLinkService { public class TestLinkService {
private static final String BASE_URI = "http://localhost:18080/nifi-registry-api"; private static final String BASE_URI = "http://localhost:18080/nifi-registry-api";
@ -61,7 +63,7 @@ public class TestLinkService {
private List<ExtensionRepoVersionSummary> extensionRepoVersions; private List<ExtensionRepoVersionSummary> extensionRepoVersions;
private List<ExtensionRepoExtensionMetadata> extensionRepoExtensionMetadata; private List<ExtensionRepoExtensionMetadata> extensionRepoExtensionMetadata;
@Before @BeforeEach
public void setup() { public void setup() {
linkService = new LinkService(); linkService = new LinkService();
@ -224,60 +226,60 @@ public class TestLinkService {
@Test @Test
public void testPopulateBucketLinks() { public void testPopulateBucketLinks() {
buckets.forEach(b -> Assert.assertNull(b.getLink())); buckets.forEach(b -> assertNull(b.getLink()));
linkService.populateLinks(buckets); linkService.populateLinks(buckets);
buckets.forEach(b -> Assert.assertEquals( buckets.forEach(b -> assertEquals(
"buckets/" + b.getIdentifier(), b.getLink().getUri().toString())); "buckets/" + b.getIdentifier(), b.getLink().getUri().toString()));
} }
@Test @Test
public void testPopulateFlowLinks() { public void testPopulateFlowLinks() {
flows.forEach(f -> Assert.assertNull(f.getLink())); flows.forEach(f -> assertNull(f.getLink()));
linkService.populateLinks(flows); linkService.populateLinks(flows);
flows.forEach(f -> Assert.assertEquals( flows.forEach(f -> assertEquals(
"buckets/" + f.getBucketIdentifier() + "/flows/" + f.getIdentifier(), f.getLink().getUri().toString())); "buckets/" + f.getBucketIdentifier() + "/flows/" + f.getIdentifier(), f.getLink().getUri().toString()));
} }
@Test @Test
public void testPopulateSnapshotLinks() { public void testPopulateSnapshotLinks() {
snapshots.forEach(s -> Assert.assertNull(s.getLink())); snapshots.forEach(s -> assertNull(s.getLink()));
linkService.populateLinks(snapshots); linkService.populateLinks(snapshots);
snapshots.forEach(s -> Assert.assertEquals( snapshots.forEach(s -> assertEquals(
"buckets/" + s.getBucketIdentifier() + "/flows/" + s.getFlowIdentifier() + "/versions/" + s.getVersion(), s.getLink().getUri().toString())); "buckets/" + s.getBucketIdentifier() + "/flows/" + s.getFlowIdentifier() + "/versions/" + s.getVersion(), s.getLink().getUri().toString()));
} }
@Test @Test
public void testPopulateItemLinks() { public void testPopulateItemLinks() {
items.forEach(i -> Assert.assertNull(i.getLink())); items.forEach(i -> assertNull(i.getLink()));
linkService.populateLinks(items); linkService.populateLinks(items);
items.forEach(i -> { items.forEach(i -> {
if (i.getType() == BucketItemType.Flow) { if (i.getType() == BucketItemType.Flow) {
Assert.assertEquals("buckets/" + i.getBucketIdentifier() + "/flows/" + i.getIdentifier(), i.getLink().getUri().toString()); assertEquals("buckets/" + i.getBucketIdentifier() + "/flows/" + i.getIdentifier(), i.getLink().getUri().toString());
} else { } else {
Assert.assertEquals("bundles/" + i.getIdentifier(), i.getLink().getUri().toString()); assertEquals("bundles/" + i.getIdentifier(), i.getLink().getUri().toString());
} }
}); });
} }
@Test @Test
public void testPopulateExtensionBundleLinks() { public void testPopulateExtensionBundleLinks() {
bundles.forEach(i -> Assert.assertNull(i.getLink())); bundles.forEach(i -> assertNull(i.getLink()));
linkService.populateLinks(bundles); linkService.populateLinks(bundles);
bundles.forEach(eb -> Assert.assertEquals("bundles/" + eb.getIdentifier(), eb.getLink().getUri().toString())); bundles.forEach(eb -> assertEquals("bundles/" + eb.getIdentifier(), eb.getLink().getUri().toString()));
} }
@Test @Test
public void testPopulateExtensionBundleVersionLinks() { public void testPopulateExtensionBundleVersionLinks() {
bundleVersionMetadata.forEach(i -> Assert.assertNull(i.getLink())); bundleVersionMetadata.forEach(i -> assertNull(i.getLink()));
linkService.populateLinks(bundleVersionMetadata); linkService.populateLinks(bundleVersionMetadata);
bundleVersionMetadata.forEach(eb -> Assert.assertEquals( bundleVersionMetadata.forEach(eb -> assertEquals(
"bundles/" + eb.getBundleId() + "/versions/" + eb.getVersion(), eb.getLink().getUri().toString())); "bundles/" + eb.getBundleId() + "/versions/" + eb.getVersion(), eb.getLink().getUri().toString()));
} }
@Test @Test
public void testPopulateExtensionBundleVersionExtensionMetadataLinks() { public void testPopulateExtensionBundleVersionExtensionMetadataLinks() {
extensionMetadata.forEach(i -> Assert.assertNull(i.getLink())); extensionMetadata.forEach(i -> assertNull(i.getLink()));
extensionMetadata.forEach(i -> Assert.assertNull(i.getLinkDocs())); extensionMetadata.forEach(i -> assertNull(i.getLinkDocs()));
linkService.populateLinks(extensionMetadata); linkService.populateLinks(extensionMetadata);
@ -285,16 +287,16 @@ public class TestLinkService {
final String extensionUri = "bundles/" + e.getBundleInfo().getBundleId() final String extensionUri = "bundles/" + e.getBundleInfo().getBundleId()
+ "/versions/" + e.getBundleInfo().getVersion() + "/versions/" + e.getBundleInfo().getVersion()
+ "/extensions/" + e.getName(); + "/extensions/" + e.getName();
Assert.assertEquals(extensionUri, e.getLink().getUri().toString()); assertEquals(extensionUri, e.getLink().getUri().toString());
Assert.assertEquals(extensionUri + "/docs", e.getLinkDocs().getUri().toString()); assertEquals(extensionUri + "/docs", e.getLinkDocs().getUri().toString());
}); });
} }
@Test @Test
public void testPopulateExtensionRepoBucketLinks() { public void testPopulateExtensionRepoBucketLinks() {
extensionRepoBuckets.forEach(i -> Assert.assertNull(i.getLink())); extensionRepoBuckets.forEach(i -> assertNull(i.getLink()));
linkService.populateLinks(extensionRepoBuckets); linkService.populateLinks(extensionRepoBuckets);
extensionRepoBuckets.forEach(i -> Assert.assertEquals( extensionRepoBuckets.forEach(i -> assertEquals(
"extension-repository/" + i.getBucketName(), "extension-repository/" + i.getBucketName(),
i.getLink().getUri().toString()) i.getLink().getUri().toString())
); );
@ -302,10 +304,10 @@ public class TestLinkService {
@Test @Test
public void testPopulateExtensionRepoGroupLinks() { public void testPopulateExtensionRepoGroupLinks() {
extensionRepoGroups.forEach(i -> Assert.assertNull(i.getLink())); extensionRepoGroups.forEach(i -> assertNull(i.getLink()));
linkService.populateLinks(extensionRepoGroups); linkService.populateLinks(extensionRepoGroups);
extensionRepoGroups.forEach(i -> { extensionRepoGroups.forEach(i -> {
Assert.assertEquals( assertEquals(
"extension-repository/" + i.getBucketName() + "/" + i.getGroupId(), "extension-repository/" + i.getBucketName() + "/" + i.getGroupId(),
i.getLink().getUri().toString()); } i.getLink().getUri().toString()); }
); );
@ -313,10 +315,10 @@ public class TestLinkService {
@Test @Test
public void testPopulateExtensionRepoArtifactLinks() { public void testPopulateExtensionRepoArtifactLinks() {
extensionRepoArtifacts.forEach(i -> Assert.assertNull(i.getLink())); extensionRepoArtifacts.forEach(i -> assertNull(i.getLink()));
linkService.populateLinks(extensionRepoArtifacts); linkService.populateLinks(extensionRepoArtifacts);
extensionRepoArtifacts.forEach(i -> { extensionRepoArtifacts.forEach(i -> {
Assert.assertEquals( assertEquals(
"extension-repository/" + i.getBucketName() + "/" + i.getGroupId() + "/" + i.getArtifactId(), "extension-repository/" + i.getBucketName() + "/" + i.getGroupId() + "/" + i.getArtifactId(),
i.getLink().getUri().toString()); } i.getLink().getUri().toString()); }
); );
@ -324,10 +326,10 @@ public class TestLinkService {
@Test @Test
public void testPopulateExtensionRepoVersionLinks() { public void testPopulateExtensionRepoVersionLinks() {
extensionRepoVersions.forEach(i -> Assert.assertNull(i.getLink())); extensionRepoVersions.forEach(i -> assertNull(i.getLink()));
linkService.populateLinks(extensionRepoVersions); linkService.populateLinks(extensionRepoVersions);
extensionRepoVersions.forEach(i -> { extensionRepoVersions.forEach(i -> {
Assert.assertEquals( assertEquals(
"extension-repository/" + i.getBucketName() + "/" + i.getGroupId() + "/" + i.getArtifactId() + "/" + i.getVersion(), "extension-repository/" + i.getBucketName() + "/" + i.getGroupId() + "/" + i.getArtifactId() + "/" + i.getVersion(),
i.getLink().getUri().toString()); } i.getLink().getUri().toString()); }
); );
@ -335,10 +337,10 @@ public class TestLinkService {
@Test @Test
public void testPopulateExtensionRepoVersionFullLinks() { public void testPopulateExtensionRepoVersionFullLinks() {
extensionRepoVersions.forEach(i -> Assert.assertNull(i.getLink())); extensionRepoVersions.forEach(i -> assertNull(i.getLink()));
linkService.populateFullLinks(extensionRepoVersions, baseUri); linkService.populateFullLinks(extensionRepoVersions, baseUri);
extensionRepoVersions.forEach(i -> { extensionRepoVersions.forEach(i -> {
Assert.assertEquals( assertEquals(
BASE_URI + "/extension-repository/" + i.getBucketName() + "/" + i.getGroupId() + "/" + i.getArtifactId() + "/" + i.getVersion(), BASE_URI + "/extension-repository/" + i.getBucketName() + "/" + i.getGroupId() + "/" + i.getArtifactId() + "/" + i.getVersion(),
i.getLink().getUri().toString()); } i.getLink().getUri().toString()); }
); );
@ -346,16 +348,16 @@ public class TestLinkService {
@Test @Test
public void testPopulateExtensionRepoExtensionMetdataFullLinks() { public void testPopulateExtensionRepoExtensionMetdataFullLinks() {
extensionRepoExtensionMetadata.forEach(i -> Assert.assertNull(i.getLink())); extensionRepoExtensionMetadata.forEach(i -> assertNull(i.getLink()));
extensionRepoExtensionMetadata.forEach(i -> Assert.assertNull(i.getLinkDocs())); extensionRepoExtensionMetadata.forEach(i -> assertNull(i.getLinkDocs()));
linkService.populateFullLinks(extensionRepoExtensionMetadata, baseUri); linkService.populateFullLinks(extensionRepoExtensionMetadata, baseUri);
extensionRepoExtensionMetadata.forEach(i -> { extensionRepoExtensionMetadata.forEach(i -> {
final BundleInfo bi = i.getExtensionMetadata().getBundleInfo(); final BundleInfo bi = i.getExtensionMetadata().getBundleInfo();
final String extensionUri = BASE_URI + "/extension-repository/" + bi.getBucketName() + "/" + bi.getGroupId() + "/" final String extensionUri = BASE_URI + "/extension-repository/" + bi.getBucketName() + "/" + bi.getGroupId() + "/"
+ bi.getArtifactId() + "/" + bi.getVersion() + "/extensions/" + i.getExtensionMetadata().getName(); + bi.getArtifactId() + "/" + bi.getVersion() + "/extensions/" + i.getExtensionMetadata().getName();
Assert.assertEquals(extensionUri, i.getLink().getUri().toString()); assertEquals(extensionUri, i.getLink().getUri().toString());
Assert.assertEquals(extensionUri + "/docs", i.getLinkDocs().getUri().toString()); assertEquals(extensionUri + "/docs", i.getLinkDocs().getUri().toString());
}); });
} }
} }

View File

@ -19,16 +19,17 @@ package org.apache.nifi.registry.web.security.authentication.oidc;
import com.nimbusds.oauth2.sdk.AuthorizationCode; import com.nimbusds.oauth2.sdk.AuthorizationCode;
import com.nimbusds.oauth2.sdk.AuthorizationCodeGrant; import com.nimbusds.oauth2.sdk.AuthorizationCodeGrant;
import com.nimbusds.oauth2.sdk.id.State; import com.nimbusds.oauth2.sdk.id.State;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.net.URI; import java.net.URI;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.Assert.assertTrue; 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.any;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@ -38,23 +39,23 @@ public class OidcServiceTest {
public static final String TEST_REQUEST_IDENTIFIER = "test-request-identifier"; public static final String TEST_REQUEST_IDENTIFIER = "test-request-identifier";
public static final String TEST_STATE = "test-state"; public static final String TEST_STATE = "test-state";
@Test(expected = IllegalStateException.class) @Test
public void testOidcNotEnabledCreateState() throws Exception { public void testOidcNotEnabledCreateState() throws Exception {
final OidcService service = getServiceWithNoOidcSupport(); final OidcService service = getServiceWithNoOidcSupport();
service.createState(TEST_REQUEST_IDENTIFIER); assertThrows(IllegalStateException.class, () -> service.createState(TEST_REQUEST_IDENTIFIER));
} }
@Test(expected = IllegalStateException.class) @Test
public void testCreateStateMultipleInvocations() throws Exception { public void testCreateStateMultipleInvocations() throws Exception {
final OidcService service = getServiceWithOidcSupport(); final OidcService service = getServiceWithOidcSupport();
service.createState(TEST_REQUEST_IDENTIFIER); service.createState(TEST_REQUEST_IDENTIFIER);
service.createState(TEST_REQUEST_IDENTIFIER); assertThrows(IllegalStateException.class, () -> service.createState(TEST_REQUEST_IDENTIFIER));
} }
@Test(expected = IllegalStateException.class) @Test
public void testOidcNotEnabledValidateState() throws Exception { public void testOidcNotEnabledValidateState() throws Exception {
final OidcService service = getServiceWithNoOidcSupport(); final OidcService service = getServiceWithNoOidcSupport();
service.isStateValid(TEST_REQUEST_IDENTIFIER, new State(TEST_STATE)); assertThrows(IllegalStateException.class, () -> service.isStateValid(TEST_REQUEST_IDENTIFIER, new State(TEST_STATE)));
} }
@Test @Test
@ -80,23 +81,23 @@ public class OidcServiceTest {
assertFalse(service.isStateValid(TEST_REQUEST_IDENTIFIER, state)); assertFalse(service.isStateValid(TEST_REQUEST_IDENTIFIER, state));
} }
@Test(expected = IllegalStateException.class) @Test
public void testOidcNotEnabledExchangeCode() throws Exception { public void testOidcNotEnabledExchangeCode() throws Exception {
final OidcService service = getServiceWithNoOidcSupport(); final OidcService service = getServiceWithNoOidcSupport();
service.exchangeAuthorizationCodeForLoginAuthenticationToken(TEST_REQUEST_IDENTIFIER, getAuthorizationCodeGrant()); assertThrows(IllegalStateException.class, () -> service.exchangeAuthorizationCodeForLoginAuthenticationToken(TEST_REQUEST_IDENTIFIER, getAuthorizationCodeGrant()));
} }
@Test(expected = IllegalStateException.class) @Test
public void testExchangeCodeMultipleInvocation() throws Exception { public void testExchangeCodeMultipleInvocation() throws Exception {
final OidcService service = getServiceWithOidcSupport(); final OidcService service = getServiceWithOidcSupport();
service.exchangeAuthorizationCodeForLoginAuthenticationToken(TEST_REQUEST_IDENTIFIER, getAuthorizationCodeGrant()); service.exchangeAuthorizationCodeForLoginAuthenticationToken(TEST_REQUEST_IDENTIFIER, getAuthorizationCodeGrant());
service.exchangeAuthorizationCodeForLoginAuthenticationToken(TEST_REQUEST_IDENTIFIER, getAuthorizationCodeGrant()); assertThrows(IllegalStateException.class, () -> service.exchangeAuthorizationCodeForLoginAuthenticationToken(TEST_REQUEST_IDENTIFIER, getAuthorizationCodeGrant()));
} }
@Test(expected = IllegalStateException.class) @Test
public void testOidcNotEnabledGetJwt() throws Exception { public void testOidcNotEnabledGetJwt() throws Exception {
final OidcService service = getServiceWithNoOidcSupport(); final OidcService service = getServiceWithNoOidcSupport();
service.getJwt(TEST_REQUEST_IDENTIFIER); assertThrows(IllegalStateException.class, () -> service.getJwt(TEST_REQUEST_IDENTIFIER));
} }
@Test @Test

View File

@ -19,14 +19,14 @@ package org.apache.nifi.registry.web.security.authentication.oidc;
import com.nimbusds.oauth2.sdk.Scope; import com.nimbusds.oauth2.sdk.Scope;
import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.nifi.registry.properties.NiFiRegistryProperties; import org.apache.nifi.registry.properties.NiFiRegistryProperties;
import org.junit.Test; import org.junit.jupiter.api.Test;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;

View File

@ -17,9 +17,9 @@
package org.apache.nifi.registry.ui; package org.apache.nifi.registry.ui;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert; import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.JavascriptExecutor;
@ -34,8 +34,8 @@ import io.github.bonigarcia.wdm.WebDriverManager;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class ITCreateBucket { public class ITCreateBucket {
private WebDriver driver; private WebDriver driver;
@ -44,7 +44,7 @@ public class ITCreateBucket {
private WebDriverWait wait; private WebDriverWait wait;
private StringBuffer verificationErrors = new StringBuffer(); private StringBuffer verificationErrors = new StringBuffer();
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
WebDriverManager.chromedriver().setup(); WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(); driver = new ChromeDriver();
@ -95,7 +95,7 @@ public class ITCreateBucket {
assertEquals(1, bucketCount.size()); assertEquals(1, bucketCount.size());
} }
@After @AfterEach
public void tearDown() throws Exception { public void tearDown() throws Exception {
// bucket cleanup // bucket cleanup

View File

@ -17,9 +17,9 @@
package org.apache.nifi.registry.ui; package org.apache.nifi.registry.ui;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert; import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException; import org.openqa.selenium.NoAlertPresentException;
@ -31,7 +31,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait; import org.openqa.selenium.support.ui.WebDriverWait;
import io.github.bonigarcia.wdm.WebDriverManager; import io.github.bonigarcia.wdm.WebDriverManager;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class ITCreateBucketCancel { public class ITCreateBucketCancel {
private WebDriver driver; private WebDriver driver;
@ -40,7 +40,7 @@ public class ITCreateBucketCancel {
private WebDriverWait wait; private WebDriverWait wait;
private StringBuffer verificationErrors = new StringBuffer(); private StringBuffer verificationErrors = new StringBuffer();
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
WebDriverManager.chromedriver().setup(); WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(); driver = new ChromeDriver();
@ -91,7 +91,7 @@ public class ITCreateBucketCancel {
} }
@After @AfterEach
public void tearDown() throws Exception { public void tearDown() throws Exception {
driver.quit(); driver.quit();
String verificationErrorString = verificationErrors.toString(); String verificationErrorString = verificationErrors.toString();

View File

@ -17,9 +17,9 @@
package org.apache.nifi.registry.ui; package org.apache.nifi.registry.ui;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert; import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.JavascriptExecutor;
@ -35,8 +35,8 @@ import io.github.bonigarcia.wdm.WebDriverManager;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class ITCreateDuplicateBucket { public class ITCreateDuplicateBucket {
private WebDriver driver; private WebDriver driver;
@ -45,7 +45,7 @@ public class ITCreateDuplicateBucket {
private WebDriverWait wait; private WebDriverWait wait;
private StringBuffer verificationErrors = new StringBuffer(); private StringBuffer verificationErrors = new StringBuffer();
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
WebDriverManager.chromedriver().setup(); WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(); driver = new ChromeDriver();
@ -141,7 +141,7 @@ public class ITCreateDuplicateBucket {
assertEquals(1, bucketCount.size()); assertEquals(1, bucketCount.size());
} }
@After @AfterEach
public void tearDown() throws Exception { public void tearDown() throws Exception {
// bucket cleanup // bucket cleanup

View File

@ -17,9 +17,9 @@
package org.apache.nifi.registry.ui; package org.apache.nifi.registry.ui;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert; import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.JavascriptExecutor;
@ -34,8 +34,8 @@ import io.github.bonigarcia.wdm.WebDriverManager;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class ITCreateMultipleBuckets { public class ITCreateMultipleBuckets {
private WebDriver driver; private WebDriver driver;
@ -44,7 +44,7 @@ public class ITCreateMultipleBuckets {
private WebDriverWait wait; private WebDriverWait wait;
private StringBuffer verificationErrors = new StringBuffer(); private StringBuffer verificationErrors = new StringBuffer();
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
WebDriverManager.chromedriver().setup(); WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(); driver = new ChromeDriver();
@ -127,7 +127,7 @@ public class ITCreateMultipleBuckets {
} }
@After @AfterEach
public void tearDown() throws Exception { public void tearDown() throws Exception {
// bucket cleanup // bucket cleanup

View File

@ -17,9 +17,9 @@
package org.apache.nifi.registry.ui; package org.apache.nifi.registry.ui;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert; import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException; import org.openqa.selenium.NoAlertPresentException;
@ -33,8 +33,8 @@ import io.github.bonigarcia.wdm.WebDriverManager;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class ITDeleteSingleBucket { public class ITDeleteSingleBucket {
private WebDriver driver; private WebDriver driver;
@ -43,7 +43,7 @@ public class ITDeleteSingleBucket {
private WebDriverWait wait; private WebDriverWait wait;
private StringBuffer verificationErrors = new StringBuffer(); private StringBuffer verificationErrors = new StringBuffer();
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
WebDriverManager.chromedriver().setup(); WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(); driver = new ChromeDriver();
@ -117,7 +117,7 @@ public class ITDeleteSingleBucket {
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("[data-automation-id='no-buckets-message']"))); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("[data-automation-id='no-buckets-message']")));
} }
@After @AfterEach
public void tearDown() throws Exception { public void tearDown() throws Exception {
driver.quit(); driver.quit();
String verificationErrorString = verificationErrors.toString(); String verificationErrorString = verificationErrors.toString();

View File

@ -17,9 +17,9 @@
package org.apache.nifi.registry.ui; package org.apache.nifi.registry.ui;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert; import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.JavascriptExecutor;
@ -34,8 +34,8 @@ import io.github.bonigarcia.wdm.WebDriverManager;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class ITDeleteSingleBucketCancel { public class ITDeleteSingleBucketCancel {
private WebDriver driver; private WebDriver driver;
@ -44,7 +44,7 @@ public class ITDeleteSingleBucketCancel {
private WebDriverWait wait; private WebDriverWait wait;
private StringBuffer verificationErrors = new StringBuffer(); private StringBuffer verificationErrors = new StringBuffer();
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
WebDriverManager.chromedriver().setup(); WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(); driver = new ChromeDriver();
@ -116,7 +116,7 @@ public class ITDeleteSingleBucketCancel {
assertEquals(1, bucketCount.size()); assertEquals(1, bucketCount.size());
} }
@After @AfterEach
public void tearDown() throws Exception { public void tearDown() throws Exception {
// bucket cleanup // bucket cleanup

View File

@ -17,9 +17,9 @@
package org.apache.nifi.registry.ui; package org.apache.nifi.registry.ui;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert; import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.JavascriptExecutor;
@ -35,8 +35,8 @@ import io.github.bonigarcia.wdm.WebDriverManager;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class ITRenameBucket { public class ITRenameBucket {
private WebDriver driver; private WebDriver driver;
@ -45,7 +45,7 @@ public class ITRenameBucket {
private WebDriverWait wait; private WebDriverWait wait;
private StringBuffer verificationErrors = new StringBuffer(); private StringBuffer verificationErrors = new StringBuffer();
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
WebDriverManager.chromedriver().setup(); WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(); driver = new ChromeDriver();
@ -132,7 +132,7 @@ public class ITRenameBucket {
assertEquals(1, bucketCount.size()); assertEquals(1, bucketCount.size());
} }
@After @AfterEach
public void tearDown() throws Exception { public void tearDown() throws Exception {
// wait for side nav to close // wait for side nav to close
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("mat-sidenav"))); wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("mat-sidenav")));

View File

@ -17,9 +17,9 @@
package org.apache.nifi.registry.ui; package org.apache.nifi.registry.ui;
import org.junit.After; import org.junit.jupiter.api.AfterEach;
import org.junit.Before; import org.junit.jupiter.api.BeforeEach;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert; import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.JavascriptExecutor;
@ -35,8 +35,8 @@ import io.github.bonigarcia.wdm.WebDriverManager;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.fail; import static org.junit.jupiter.api.Assertions.fail;
public class ITRenameBucketDuplicate { public class ITRenameBucketDuplicate {
private WebDriver driver; private WebDriver driver;
@ -45,7 +45,7 @@ public class ITRenameBucketDuplicate {
private WebDriverWait wait; private WebDriverWait wait;
private StringBuffer verificationErrors = new StringBuffer(); private StringBuffer verificationErrors = new StringBuffer();
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
WebDriverManager.chromedriver().setup(); WebDriverManager.chromedriver().setup();
driver = new ChromeDriver(); driver = new ChromeDriver();
@ -180,7 +180,7 @@ public class ITRenameBucketDuplicate {
assertEquals(2, bucketCount.size()); assertEquals(2, bucketCount.size());
} }
@After @AfterEach
public void tearDown() throws Exception { public void tearDown() throws Exception {
// wait for side nav to close // wait for side nav to close
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("mat-sidenav"))); wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("mat-sidenav")));