/**
*
*/
package org.liveSense.server.i18n.service.I18nService;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import org.apache.sling.commons.testing.osgi.MockBundle;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.liveSense.server.i18n.I18N;
import org.liveSense.server.i18n.messages.FooMessages;
import org.liveSense.server.i18n.messages.FooMessagesPureInterface;
import org.liveSense.server.i18n.messages.FooMessagesWithAnnotation;
/**
* @author robson
*
*/
public class I18nServiceImplTest {
/**
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
private I18nService service;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
I18N.resetCache();
service = new I18nServiceImpl();
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.Class)}.
* @throws IOException
*/
@Test
public void testCreateClassOfT() throws IOException {
Locale.setDefault(Locale.ENGLISH);
FooMessages msg1 = service.create(FooMessages.class);
FooMessagesPureInterface msg2 = service.create(FooMessagesPureInterface.class);
FooMessagesWithAnnotation msg3 = service.create(FooMessagesWithAnnotation.class);
assertEquals("The message is test_None()", msg1.test_None());
assertEquals("The message is test_None()", msg2.test_None());
assertEquals("The message is test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.Class, java.util.Locale)}.
* @throws IOException
*/
@Test
public void testCreateClassOfTLocale() throws IOException {
FooMessages msg1 = service.create(FooMessages.class, new Locale("fr"));
FooMessagesPureInterface msg2 = service.create(FooMessagesPureInterface.class, new Locale("fr"));
FooMessagesWithAnnotation msg3 = service.create(FooMessagesWithAnnotation.class, new Locale("fr"));
assertEquals("Le message est test_None()", msg1.test_None());
assertEquals("Le message est test_None()", msg2.test_None());
assertEquals("Le message est test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.Class, java.util.Locale, java.lang.ClassLoader)}.
* @throws IOException
*/
@Test
public void testCreateClassOfTLocaleClassLoader() throws IOException {
FooMessages msg1 = service.create(FooMessages.class, new Locale("fr"), this.getClass().getClassLoader());
FooMessagesPureInterface msg2 = service.create(FooMessagesPureInterface.class, new Locale("fr"), this.getClass().getClassLoader());
FooMessagesWithAnnotation msg3 = service.create(FooMessagesWithAnnotation.class, new Locale("fr"), this.getClass().getClassLoader());
assertEquals("Le message est test_None()", msg1.test_None());
assertEquals("Le message est test_None()", msg2.test_None());
assertEquals("Le message est test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.Class, java.lang.String)}.
* @throws IOException
*/
@Test
public void testCreateClassOfTString() throws IOException {
FooMessages msg1 = service.create(FooMessages.class, "fr");
FooMessagesPureInterface msg2 = service.create(FooMessagesPureInterface.class, "fr");
FooMessagesWithAnnotation msg3 = service.create(FooMessagesWithAnnotation.class, "fr");
assertEquals("Le message est test_None()", msg1.test_None());
assertEquals("Le message est test_None()", msg2.test_None());
assertEquals("Le message est test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.Class, java.lang.String, java.lang.ClassLoader)}.
* @throws IOException
*/
@Test
public void testCreateClassOfTStringClassLoader() throws IOException {
FooMessages msg1 = service.create(FooMessages.class, "fr", this.getClass().getClassLoader());
FooMessagesPureInterface msg2 = service.create(FooMessagesPureInterface.class, "fr", this.getClass().getClassLoader());
FooMessagesWithAnnotation msg3 = service.create(FooMessagesWithAnnotation.class, "fr", this.getClass().getClassLoader());
assertEquals("Le message est test_None()", msg1.test_None());
assertEquals("Le message est test_None()", msg2.test_None());
assertEquals("Le message est test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.String)}.
* @throws IOException
* @throws ClassNotFoundException
*/
@Test
public void testCreateString() throws IOException, ClassNotFoundException {
Locale.setDefault(Locale.ENGLISH);
FooMessages msg1 = (FooMessages) service.create("org.liveSense.server.i18n.messages.FooMessages");
FooMessagesPureInterface msg2 = (FooMessagesPureInterface) service.create("org.liveSense.server.i18n.messages.FooMessagesPureInterface");
FooMessagesWithAnnotation msg3 = (FooMessagesWithAnnotation) service.create("org.liveSense.server.i18n.messages.FooMessagesWithAnnotation");
assertEquals("The message is test_None()", msg1.test_None());
assertEquals("The message is test_None()", msg2.test_None());
assertEquals("The message is test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.String, java.util.Locale)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testCreateStringLocale() throws IOException, ClassNotFoundException {
FooMessages msg1 = (FooMessages) service.create("org.liveSense.server.i18n.messages.FooMessages", new Locale("fr"));
FooMessagesPureInterface msg2 = (FooMessagesPureInterface) service.create("org.liveSense.server.i18n.messages.FooMessagesPureInterface", new Locale("fr"));
FooMessagesWithAnnotation msg3 = (FooMessagesWithAnnotation) service.create("org.liveSense.server.i18n.messages.FooMessagesWithAnnotation", new Locale("fr"));
assertEquals("Le message est test_None()", msg1.test_None());
assertEquals("Le message est test_None()", msg2.test_None());
assertEquals("Le message est test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.String, java.util.Locale, java.lang.ClassLoader)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testCreateStringLocaleClassLoader() throws IOException, ClassNotFoundException {
FooMessages msg1 = (FooMessages) service.create("org.liveSense.server.i18n.messages.FooMessages", new Locale("fr"), this.getClass().getClassLoader());
FooMessagesPureInterface msg2 = (FooMessagesPureInterface) service.create("org.liveSense.server.i18n.messages.FooMessagesPureInterface", new Locale("fr"), this.getClass().getClassLoader());
FooMessagesWithAnnotation msg3 = (FooMessagesWithAnnotation) service.create("org.liveSense.server.i18n.messages.FooMessagesWithAnnotation", new Locale("fr"), this.getClass().getClassLoader());
assertEquals("Le message est test_None()", msg1.test_None());
assertEquals("Le message est test_None()", msg2.test_None());
assertEquals("Le message est test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.String, java.lang.String)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testCreateStringString() throws IOException, ClassNotFoundException {
FooMessages msg1 = (FooMessages) service.create("org.liveSense.server.i18n.messages.FooMessages", "fr");
FooMessagesPureInterface msg2 = (FooMessagesPureInterface) service.create("org.liveSense.server.i18n.messages.FooMessagesPureInterface", "fr");
FooMessagesWithAnnotation msg3 = (FooMessagesWithAnnotation) service.create("org.liveSense.server.i18n.messages.FooMessagesWithAnnotation", "fr");
assertEquals("Le message est test_None()", msg1.test_None());
assertEquals("Le message est test_None()", msg2.test_None());
assertEquals("Le message est test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#create(java.lang.String, java.lang.String, java.lang.ClassLoader)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testCreateStringStringClassLoader() throws IOException, ClassNotFoundException {
FooMessages msg1 = (FooMessages) service.create("org.liveSense.server.i18n.messages.FooMessages", "fr", this.getClass().getClassLoader());
FooMessagesPureInterface msg2 = (FooMessagesPureInterface) service.create("org.liveSense.server.i18n.messages.FooMessagesPureInterface", "fr", this.getClass().getClassLoader());
FooMessagesWithAnnotation msg3 = (FooMessagesWithAnnotation) service.create("org.liveSense.server.i18n.messages.FooMessagesWithAnnotation", "fr", this.getClass().getClassLoader());
assertEquals("Le message est test_None()", msg1.test_None());
assertEquals("Le message est test_None()", msg2.test_None());
assertEquals("Le message est test_None()", msg3.method_test_None());
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#getResourceBundle(java.lang.String)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testGetResourceBundleString() throws IOException, ClassNotFoundException {
Locale.setDefault(Locale.ENGLISH);
ResourceBundle res1 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages");
ResourceBundle res2 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages");
assertEquals("The message is test_None()", res1.getString("test_None"));
assertEquals("The message is test_None()", res2.getString("test_None"));
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#getResourceBundle(java.lang.String, java.util.Locale)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testGetResourceBundleStringLocale() throws IOException, ClassNotFoundException {
ResourceBundle res1 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages", new Locale("fr"));
ResourceBundle res2 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages", new Locale("fr"));
ResourceBundle res3 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages", new Locale("en_US"));
ResourceBundle res4 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages", new Locale("en_US"));
assertEquals("Le message est test_None()", res1.getString("test_None"));
assertEquals("Le message est test_None()", res2.getString("test_None"));
assertEquals("The message is test_None()", res3.getString("test_None"));
assertEquals("The message is test_None()", res4.getString("test_None"));
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#getResourceBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testGetResourceBundleStringLocaleClassLoader() throws IOException, ClassNotFoundException {
ResourceBundle res1 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages", new Locale("fr"), this.getClass().getClassLoader());
ResourceBundle res2 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages", new Locale("fr"), this.getClass().getClassLoader());
ResourceBundle res3 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages", new Locale("en_US"), this.getClass().getClassLoader());
ResourceBundle res4 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages", new Locale("en_US"), this.getClass().getClassLoader());
assertEquals("Le message est test_None()", res1.getString("test_None"));
assertEquals("Le message est test_None()", res2.getString("test_None"));
assertEquals("The message is test_None()", res3.getString("test_None"));
assertEquals("The message is test_None()", res4.getString("test_None"));
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#getResourceBundle(java.lang.String, java.lang.String)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testGetResourceBundleStringString() throws IOException, ClassNotFoundException {
ResourceBundle res1 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages", "fr");
ResourceBundle res2 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages", "fr");
ResourceBundle res3 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages", "en_US");
ResourceBundle res4 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages","en_US");
assertEquals("Le message est test_None()", res1.getString("test_None"));
assertEquals("Le message est test_None()", res2.getString("test_None"));
assertEquals("The message is test_None()", res3.getString("test_None"));
assertEquals("The message is test_None()", res4.getString("test_None"));
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#getResourceBundle(java.lang.String, java.lang.String, java.lang.ClassLoader)}.
* @throws ClassNotFoundException
* @throws IOException
*/
@Test
public void testGetResourceBundleStringStringClassLoader() throws IOException, ClassNotFoundException {
ResourceBundle res1 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages", "fr", this.getClass().getClassLoader());
ResourceBundle res2 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages", "fr", this.getClass().getClassLoader());
ResourceBundle res3 = service.getResourceBundle("org.liveSense.server.i18n.messages.FooMessages", "en_US", this.getClass().getClassLoader());
ResourceBundle res4 = service.getResourceBundle("org/liveSense/server/i18n/messages/FooMessages", "en_US", this.getClass().getClassLoader());
assertEquals("Le message est test_None()", res1.getString("test_None"));
assertEquals("Le message est test_None()", res2.getString("test_None"));
assertEquals("The message is test_None()", res3.getString("test_None"));
assertEquals("The message is test_None()", res4.getString("test_None"));
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#getDynamicResourceBundle()}.
*/
@Test
public void testGetDynamicResourceBundle() {
MockBundle bundle1 = new MockBundle(1) {
@Override
public java.net.URL getResource(String name) {
return this.getClass().getClassLoader().getResource(name);
};
@Override
public Class<?> loadClass(String name)
throws ClassNotFoundException {
return this.getClass().getClassLoader().loadClass(name);
}
};
// Register DynamicMessage 1
service.registerResourceBundle(bundle1, "org.liveSense.server.i18n.messages.DynamicMessages1");
ResourceBundle dyn = service.getDynamicResourceBundle();
assertEquals("The message is test_None1()", dyn.getString("test_None1"));
// The DynamicMessage 2 have to throw MissingResourceException
try {
assertNull(dyn.getString("test_None2"));
fail("No MissingResourceExceptionm");
} catch (MissingResourceException e) {
}
// Register DynamicMessage 2
service.registerResourceBundle(bundle1, "org.liveSense.server.i18n.messages.DynamicMessages2");
assertEquals("The message is test_None1()", dyn.getString("test_None1"));
assertEquals("The message is test_None2()", dyn.getString("test_None2"));
// unRegister DynamicMessage 2
service.unregisterResourceBundle(bundle1, "org.liveSense.server.i18n.messages.DynamicMessages2");
assertEquals("The message is test_None1()", dyn.getString("test_None1"));
// The DynamicMessage 2 have to throw MissingResourceException
try {
assertNull(dyn.getString("test_None2"));
fail("No MissingResourceExceptionm");
} catch (MissingResourceException e) {
}
}
/**
* Test method for {@link org.liveSense.server.i18n.service.I18nService.I18nServiceImpl#getDynamicResourceBundle(java.util.Locale)}.
*/
@Test
public void testGetDynamicResourceBundleLocale() {
MockBundle bundle1 = new MockBundle(1) {
@Override
public java.net.URL getResource(String name) {
return this.getClass().getClassLoader().getResource(name);
};
@Override
public Class<?> loadClass(String name)
throws ClassNotFoundException {
return this.getClass().getClassLoader().loadClass(name);
}
};
// Register DynamicMessage 1
service.registerResourceBundle(bundle1, "org.liveSense.server.i18n.messages.DynamicMessages1");
ResourceBundle dyn = service.getDynamicResourceBundle(new Locale("fr"));
ResourceBundle dyn2 = service.getDynamicResourceBundle(new Locale("en_US"));
assertEquals("Le message est test_None1()", dyn.getString("test_None1"));
assertEquals("The message is test_None1()", dyn2.getString("test_None1"));
// The DynamicMessage 2 have to throw MissingResourceException
try {
assertNull(dyn.getString("test_None2"));
assertNull(dyn2.getString("test_None2"));
fail("No MissingResourceExceptionm");
} catch (MissingResourceException e) {
}
// Register DynamicMessage 2
service.registerResourceBundle(bundle1, "org.liveSense.server.i18n.messages.DynamicMessages2");
assertEquals("Le message est test_None1()", dyn.getString("test_None1"));
assertEquals("Le message est test_None2()", dyn.getString("test_None2"));
assertEquals("The message is test_None1()", dyn2.getString("test_None1"));
assertEquals("The message is test_None2()", dyn2.getString("test_None2"));
// unRegister DynamicMessage 2
service.unregisterResourceBundle(bundle1, "org.liveSense.server.i18n.messages.DynamicMessages2");
assertEquals("Le message est test_None1()", dyn.getString("test_None1"));
assertEquals("The message is test_None1()", dyn2.getString("test_None1"));
// The DynamicMessage 2 have to throw MissingResourceException
try {
assertNull(dyn.getString("test_None2"));
assertNull(dyn2.getString("test_None2"));
fail("No MissingResourceExceptionm");
} catch (MissingResourceException e) {
}
}
}