ACS-3347 Upgrade to Java 17 (#1253)

* Addressing JDK-8189366, JDK-8212114, JDK-8208487, changes to default legacy Locale ISO Code conversions and changes to JVM arguments to allow illegal reflective access
This commit is contained in:
Domenico Sibilio
2022-08-01 09:30:56 +02:00
committed by GitHub
parent e533af4ecb
commit aba89218e6
9 changed files with 975 additions and 1030 deletions

View File

@@ -1,7 +1,7 @@
--- ---
dist: focal dist: focal
language: java language: java
jdk: openjdk11 jdk: openjdk17
services: services:
- docker - docker

View File

@@ -30,16 +30,20 @@
<plugin> <plugin>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<configuration> <configuration>
<!-- Keeping illegal-access=permit for Java 11 compatibility, even though it has no effect on JDK 17 -->
<argLine> <argLine>
--illegal-access=permit --illegal-access=permit
--add-opens=java.base/java.lang=ALL-UNNAMED
</argLine> </argLine>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-failsafe-plugin</artifactId> <artifactId>maven-failsafe-plugin</artifactId>
<!-- Keeping illegal-access=permit for Java 11 compatibility, even though it has no effect on JDK 17 -->
<configuration> <configuration>
<argLine> <argLine>
--illegal-access=permit --illegal-access=permit
--add-opens=java.base/java.lang=ALL-UNNAMED
</argLine> </argLine>
</configuration> </configuration>
</plugin> </plugin>

View File

@@ -1,6 +1,6 @@
# Fetch image based on Tomcat 9.0, Java 11 and Centos 7 # Fetch image based on Tomcat 9.0, Java 17 and Rocky Linux 8
# More infos about this image: https://github.com/Alfresco/alfresco-docker-base-tomcat # More infos about this image: https://github.com/Alfresco/alfresco-docker-base-tomcat
FROM alfresco/alfresco-base-tomcat:tomcat9-jre11-rockylinux8-202205140719 FROM alfresco/alfresco-base-tomcat:tomcat9-jre17-rockylinux8-202205140719
# Set default docker_context. # Set default docker_context.
ARG resource_path=target ARG resource_path=target

View File

@@ -106,8 +106,10 @@
<suiteXmlFiles> <suiteXmlFiles>
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile> <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
</suiteXmlFiles> </suiteXmlFiles>
<!-- Keeping illegal-access=warn for Java 11 compatibility, even though it has no effect on JDK 17 -->
<argLine> <argLine>
--illegal-access=warn --illegal-access=warn
--add-opens=java.base/java.lang=ALL-UNNAMED
</argLine> </argLine>
</configuration> </configuration>
</plugin> </plugin>

View File

@@ -78,8 +78,10 @@
<suiteXmlFiles> <suiteXmlFiles>
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile> <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
</suiteXmlFiles> </suiteXmlFiles>
<!-- Keeping illegal-access=warn for Java 11 compatibility, even though it has no effect on JDK 17 -->
<argLine> <argLine>
--illegal-access=warn --illegal-access=warn
--add-opens=java.base/java.lang=ALL-UNNAMED
</argLine> </argLine>
</configuration> </configuration>
</plugin> </plugin>

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Repository * Alfresco Repository
* %% * %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited * Copyright (C) 2005 - 2022 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of * If the software was purchased under a paid Alfresco license, the terms of
@@ -25,6 +25,12 @@
*/ */
package org.alfresco.repo.action.executer; package org.alfresco.repo.action.executer;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
@@ -34,21 +40,13 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.management.subsystems.ApplicationContextFactory; import org.alfresco.repo.management.subsystems.ApplicationContextFactory;
import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.repo.tenant.TenantService; import org.alfresco.repo.tenant.TenantService;
import org.alfresco.repo.tenant.TenantUtil; import org.alfresco.repo.tenant.TenantUtil;
import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.action.Action;
@@ -74,7 +72,7 @@ import org.springframework.context.ApplicationContext;
* Provides tests for the MailActionExecuter class. Most of this logic was in MailActionExecuterTest. * Provides tests for the MailActionExecuter class. Most of this logic was in MailActionExecuterTest.
* Cloud code now includes extra tests and different rule config. * Cloud code now includes extra tests and different rule config.
* Unfortunately this is messy due to the extensive use of static variables and Junit rules annotations. * Unfortunately this is messy due to the extensive use of static variables and Junit rules annotations.
* This class contains most of the test code, child classes actually setup the ClassRules and test fixtures, of * This class contains most of the test code, child classes actually set up the ClassRules and test fixtures, of
* particular importance is the static setupRuleChain() method in the child classes. The name is just a convention because * particular importance is the static setupRuleChain() method in the child classes. The name is just a convention because
* it can't actually be enforced. The setupRuleChain() actually creates the users, as well as ordering the rules. * it can't actually be enforced. The setupRuleChain() actually creates the users, as well as ordering the rules.
* You will see the AlfrescoPerson variables below are initialized as null, the assumption is that the child classes will * You will see the AlfrescoPerson variables below are initialized as null, the assumption is that the child classes will
@@ -93,7 +91,7 @@ public abstract class AbstractMailActionExecuterTest
public static AlfrescoPerson AUSTRALIAN_USER = null; public static AlfrescoPerson AUSTRALIAN_USER = null;
public static AlfrescoPerson EXTERNAL_USER = null; public static AlfrescoPerson EXTERNAL_USER = null;
private static String ALFRESCO_EE_USER = "plainUser"; private static final String ALFRESCO_EE_USER = "plainUser";
protected static TransactionService TRANSACTION_SERVICE; protected static TransactionService TRANSACTION_SERVICE;
protected static ActionService ACTION_SERVICE; protected static ActionService ACTION_SERVICE;
@@ -122,7 +120,7 @@ public abstract class AbstractMailActionExecuterTest
AuthenticationUtil.setRunAsUserSystem(); AuthenticationUtil.setRunAsUserSystem();
Map<QName, Serializable> properties = new HashMap<QName, Serializable>(1); Map<QName, Serializable> properties = new HashMap<>(1);
properties.put(ContentModel.PROP_USERNAME, ALFRESCO_EE_USER); properties.put(ContentModel.PROP_USERNAME, ALFRESCO_EE_USER);
properties.put(ContentModel.PROP_EMAIL, "testemail@testdomain.com"); properties.put(ContentModel.PROP_EMAIL, "testemail@testdomain.com");
PERSON_SERVICE.createPerson(properties, null); PERSON_SERVICE.createPerson(properties, null);
@@ -130,26 +128,21 @@ public abstract class AbstractMailActionExecuterTest
// All these test users are in the same tenant - either they're enterprise where there's only one, // All these test users are in the same tenant - either they're enterprise where there's only one,
// or they're cloud, where they have the same email domain // or they're cloud, where they have the same email domain
final String tenantId = getUsersHomeTenant(FRENCH_USER.getUsername()); final String tenantId = getUsersHomeTenant(FRENCH_USER.getUsername());
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Object>() TenantUtil.runAsSystemTenant(() -> {
{ final Map<String, Serializable> preferences = new HashMap<>();
@Override
public Object doWork() throws Exception
{
final Map<String, Serializable> preferences = new HashMap<String, Serializable>();
preferences.put("locale", "fr"); preferences.put("locale", "fr");
PREFERENCE_SERVICE.setPreferences(FRENCH_USER.getUsername(), preferences); PREFERENCE_SERVICE.setPreferences(FRENCH_USER.getUsername(), preferences);
preferences.clear(); preferences.clear();
preferences.put("locale", "en_GB"); preferences.put("locale", "en_GB");
PREFERENCE_SERVICE.setPreferences(BRITISH_USER.getUsername(), preferences); PREFERENCE_SERVICE.setPreferences(BRITISH_USER.getUsername(), preferences);
preferences.clear(); preferences.clear();
preferences.put("locale", "en_AU"); preferences.put("locale", "en_AU");
PREFERENCE_SERVICE.setPreferences(AUSTRALIAN_USER.getUsername(), preferences); PREFERENCE_SERVICE.setPreferences(AUSTRALIAN_USER.getUsername(), preferences);
return null; return null;
}
}, tenantId); }, tenantId);
} }
@@ -167,7 +160,7 @@ public abstract class AbstractMailActionExecuterTest
String result = TenantService.DEFAULT_DOMAIN; String result = TenantService.DEFAULT_DOMAIN;
// Even if we get email address-style user names in an enterprise system, those are not to be given home tenants. // Even if we get email address-style usernames in an enterprise system, those are not to be given home tenants.
if (thisIsCloud) if (thisIsCloud)
{ {
String[] elems = userName.split("@"); String[] elems = userName.split("@");
@@ -195,13 +188,13 @@ public abstract class AbstractMailActionExecuterTest
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing"); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl"); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, (Serializable) getModel()); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel());
ACTION_SERVICE.executeAction(mailAction, null); ACTION_SERVICE.executeAction(mailAction, null);
MimeMessage message = ACTION_EXECUTER.retrieveLastTestMessage(); MimeMessage message = ACTION_EXECUTER.retrieveLastTestMessage();
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals("Hello Jan 1, 1970", (String) message.getContent()); Assert.assertEquals("Hello Jan 1, 1970", message.getContent());
} }
@Test @Test
@@ -215,18 +208,18 @@ public abstract class AbstractMailActionExecuterTest
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing"); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl"); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, (Serializable) getModel()); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel());
ACTION_SERVICE.executeAction(mailAction, null); ACTION_SERVICE.executeAction(mailAction, null);
MimeMessage message = ACTION_EXECUTER.retrieveLastTestMessage(); MimeMessage message = ACTION_EXECUTER.retrieveLastTestMessage();
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals("Hello Jan 1, 1970", (String) message.getContent()); Assert.assertEquals("Hello Jan 1, 1970", message.getContent());
} }
private Serializable getModel() private Serializable getModel()
{ {
Map<String, Object> model = new HashMap<String, Object>(); Map<String, Object> model = new HashMap<>();
model.put("epoch", new Date(0)); model.put("epoch", new Date(0));
return (Serializable) model; return (Serializable) model;
@@ -243,7 +236,7 @@ public abstract class AbstractMailActionExecuterTest
MimeMessage message = sendMessage(from, recipients, subject, template); MimeMessage message = sendMessage(from, recipients, subject, template);
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals("Bonjour 1 janv. 1970", (String) message.getContent()); Assert.assertEquals("Bonjour 1 janv. 1970", message.getContent());
} }
@Test @Test
@@ -262,7 +255,7 @@ public abstract class AbstractMailActionExecuterTest
MimeMessage message = sendMessage(from, subject, null, text, mailAction); MimeMessage message = sendMessage(from, subject, null, text, mailAction);
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals(text, (String) message.getContent()); Assert.assertEquals(text, message.getContent());
Assert.assertEquals("text/plain", // Ignore charset Assert.assertEquals("text/plain", // Ignore charset
message.getDataHandler().getContentType().substring(0, 10)); message.getDataHandler().getContentType().substring(0, 10));
@@ -271,7 +264,7 @@ public abstract class AbstractMailActionExecuterTest
message = sendMessage(from, subject, null, text, mailAction); message = sendMessage(from, subject, null, text, mailAction);
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals(text, (String) message.getContent()); Assert.assertEquals(text, message.getContent());
Assert.assertEquals("text/html", // Ignore charset Assert.assertEquals("text/html", // Ignore charset
message.getDataHandler().getContentType().substring(0, 9)); message.getDataHandler().getContentType().substring(0, 9));
@@ -280,7 +273,7 @@ public abstract class AbstractMailActionExecuterTest
message = sendMessage(from, subject, null, text, mailAction); message = sendMessage(from, subject, null, text, mailAction);
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals(text, (String) message.getContent()); Assert.assertEquals(text, message.getContent());
Assert.assertEquals("text/html", // Ignore charset Assert.assertEquals("text/html", // Ignore charset
message.getDataHandler().getContentType().substring(0, 9)); message.getDataHandler().getContentType().substring(0, 9));
} }
@@ -316,15 +309,9 @@ public abstract class AbstractMailActionExecuterTest
RetryingTransactionHelper txHelper = APP_CONTEXT_INIT.getApplicationContext().getBean("retryingTransactionHelper", RetryingTransactionHelper.class); RetryingTransactionHelper txHelper = APP_CONTEXT_INIT.getApplicationContext().getBean("retryingTransactionHelper", RetryingTransactionHelper.class);
return txHelper.doInTransaction(new RetryingTransactionCallback<MimeMessage>() return txHelper.doInTransaction(() -> {
{ ACTION_SERVICE.executeAction(mailAction, null);
@Override return ACTION_EXECUTER.retrieveLastTestMessage();
public MimeMessage execute() throws Throwable
{
ACTION_SERVICE.executeAction(mailAction, null);
return ACTION_EXECUTER.retrieveLastTestMessage();
}
}, true); }, true);
} }
@@ -349,11 +336,11 @@ public abstract class AbstractMailActionExecuterTest
MimeMessage message = sendMessage(from, recipients, subject, template); MimeMessage message = sendMessage(from, recipients, subject, template);
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals("Hello 1 Jan 1970", (String) message.getContent()); Assert.assertEquals("Hello 1 Jan 1970", message.getContent());
} }
@Test @Test
public void testUnknowRecipientAustralianSender() throws IOException, MessagingException public void testUnknownRecipientAustralianSender() throws IOException, MessagingException
{ {
String from = AUSTRALIAN_USER.getUsername(); String from = AUSTRALIAN_USER.getUsername();
String to = "some.body@example.com"; String to = "some.body@example.com";
@@ -363,7 +350,7 @@ public abstract class AbstractMailActionExecuterTest
MimeMessage message = sendMessage(from, to, subject, template); MimeMessage message = sendMessage(from, to, subject, template);
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals("G'Day 1 Jan. 1970", (String) message.getContent()); Assert.assertEquals("G'Day 1 Jan 1970", message.getContent());
} }
@Test @Test
@@ -379,15 +366,11 @@ public abstract class AbstractMailActionExecuterTest
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing"); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEXT, "This is a test message."); mailAction.setParameterValue(MailActionExecuter.PARAM_TEXT, "This is a test message.");
TRANSACTION_SERVICE.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>() TRANSACTION_SERVICE.getRetryingTransactionHelper().doInTransaction(
{ (RetryingTransactionCallback<Void>) () -> {
@Override
public Void execute() throws Throwable
{
ACTION_EXECUTER.executeImpl(mailAction, null); ACTION_EXECUTER.executeImpl(mailAction, null);
return null; return null;
} });
});
} }
finally finally
{ {
@@ -419,14 +402,8 @@ public abstract class AbstractMailActionExecuterTest
RetryingTransactionHelper txHelper = APP_CONTEXT_INIT.getApplicationContext().getBean("retryingTransactionHelper", RetryingTransactionHelper.class); RetryingTransactionHelper txHelper = APP_CONTEXT_INIT.getApplicationContext().getBean("retryingTransactionHelper", RetryingTransactionHelper.class);
MimeMessage mm = txHelper.doInTransaction(new RetryingTransactionCallback<MimeMessage>() MimeMessage mm = txHelper.doInTransaction(
{ () -> ACTION_EXECUTER.prepareEmail(mailAction, null, null, null).getMimeMessage(), true);
@Override
public MimeMessage execute() throws Throwable
{
return ACTION_EXECUTER.prepareEmail(mailAction, null, null, null).getMimeMessage();
}
}, true);
Address[] addresses = mm.getRecipients(Message.RecipientType.TO); Address[] addresses = mm.getRecipients(Message.RecipientType.TO);
Assert.assertEquals(1, addresses.length); Assert.assertEquals(1, addresses.length);
@@ -451,12 +428,12 @@ public abstract class AbstractMailActionExecuterTest
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl"); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl");
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Test Subject Params"); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Test Subject Params");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel()); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel());
Pair<String, Locale> recipient = new Pair<String, Locale>("test", Locale.ENGLISH); Pair<String, Locale> recipient = new Pair<>("test", Locale.ENGLISH);
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT_PARAMS, new Object[] {"Test", "Subject", "Params", "Object", "Array"}); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT_PARAMS, new Object[] {"Test", "Subject", "Params", "Object", "Array"});
Assert.assertNotNull("We should support Object[] value for PARAM_SUBJECT_PARAMS", ACTION_EXECUTER.prepareEmail(mailAction, null, recipient, null)); Assert.assertNotNull("We should support Object[] value for PARAM_SUBJECT_PARAMS", ACTION_EXECUTER.prepareEmail(mailAction, null, recipient, null));
ArrayList<Object> params = new ArrayList<Object>(); ArrayList<Object> params = new ArrayList<>();
params.add("Test"); params.add("Test");
params.add("Subject"); params.add("Subject");
params.add("Params"); params.add("Params");
@@ -485,24 +462,16 @@ public abstract class AbstractMailActionExecuterTest
personProps.put(ContentModel.PROP_USERNAME, userName); personProps.put(ContentModel.PROP_USERNAME, userName);
personProps.put(ContentModel.PROP_FIRSTNAME, userName); personProps.put(ContentModel.PROP_FIRSTNAME, userName);
personProps.put(ContentModel.PROP_LASTNAME, userName); personProps.put(ContentModel.PROP_LASTNAME, userName);
if (email != null) personProps.put(ContentModel.PROP_EMAIL, Objects.requireNonNullElseGet(email, () -> userName + "@email.com"));
{
personProps.put(ContentModel.PROP_EMAIL, email);
}
else
{
personProps.put(ContentModel.PROP_EMAIL, userName + "@email.com");
}
return PERSON_SERVICE.createPerson(personProps); return PERSON_SERVICE.createPerson(personProps);
} }
/** /**
* Test for MNT-10874 * Test for MNT-10874
* @throws Exception
*/ */
@Test @Test
public void testUserWithNonExistingTenant() throws Exception public void testUserWithNonExistingTenant()
{ {
final String USER_WITH_NON_EXISTING_TENANT = "test_user_non_tenant@non_existing_tenant.com"; final String USER_WITH_NON_EXISTING_TENANT = "test_user_non_tenant@non_existing_tenant.com";
@@ -517,15 +486,11 @@ public abstract class AbstractMailActionExecuterTest
// run as non admin and non system // run as non admin and non system
AuthenticationUtil.setFullyAuthenticatedUser(BRITISH_USER.getUsername()); AuthenticationUtil.setFullyAuthenticatedUser(BRITISH_USER.getUsername());
TRANSACTION_SERVICE.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>() TRANSACTION_SERVICE.getRetryingTransactionHelper().doInTransaction(
{ (RetryingTransactionCallback<Void>) () -> {
@Override
public Void execute() throws Throwable
{
ACTION_EXECUTER.executeImpl(mailAction, null); ACTION_EXECUTER.executeImpl(mailAction, null);
return null; return null;
} });
});
} }
finally finally
{ {
@@ -539,22 +504,21 @@ public abstract class AbstractMailActionExecuterTest
/** /**
* Test for MNT-11488 * Test for MNT-11488
* @throws IOException
* @throws MessagingException * @throws MessagingException
*/ */
@Test @Test
public void testSendingToMultipleUsers() throws IOException, MessagingException public void testSendingToMultipleUsers() throws MessagingException
{ {
final String USER_1 = "recipient1"; final String USER_1 = "recipient1";
final String USER_2 = "recipient2"; final String USER_2 = "recipient2";
final String[] recipientsArray = { USER_1 + "@email.com", USER_2 + "@email.com" }; final String[] recipientsArray = { USER_1 + "@email.com", USER_2 + "@email.com" };
final List<String> recipientsResult = new ArrayList<String>(Arrays.asList(recipientsArray)) ; final List<String> recipientsResult = new ArrayList<>(Arrays.asList(recipientsArray)) ;
try try
{ {
createUser(USER_1, null); createUser(USER_1, null);
createUser(USER_2, null); createUser(USER_2, null);
ArrayList<String> recipients = new ArrayList<String>(2); ArrayList<String> recipients = new ArrayList<>(2);
recipients.add(USER_1); recipients.add(USER_1);
recipients.add(USER_2); recipients.add(USER_2);
@@ -562,7 +526,7 @@ public abstract class AbstractMailActionExecuterTest
mailAction.setParameterValue(MailActionExecuter.PARAM_FROM, "sender@example.com"); mailAction.setParameterValue(MailActionExecuter.PARAM_FROM, "sender@example.com");
mailAction.setParameterValue(MailActionExecuter.PARAM_TO_MANY, recipients); mailAction.setParameterValue(MailActionExecuter.PARAM_TO_MANY, recipients);
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing"); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, (Serializable) getModel()); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel());
ACTION_EXECUTER.resetTestSentCount(); ACTION_EXECUTER.resetTestSentCount();
@@ -586,10 +550,10 @@ public abstract class AbstractMailActionExecuterTest
/** /**
* Test for CC / BCC * Test for CC / BCC
* @throws Exception * @throws MessagingException
*/ */
@Test @Test
public void testSendingToCarbonCopy() throws IOException, MessagingException public void testSendingToCarbonCopy() throws MessagingException
{ {
// PARAM_TO variant // PARAM_TO variant
Action mailAction = ACTION_SERVICE.createAction(MailActionExecuter.NAME); Action mailAction = ACTION_SERVICE.createAction(MailActionExecuter.NAME);
@@ -601,7 +565,7 @@ public abstract class AbstractMailActionExecuterTest
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing CARBON COPY"); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing CARBON COPY");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl"); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, (Serializable) getModel()); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel());
ACTION_SERVICE.executeAction(mailAction, null); ACTION_SERVICE.executeAction(mailAction, null);
@@ -637,13 +601,13 @@ public abstract class AbstractMailActionExecuterTest
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing"); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl"); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, (Serializable) getModel()); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel());
ACTION_SERVICE.executeAction(mailAction, null); ACTION_SERVICE.executeAction(mailAction, null);
MimeMessage message = ACTION_EXECUTER.retrieveLastTestMessage(); MimeMessage message = ACTION_EXECUTER.retrieveLastTestMessage();
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals("Hello Jan 1, 1970", (String) message.getContent()); Assert.assertEquals("Hello Jan 1, 1970", message.getContent());
Assert.assertEquals(1, message.getAllRecipients().length); Assert.assertEquals(1, message.getAllRecipients().length);
javax.mail.internet.InternetAddress address = (InternetAddress) message.getAllRecipients()[0]; javax.mail.internet.InternetAddress address = (InternetAddress) message.getAllRecipients()[0];
Assert.assertEquals(USER_1_EMAIL, address.getAddress()); Assert.assertEquals(USER_1_EMAIL, address.getAddress());
@@ -657,10 +621,9 @@ public abstract class AbstractMailActionExecuterTest
/** /**
* Test for MNT-12464 * Test for MNT-12464
* @throws Exception
*/ */
@Test @Test
public void testMultipleIdenticalEmailsToUser() throws Exception public void testMultipleIdenticalEmailsToUser()
{ {
final String USER_1 = "user12464_1"; final String USER_1 = "user12464_1";
final String USER_2 = "user12464_2"; final String USER_2 = "user12464_2";
@@ -707,7 +670,7 @@ public abstract class AbstractMailActionExecuterTest
Action mailAction1 = ACTION_SERVICE.createAction(MailActionExecuter.NAME); Action mailAction1 = ACTION_SERVICE.createAction(MailActionExecuter.NAME);
mailAction1.setParameterValue(MailActionExecuter.PARAM_FROM, "some.body@example.com"); mailAction1.setParameterValue(MailActionExecuter.PARAM_FROM, "some.body@example.com");
ArrayList<String> toMany1 = new ArrayList<String>(); ArrayList<String> toMany1 = new ArrayList<>();
toMany1.add(USER_1); toMany1.add(USER_1);
toMany1.add(GROUP_1); toMany1.add(GROUP_1);
toMany1.add(USER_2); toMany1.add(USER_2);
@@ -718,7 +681,7 @@ public abstract class AbstractMailActionExecuterTest
mailAction1.setParameterValue(MailActionExecuter.PARAM_TO_MANY, toMany1); mailAction1.setParameterValue(MailActionExecuter.PARAM_TO_MANY, toMany1);
mailAction1.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing MNT-12464"); mailAction1.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing MNT-12464");
mailAction1.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl"); mailAction1.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl");
mailAction1.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, (Serializable) getModel()); mailAction1.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel());
ACTION_EXECUTER.resetTestSentCount(); ACTION_EXECUTER.resetTestSentCount();
ACTION_SERVICE.executeAction(mailAction1, null); ACTION_SERVICE.executeAction(mailAction1, null);
@@ -736,15 +699,10 @@ public abstract class AbstractMailActionExecuterTest
PERMISSION_SERVICE.deletePermissions(user6); PERMISSION_SERVICE.deletePermissions(user6);
// USER_6 not exist for USER_1, but he will be added to recipients // USER_6 not exist for USER_1, but he will be added to recipients
int after = AuthenticationUtil.runAs(new RunAsWork<Integer>() int after = AuthenticationUtil.runAs(() -> {
{ ACTION_EXECUTER.resetTestSentCount();
@Override everyoneSending();
public Integer doWork() throws Exception return ACTION_EXECUTER.getTestSentCount();
{
ACTION_EXECUTER.resetTestSentCount();
everyoneSending();
return ACTION_EXECUTER.getTestSentCount();
}
}, USER_1); }, USER_1);
Assert.assertEquals("One additional user was created, quantity of recipients GROUP_EVERYONE must be +1 user", 1, after - before); Assert.assertEquals("One additional user was created, quantity of recipients GROUP_EVERYONE must be +1 user", 1, after - before);
@@ -766,12 +724,12 @@ public abstract class AbstractMailActionExecuterTest
{ {
Action mailAction = ACTION_SERVICE.createAction(MailActionExecuter.NAME); Action mailAction = ACTION_SERVICE.createAction(MailActionExecuter.NAME);
mailAction.setParameterValue(MailActionExecuter.PARAM_FROM, "some.body@example.com"); mailAction.setParameterValue(MailActionExecuter.PARAM_FROM, "some.body@example.com");
ArrayList<String> toMany = new ArrayList<String>(); ArrayList<String> toMany = new ArrayList<>();
toMany.add(PERMISSION_SERVICE.getAllAuthorities()); toMany.add(PERMISSION_SERVICE.getAllAuthorities());
mailAction.setParameterValue(MailActionExecuter.PARAM_TO_MANY, toMany); mailAction.setParameterValue(MailActionExecuter.PARAM_TO_MANY, toMany);
mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing MNT-12464"); mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, "Testing MNT-12464");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl"); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE, "alfresco/templates/mail/test.txt.ftl");
mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, (Serializable) getModel()); mailAction.setParameterValue(MailActionExecuter.PARAM_TEMPLATE_MODEL, getModel());
ACTION_EXECUTER.resetTestSentCount(); ACTION_EXECUTER.resetTestSentCount();
@@ -789,29 +747,18 @@ public abstract class AbstractMailActionExecuterTest
final String template = "alfresco/templates/mail/test.txt.ftl"; final String template = "alfresco/templates/mail/test.txt.ftl";
AuthenticationUtil.pushAuthentication(); AuthenticationUtil.pushAuthentication();
AuthenticationUtil.setFullyAuthenticatedUser(EXTERNAL_USER.getUsername()); AuthenticationUtil.setFullyAuthenticatedUser(EXTERNAL_USER.getUsername());
MimeMessage message = null;
try try
{ {
// these people should be without emails
// these persons should be without emails
// testing for GROUP_EVERYONE // testing for GROUP_EVERYONE
final String tenantId = getUsersHomeTenant(BRITISH_USER.getUsername()); final String tenantId = getUsersHomeTenant(BRITISH_USER.getUsername());
// USER_6 not exist for USER_1, but he will be added to recipients // USER_6 not exist for USER_1, but he will be added to recipients
message = TenantUtil.runAsTenant(new TenantRunAsWork<MimeMessage>() MimeMessage message = TenantUtil.runAsTenant(() -> sendMessage(null, recipients, subject, template), tenantId);
{
@Override
public MimeMessage doWork() throws Exception
{
return sendMessage(null, recipients, subject, template);
}
}, tenantId);
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals("Hello 1 Jan 1970", (String) message.getContent()); Assert.assertEquals("Hello 1 Jan 1970", message.getContent());
} }
finally finally
{ {
@@ -850,20 +797,15 @@ public abstract class AbstractMailActionExecuterTest
RetryingTransactionHelper txHelper = APP_CONTEXT_INIT.getApplicationContext().getBean("retryingTransactionHelper", RetryingTransactionHelper.class); RetryingTransactionHelper txHelper = APP_CONTEXT_INIT.getApplicationContext().getBean("retryingTransactionHelper", RetryingTransactionHelper.class);
// Send mail // Send mail
MimeMessage message = txHelper.doInTransaction(new RetryingTransactionCallback<MimeMessage>() MimeMessage message = txHelper.doInTransaction(() -> {
{ ACTION_EXECUTER.executeImpl(mailAction, null);
@Override return ACTION_EXECUTER.retrieveLastTestMessage();
public MimeMessage execute() throws Throwable
{
ACTION_EXECUTER.executeImpl(mailAction, null);
return ACTION_EXECUTER.retrieveLastTestMessage();
}
}, true); }, true);
// Check that both users are displayed in message body // Check that both users are displayed in message body
String recipients = USER1 + "@email.com" + "," + USER2 + "@email.com"; String recipients = USER1 + "@email.com" + "," + USER2 + "@email.com";
Assert.assertNotNull(message); Assert.assertNotNull(message);
Assert.assertEquals("This email was sent to " + recipients, (String) message.getContent()); Assert.assertEquals("This email was sent to " + recipients, message.getContent());
} }
finally finally
{ {
@@ -882,7 +824,7 @@ public abstract class AbstractMailActionExecuterTest
@Test @Test
public void testSendingToArrayOfCarbonCopyAndBlindCarbonCopyUsers() throws MessagingException public void testSendingToArrayOfCarbonCopyAndBlindCarbonCopyUsers() throws MessagingException
{ {
Map<String, Serializable> params = new HashMap<String, Serializable>(); Map<String, Serializable> params = new HashMap<>();
String[] ccArray = { "cc_user1@example.com", "cc_user2@example.com" }; String[] ccArray = { "cc_user1@example.com", "cc_user2@example.com" };
String[] bccArray = { "bcc_user3@example.com", "bcc_user4@example.com", "bcc_user5@example.com" }; String[] bccArray = { "bcc_user3@example.com", "bcc_user4@example.com", "bcc_user5@example.com" };
params.put(MailActionExecuter.PARAM_FROM, "sender@email.com"); params.put(MailActionExecuter.PARAM_FROM, "sender@email.com");
@@ -917,11 +859,11 @@ public abstract class AbstractMailActionExecuterTest
@Test @Test
public void testSendingToListOfCarbonCopyAndBlindCarbonCopyUsers() throws MessagingException public void testSendingToListOfCarbonCopyAndBlindCarbonCopyUsers() throws MessagingException
{ {
List<String> ccList = new ArrayList<String>(); List<String> ccList = new ArrayList<>();
ccList.add("cc_user1@example.com"); ccList.add("cc_user1@example.com");
ccList.add("cc_user2@example.com"); ccList.add("cc_user2@example.com");
List<String> bccList = new ArrayList<String>(); List<String> bccList = new ArrayList<>();
bccList.add("bcc_user3@example.com"); bccList.add("bcc_user3@example.com");
bccList.add("bcc_user4@example.com"); bccList.add("bcc_user4@example.com");
bccList.add("bcc_user5@example.com"); bccList.add("bcc_user5@example.com");

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Repository * Alfresco Repository
* %% * %%
* Copyright (C) 2005 - 2021 Alfresco Software Limited * Copyright (C) 2005 - 2022 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of * If the software was purchased under a paid Alfresco license, the terms of
@@ -25,44 +25,39 @@
*/ */
package org.alfresco.repo.content.transform; package org.alfresco.repo.content.transform;
import org.junit.Rule;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Spy;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import java.io.IOException;
import java.util.Properties;
import java.util.StringJoiner;
import static org.alfresco.repo.content.transform.LocalTransformServiceRegistry.LOCAL_TRANSFORMER; import static org.alfresco.repo.content.transform.LocalTransformServiceRegistry.LOCAL_TRANSFORMER;
import static org.alfresco.repo.content.transform.LocalTransformServiceRegistry.URL; import static org.alfresco.repo.content.transform.LocalTransformServiceRegistry.URL;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import java.util.Properties;
import java.util.StringJoiner;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class LocalTransformServiceRegistryTest public class LocalTransformServiceRegistryTest
{ {
@Spy @Spy
private Properties properties = new Properties(); private Properties properties;
@InjectMocks @InjectMocks
LocalTransformServiceRegistry registry = new LocalTransformServiceRegistry(); private LocalTransformServiceRegistry registry;
@Rule
public MockitoRule initRule = MockitoJUnit.rule();
@Test @Test
public void testGetTEngineUrlsSortedByName() throws IOException public void testGetTEngineUrlsSortedByName()
{ {
properties.put(LOCAL_TRANSFORMER+"aa"+URL, "aa"); properties.put(LOCAL_TRANSFORMER + "aa" + URL, "aa");
properties.put(LOCAL_TRANSFORMER+"engine1"+URL, "http_xxxx1"); properties.put(LOCAL_TRANSFORMER + "engine1" + URL, "http_xxxx1");
properties.put(LOCAL_TRANSFORMER+"engine3"+URL, "http3"); properties.put(LOCAL_TRANSFORMER + "engine3" + URL, "http3");
properties.put(LOCAL_TRANSFORMER+"engine2"+URL, "http_xx2"); properties.put(LOCAL_TRANSFORMER + "engine2" + URL, "http_xx2");
properties.put(LOCAL_TRANSFORMER+"bb"+URL, "bb"); properties.put(LOCAL_TRANSFORMER + "bb" + URL, "bb");
properties.put(LOCAL_TRANSFORMER+"b"+URL, "b"); properties.put(LOCAL_TRANSFORMER + "b" + URL, "b");
StringJoiner orderEngineConfigRead = new StringJoiner(","); StringJoiner orderEngineConfigRead = new StringJoiner(",");
registry.getTEngineUrlsSortedByName().forEach(name -> orderEngineConfigRead.add(name)); registry.getTEngineUrlsSortedByName().forEach(orderEngineConfigRead::add);
assertEquals("aa,b,bb,http_xxxx1,http_xx2,http3", orderEngineConfigRead.toString()); assertEquals("aa,b,bb,http_xxxx1,http_xx2,http3", orderEngineConfigRead.toString());
} }
} }

View File

@@ -455,7 +455,7 @@ public class ImapMessageTest extends TestCase
}; };
// UID SEARCH SINCE // UID SEARCH SINCE
Response[] ret = (Response[]) folder.doCommand(uid_search_since); Response[] ret = (Response[]) folder.doCommand(uid_search_since);
assertEquals("java.net.SocketException: Connection reset", ret[0].getException().toString()); assertEquals("java.io.IOException: Connection dropped by server?", ret[0].getException().toString());
} }
catch (MessagingException e) catch (MessagingException e)
{ {

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Repository * Alfresco Repository
* %% * %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited * Copyright (C) 2005 - 2022 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of * If the software was purchased under a paid Alfresco license, the terms of
@@ -45,7 +45,7 @@ import org.junit.experimental.categories.Category;
public class ContentFilterLanguagesMapTest extends AbstractMultilingualTestCases public class ContentFilterLanguagesMapTest extends AbstractMultilingualTestCases
{ {
public void testGetFilterLanguages() throws Exception public void testGetFilterLanguages()
{ {
// get the list of content filter languages // get the list of content filter languages
List<String> lggs = contentFilterLanguagesService.getFilterLanguages(); List<String> lggs = contentFilterLanguagesService.getFilterLanguages();
@@ -57,7 +57,7 @@ public class ContentFilterLanguagesMapTest extends AbstractMultilingualTestCases
try try
{ {
lggs.add("NEW LOCALE"); lggs.add("NEW LOCALE");
assertTrue("Add a value to the content filter language list is not permit, this list would be read only", false); fail("Add a value to the content filter language list is not permit, this list would be read only");
} }
catch (Exception e) catch (Exception e)
{ {
@@ -67,7 +67,7 @@ public class ContentFilterLanguagesMapTest extends AbstractMultilingualTestCases
try try
{ {
lggs.remove(0); lggs.remove(0);
assertTrue("Remove a value to the content filter language list is not permit, this list would be read only", false); fail("Remove a value to the content filter language list is not permit, this list would be read only");
} }
catch (Exception e) catch (Exception e)
{ {
@@ -76,7 +76,7 @@ public class ContentFilterLanguagesMapTest extends AbstractMultilingualTestCases
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void testGetMissingLanguages() throws Exception public void testGetMissingLanguages()
{ {
List<String> lggs = contentFilterLanguagesService.getFilterLanguages(); List<String> lggs = contentFilterLanguagesService.getFilterLanguages();
@@ -97,7 +97,7 @@ public class ContentFilterLanguagesMapTest extends AbstractMultilingualTestCases
assertEquals("Language list returned with the empty parameter corrupted", missingLggsEmpty.size(), lggs.size()); assertEquals("Language list returned with the empty parameter corrupted", missingLggsEmpty.size(), lggs.size());
// get missing languages with a two locale list // get missing languages with a two locale list
List<String> param = new ArrayList<String>(); List<String> param = new ArrayList<>();
param.add(0, lggs.get(0)); param.add(0, lggs.get(0));
param.add(1, lggs.get(1)); param.add(1, lggs.get(1));
List<String> missingLggsOk = contentFilterLanguagesService.getMissingLanguages(param); List<String> missingLggsOk = contentFilterLanguagesService.getMissingLanguages(param);
@@ -123,29 +123,29 @@ public class ContentFilterLanguagesMapTest extends AbstractMultilingualTestCases
assertFalse("Language found : " + param.get(2), missingLggsWrong.contains(param.get(2))); assertFalse("Language found : " + param.get(2), missingLggsWrong.contains(param.get(2)));
} }
public void testISOCodeConvertions() throws Exception public void testISOCodeConversions()
{ {
// New ISO code list // New ISO code list
String[] newCode = {"he", "id", "yi"}; String[] newCode = {"he", "id", "yi"};
String[] oldCode = {"iw", "in", "ji"}; String[] oldCode = {"iw", "in", "ji"};
Locale loc0 = new Locale(newCode[0]); Locale loc0 = new Locale(oldCode[0]);
Locale loc1 = new Locale(newCode[1]); Locale loc1 = new Locale(oldCode[1]);
Locale loc2 = new Locale(newCode[2]); Locale loc2 = new Locale(oldCode[2]);
// Ensure that java.util.Locale has converted the new ISO code into new iso code // Ensure that java.util.Locale has converted the old ISO code into new ISO code
assertEquals("java.util.Locale Convertion not correct for " + newCode[0], oldCode[0], loc0.getLanguage()); // This conversion can be avoided by setting the java.locale.useOldISOCodes=true system property
assertEquals("java.util.Locale Convertion not correct for " + newCode[1], oldCode[1], loc1.getLanguage()); assertEquals("java.util.Locale Conversion not correct for " + oldCode[0], newCode[0], loc0.getLanguage());
assertEquals("java.util.Locale Convertion not correct for " + newCode[2], oldCode[2], loc2.getLanguage()); assertEquals("java.util.Locale Conversion not correct for " + oldCode[1], newCode[1], loc1.getLanguage());
assertEquals("java.util.Locale Conversion not correct for " + oldCode[2], newCode[2], loc2.getLanguage());
// Ensure that the convertion is correcte // Ensure that the conversion is correct
assertEquals("Convertion of new ISO codes not correct for " + newCode[0], oldCode[0], contentFilterLanguagesService.convertToOldISOCode(newCode[0])); assertEquals("Conversion of new ISO codes not correct for " + newCode[0], oldCode[0], contentFilterLanguagesService.convertToOldISOCode(newCode[0]));
assertEquals("Convertion of new ISO codes not correct for " + newCode[1], oldCode[1], contentFilterLanguagesService.convertToOldISOCode(newCode[1])); assertEquals("Conversion of new ISO codes not correct for " + newCode[1], oldCode[1], contentFilterLanguagesService.convertToOldISOCode(newCode[1]));
assertEquals("Convertion of new ISO codes not correct for " + newCode[2], oldCode[2], contentFilterLanguagesService.convertToOldISOCode(newCode[2])); assertEquals("Conversion of new ISO codes not correct for " + newCode[2], oldCode[2], contentFilterLanguagesService.convertToOldISOCode(newCode[2]));
assertEquals("Conversion of old ISO codes not correct for " + oldCode[0], newCode[0], contentFilterLanguagesService.convertToNewISOCode(oldCode[0]));
assertEquals("Convertion of old ISO codes not correct for " + oldCode[0], newCode[0], contentFilterLanguagesService.convertToNewISOCode(oldCode[0])); assertEquals("Conversion of old ISO codes not correct for " + oldCode[1], newCode[1], contentFilterLanguagesService.convertToNewISOCode(oldCode[1]));
assertEquals("Convertion of old ISO codes not correct for " + oldCode[1], newCode[1], contentFilterLanguagesService.convertToNewISOCode(oldCode[1])); assertEquals("Conversion of old ISO codes not correct for " + oldCode[2], newCode[2], contentFilterLanguagesService.convertToNewISOCode(oldCode[2]));
assertEquals("Convertion of old ISO codes not correct for " + oldCode[2], newCode[2], contentFilterLanguagesService.convertToNewISOCode(oldCode[2]));
} }
} }