use of com.synopsys.integration.alert.database.settings.proxy.SettingsProxyConfigurationEntity in project hub-alert by blackducksoftware.
the class SettingsProxyConfigAccessor method updateConfiguration.
@Override
@Transactional(propagation = Propagation.REQUIRED)
public SettingsProxyModel updateConfiguration(SettingsProxyModel configuration) throws AlertConfigurationException {
SettingsProxyConfigurationEntity configurationEntity = settingsProxyConfigurationRepository.findByName(AlertRestConstants.DEFAULT_CONFIGURATION_NAME).orElseThrow(() -> new AlertConfigurationException("Proxy config does not exist"));
if (BooleanUtils.toBoolean(configuration.getIsProxyPasswordSet()) && configuration.getProxyPassword().isEmpty()) {
String decryptedPassword = encryptionUtility.decrypt(configurationEntity.getPassword());
configuration.setProxyPassword(decryptedPassword);
}
UUID configurationId = configurationEntity.getConfigurationId();
OffsetDateTime currentTime = DateUtils.createCurrentDateTimestamp();
SettingsProxyConfigurationEntity configurationToSave = toEntity(configurationId, configuration, configurationEntity.getCreatedAt(), currentTime);
SettingsProxyConfigurationEntity savedProxyConfig = settingsProxyConfigurationRepository.save(configurationToSave);
List<NonProxyHostConfigurationEntity> nonProxyHosts = toNonProxyHostEntityList(configurationId, configuration);
nonProxyHostsConfigurationRepository.saveAll(nonProxyHosts);
savedProxyConfig = settingsProxyConfigurationRepository.getOne(savedProxyConfig.getConfigurationId());
return createConfigModel(savedProxyConfig);
}
use of com.synopsys.integration.alert.database.settings.proxy.SettingsProxyConfigurationEntity in project hub-alert by blackducksoftware.
the class SettingsProxyConfigAccessor method createConfiguration.
@Override
@Transactional(propagation = Propagation.REQUIRED)
public SettingsProxyModel createConfiguration(SettingsProxyModel configuration) throws AlertConfigurationException {
if (doesConfigurationExist()) {
throw new AlertConfigurationException("A proxy config already exists.");
}
OffsetDateTime currentTime = DateUtils.createCurrentDateTimestamp();
UUID configurationId = UUID.randomUUID();
configuration.setId(configurationId.toString());
SettingsProxyConfigurationEntity configurationToSave = toEntity(configurationId, configuration, currentTime, currentTime);
SettingsProxyConfigurationEntity savedProxyConfig = settingsProxyConfigurationRepository.save(configurationToSave);
List<NonProxyHostConfigurationEntity> nonProxyHosts = toNonProxyHostEntityList(configurationId, configuration);
nonProxyHostsConfigurationRepository.saveAll(nonProxyHosts);
savedProxyConfig = settingsProxyConfigurationRepository.getOne(savedProxyConfig.getConfigurationId());
return createConfigModel(savedProxyConfig);
}
use of com.synopsys.integration.alert.database.settings.proxy.SettingsProxyConfigurationEntity in project hub-alert by blackducksoftware.
the class ProxyConfigurationModelSaveActionsTest method createInvalidConversionTest.
@Test
void createInvalidConversionTest() {
AtomicReference<SettingsProxyConfigurationEntity> savedEntity = new AtomicReference<>();
AtomicReference<NonProxyHostConfigurationEntity> savedNonProxyHostEntity = new AtomicReference<>();
SettingsProxyConfigurationRepository settingsProxyConfigurationRepository = Mockito.mock(SettingsProxyConfigurationRepository.class);
NonProxyHostsConfigurationRepository nonProxyHostsConfigurationRepository = Mockito.mock(NonProxyHostsConfigurationRepository.class);
Mockito.when(settingsProxyConfigurationRepository.save(Mockito.any(SettingsProxyConfigurationEntity.class))).thenAnswer(invocation -> {
savedEntity.set(invocation.getArgument(0));
return savedEntity.get();
});
Mockito.when(nonProxyHostsConfigurationRepository.saveAll(Mockito.any(List.class))).thenAnswer(invocation -> {
Iterable<NonProxyHostConfigurationEntity> iterable = invocation.getArgument(0);
for (NonProxyHostConfigurationEntity entity : iterable) {
savedNonProxyHostEntity.set(entity);
}
return List.of(savedNonProxyHostEntity.get());
});
SettingsProxyConfigAccessor configurationAccessor = new SettingsProxyConfigAccessor(encryptionUtility, settingsProxyConfigurationRepository, nonProxyHostsConfigurationRepository);
SettingsProxyCrudActions settingsProxyCrudActions = new SettingsProxyCrudActions(authorizationManager, configurationAccessor, validator, settingsDescriptorKey);
ProxyConfigurationModelSaveActions saveActions = new ProxyConfigurationModelSaveActions(converter, settingsProxyCrudActions);
ConfigurationModel configurationModel = createDefaultConfigurationModel();
updateField(configurationModel, ProxyConfigurationModelConverter.FIELD_KEY_PORT, "badport");
saveActions.createConcreteModel(configurationModel);
SettingsProxyConfigurationEntity actualEntity = savedEntity.get();
NonProxyHostConfigurationEntity actualNonProxyHosts = savedNonProxyHostEntity.get();
assertNull(actualEntity);
assertNull(actualNonProxyHosts);
}
use of com.synopsys.integration.alert.database.settings.proxy.SettingsProxyConfigurationEntity in project hub-alert by blackducksoftware.
the class ProxyConfigurationModelSaveActionsTest method deleteTest.
@Test
void deleteTest() {
AtomicReference<SettingsProxyConfigurationEntity> savedEntity = new AtomicReference<>();
AtomicReference<NonProxyHostConfigurationEntity> savedNonProxyHostEntity = new AtomicReference<>();
SettingsProxyConfigurationRepository settingsProxyConfigurationRepository = Mockito.mock(SettingsProxyConfigurationRepository.class);
NonProxyHostsConfigurationRepository nonProxyHostsConfigurationRepository = Mockito.mock(NonProxyHostsConfigurationRepository.class);
Mockito.when(settingsProxyConfigurationRepository.save(Mockito.any(SettingsProxyConfigurationEntity.class))).thenAnswer(invocation -> {
savedEntity.set(invocation.getArgument(0));
return savedEntity.get();
});
Mockito.when(settingsProxyConfigurationRepository.findByName(Mockito.anyString())).thenAnswer(invocation -> Optional.ofNullable(savedEntity.get()));
Mockito.doAnswer(invocation -> {
savedEntity.set(null);
savedNonProxyHostEntity.set(null);
return null;
}).when(settingsProxyConfigurationRepository).deleteByName(Mockito.anyString());
Mockito.when(settingsProxyConfigurationRepository.existsByName(Mockito.anyString())).thenAnswer(invocation -> savedEntity.get() != null);
Mockito.when(nonProxyHostsConfigurationRepository.saveAll(Mockito.any(List.class))).thenAnswer(invocation -> {
Iterable<NonProxyHostConfigurationEntity> iterable = invocation.getArgument(0);
for (NonProxyHostConfigurationEntity entity : iterable) {
savedNonProxyHostEntity.set(entity);
}
return List.of(savedNonProxyHostEntity.get());
});
SettingsProxyConfigAccessor configurationAccessor = new SettingsProxyConfigAccessor(encryptionUtility, settingsProxyConfigurationRepository, nonProxyHostsConfigurationRepository);
SettingsProxyCrudActions settingsProxyCrudActions = new SettingsProxyCrudActions(authorizationManager, configurationAccessor, validator, settingsDescriptorKey);
ProxyConfigurationModelSaveActions saveActions = new ProxyConfigurationModelSaveActions(converter, settingsProxyCrudActions);
ConfigurationModel configurationModel = createDefaultConfigurationModel();
saveActions.createConcreteModel(configurationModel);
SettingsProxyConfigurationEntity actualEntity = savedEntity.get();
NonProxyHostConfigurationEntity actualNonProxyHosts = savedNonProxyHostEntity.get();
assertNotNull(actualEntity);
assertNotNull(actualNonProxyHosts);
saveActions.deleteConcreteModel(configurationModel);
actualEntity = savedEntity.get();
actualNonProxyHosts = savedNonProxyHostEntity.get();
assertNull(actualEntity);
assertNull(actualNonProxyHosts);
}
use of com.synopsys.integration.alert.database.settings.proxy.SettingsProxyConfigurationEntity in project hub-alert by blackducksoftware.
the class ProxyConfigurationModelSaveActionsTest method updateInvalidConversionTest.
@Test
void updateInvalidConversionTest() {
AtomicReference<SettingsProxyConfigurationEntity> savedEntity = new AtomicReference<>();
AtomicReference<NonProxyHostConfigurationEntity> savedNonProxyHostEntity = new AtomicReference<>();
SettingsProxyConfigurationRepository settingsProxyConfigurationRepository = Mockito.mock(SettingsProxyConfigurationRepository.class);
NonProxyHostsConfigurationRepository nonProxyHostsConfigurationRepository = Mockito.mock(NonProxyHostsConfigurationRepository.class);
Mockito.when(settingsProxyConfigurationRepository.save(Mockito.any(SettingsProxyConfigurationEntity.class))).thenAnswer(invocation -> {
savedEntity.set(invocation.getArgument(0));
return savedEntity.get();
});
Mockito.when(settingsProxyConfigurationRepository.findByName(Mockito.anyString())).thenAnswer(invocation -> Optional.ofNullable(savedEntity.get()));
Mockito.when(nonProxyHostsConfigurationRepository.saveAll(Mockito.any(List.class))).thenAnswer(invocation -> {
Iterable<NonProxyHostConfigurationEntity> iterable = invocation.getArgument(0);
for (NonProxyHostConfigurationEntity entity : iterable) {
savedNonProxyHostEntity.set(entity);
}
return List.of(savedNonProxyHostEntity.get());
});
SettingsProxyConfigAccessor configurationAccessor = new SettingsProxyConfigAccessor(encryptionUtility, settingsProxyConfigurationRepository, nonProxyHostsConfigurationRepository);
SettingsProxyCrudActions settingsProxyCrudActions = new SettingsProxyCrudActions(authorizationManager, configurationAccessor, validator, settingsDescriptorKey);
ProxyConfigurationModelSaveActions saveActions = new ProxyConfigurationModelSaveActions(converter, settingsProxyCrudActions);
String newHost = "updatedHost";
ConfigurationModel configurationModel = createDefaultConfigurationModel();
saveActions.createConcreteModel(configurationModel);
updateField(configurationModel, ProxyConfigurationModelConverter.FIELD_KEY_HOST, newHost);
updateField(configurationModel, ProxyConfigurationModelConverter.FIELD_KEY_PORT, "badPort");
saveActions.updateConcreteModel(configurationModel);
// Assert that the update failed and the original created values are used.
SettingsProxyConfigurationEntity actualEntity = savedEntity.get();
assertEquals(TEST_PROXY_HOST, actualEntity.getHost());
assertEquals(Integer.valueOf(TEST_PROXY_PORT), actualEntity.getPort());
assertEquals(TEST_PROXY_USERNAME, actualEntity.getUsername());
assertEquals(TEST_PROXY_PASSWORD, encryptionUtility.decrypt(actualEntity.getPassword()));
}
Aggregations