import-email-addresses #86
@ -574,10 +574,82 @@ public class ImportHostingAssets extends ImportOfficeData {
|
||||
|
||||
@Test
|
||||
@Order(18020)
|
||||
void validateHostingAssets() {
|
||||
void validateIpNumberAssets() {
|
||||
validateHostingAssets(ipNumberAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18021)
|
||||
void validateServerAndWebspaceAssets() {
|
||||
validateHostingAssets(packetAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18022)
|
||||
void validateUnixUserAssets() {
|
||||
validateHostingAssets(unixUserAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18023)
|
||||
void validateEmailAliasAssets() {
|
||||
validateHostingAssets(emailAliasAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18030)
|
||||
void validateDbInstanceAssets() {
|
||||
validateHostingAssets(dbInstanceAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18031)
|
||||
void validateDbUserAssets() {
|
||||
validateHostingAssets(dbUserAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18032)
|
||||
void validateDbAssets() {
|
||||
validateHostingAssets(dbAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18040)
|
||||
void validateDomainSetupAssets() {
|
||||
validateHostingAssets(domainSetupAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18041)
|
||||
void validateDomainDnsSetupAssets() {
|
||||
validateHostingAssets(domainDnsSetupAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18042)
|
||||
void validateDomainHttpSetupAssets() {
|
||||
validateHostingAssets(domainHttpSetupAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18043)
|
||||
void validateDomainSmtpSetupAssets() {
|
||||
validateHostingAssets(domainSmtpSetupAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18044)
|
||||
void validateDomainMBoxSetupAssets() {
|
||||
validateHostingAssets(domainMBoxSetupAssets);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(18050)
|
||||
void validateEmailAddressAssets() {
|
||||
validateHostingAssets(emailAddressAssets);
|
||||
}
|
||||
|
||||
void validateHostingAssets(final Map<Integer, HsHostingAssetRealEntity> assets) {
|
||||
assets.forEach((id, ha) -> {
|
||||
try {
|
||||
@ -793,8 +865,15 @@ public class ImportHostingAssets extends ImportOfficeData {
|
||||
.getSingleResult();
|
||||
assertThat(haCount).isGreaterThan(isImportingControlledTestData() ? 40 : 15000);
|
||||
|
||||
verifyActuallyPersistedHostingAssetCount(CLOUD_SERVER, 1, 50);
|
||||
verifyActuallyPersistedHostingAssetCount(MANAGED_SERVER, 4, 100);
|
||||
verifyActuallyPersistedHostingAssetCount(MANAGED_WEBSPACE, 4, 100);
|
||||
verifyActuallyPersistedHostingAssetCount(UNIX_USER, 14, 100);
|
||||
verifyActuallyPersistedHostingAssetCount(EMAIL_ALIAS, 9, 1400);
|
||||
verifyActuallyPersistedHostingAssetCount(EMAIL_ADDRESS, 70, 30000);
|
||||
verifyActuallyPersistedHostingAssetCount(PGSQL_DATABASE, 8, 100);
|
||||
verifyActuallyPersistedHostingAssetCount(MARIADB_DATABASE, 8, 100);
|
||||
verifyActuallyPersistedHostingAssetCount(DOMAIN_SETUP, 9, 100);
|
||||
verifyActuallyPersistedHostingAssetCount(EMAIL_ADDRESS, 71, 30000);
|
||||
}
|
||||
|
||||
// ============================================================================================
|
||||
@ -835,35 +914,39 @@ public class ImportHostingAssets extends ImportOfficeData {
|
||||
final var assetsOfType = assets.entrySet().stream()
|
||||
.filter(entry -> type == null || type == entry.getValue().getType())
|
||||
.toList();
|
||||
final var chunkSize = isImportingControlledTestData() ? 10: 500;
|
||||
ListUtils.partition(assetsOfType, chunkSize).forEach(chunk -> {
|
||||
chunk.forEach(entry -> {
|
||||
jpaAttempt.transacted(() -> {
|
||||
final var chunkSize = isImportingControlledTestData() ? 10 : 500;
|
||||
ListUtils.partition(assetsOfType, chunkSize).forEach(chunk ->
|
||||
jpaAttempt.transacted(() -> {
|
||||
context(rbacSuperuser);
|
||||
logError(() ->
|
||||
new HostingAssetEntitySaveProcessor(em, entry.getValue())
|
||||
.preprocessEntity()
|
||||
.validateEntityIgnoring("'EMAIL_ALIAS:.*\\.config\\.target' .*")
|
||||
.prepareForSave()
|
||||
.saveUsing(entity -> persist(entry.getKey(), entity))
|
||||
.validateContext()
|
||||
);
|
||||
}).assertSuccessful();
|
||||
});
|
||||
}
|
||||
chunk.forEach(entry ->
|
||||
logError(() ->
|
||||
new HostingAssetEntitySaveProcessor(em, entry.getValue())
|
||||
.preprocessEntity()
|
||||
.validateEntityIgnoring("'EMAIL_ALIAS:.*\\.config\\.target' .*")
|
||||
.prepareForSave()
|
||||
.saveUsing(entity -> persist(entry.getKey(), entity))
|
||||
.validateContext()
|
||||
));
|
||||
}
|
||||
).assertSuccessful()
|
||||
);
|
||||
}
|
||||
|
||||
private void verifyActuallyPersistedHostingAssetCount(
|
||||
final HsHostingAssetType assetType,
|
||||
final int minExpectedInTestData,
|
||||
final int minExpectedInProdData) {
|
||||
final int expectedCountInTestDataCount,
|
||||
final int minCountExpectedInProdData) {
|
||||
final var q = em.createNativeQuery(
|
||||
"select count(*) from hs_hosting_asset where type = cast(:type as HsHostingAssetType)",
|
||||
Integer.class);
|
||||
q.setParameter("type", assetType.name());
|
||||
final var count = (Integer) q.getSingleResult();
|
||||
assertThat(count).isGreaterThan(isImportingControlledTestData() ? minExpectedInTestData : minExpectedInProdData);
|
||||
if (isImportingControlledTestData()) {
|
||||
assertThat(count).isEqualTo(expectedCountInTestDataCount);
|
||||
} else {
|
||||
assertThat(count).isGreaterThanOrEqualTo(minCountExpectedInProdData);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void importIpNumbers(final String[] header, final List<String[]> records) {
|
||||
|
Loading…
Reference in New Issue
Block a user