package org.jboss.resteasy.test.i18n; import java.lang.reflect.Method; import java.util.Locale; import org.junit.Assert; import org.jboss.resteasy.core.InjectorFactoryImpl; import org.jboss.resteasy.core.ResourceMethodInvoker; import org.jboss.resteasy.plugins.server.resourcefactory.POJOResourceFactory; import org.jboss.resteasy.jsapi.i18n.Messages; import org.jboss.resteasy.spi.InjectorFactory; import org.jboss.resteasy.spi.ResteasyProviderFactory; import org.jboss.resteasy.spi.metadata.ResourceClass; import org.jboss.resteasy.spi.metadata.ResourceMethod; import org.junit.Test; /** * * @author <a href="ron.sigal@jboss.com">Ron Sigal</a> * @version $Revision: 1.1 $ * * Copyright Aug 27, 2015 */ abstract public class TestMessagesAbstract extends TestMessagesParent { protected static final String BASE = String.format("0%5s", Messages.BASE).substring(0, 4); protected static ResourceMethodInvoker testMethod; static { try { Class<?> clazz = TestMessagesAbstract.class; Method method = TestMessagesAbstract.class.getMethod("testLocale"); ResourceClass resourceClass = new ResourceClass(TestMessagesAbstract.class, "path"); ResourceMethod resourceMethod = new ResourceMethod(resourceClass, method, method); ResteasyProviderFactory providerFactory = new ResteasyProviderFactory(); InjectorFactory injectorFactory = new InjectorFactoryImpl(); POJOResourceFactory resourceFactory = new POJOResourceFactory(clazz); testMethod = new ResourceMethodInvoker(resourceMethod, injectorFactory, resourceFactory, providerFactory); } catch (NoSuchMethodException e) { e.printStackTrace(); } } @Test public void testLocale() throws Exception { Locale locale = getLocale(); String filename = "org/jboss/resteasy/jsapi/i18n/Messages.i18n_" + locale.toString() + ".properties"; if (!before(locale, filename)) { System.out.println(getClass() + ": " + filename + " not found."); return; } Assert.assertEquals(getExpected(BASE + "00", "impossibleToGenerateJsapi", "class", "method"), Messages.MESSAGES.impossibleToGenerateJsapi("class", "method")); Assert.assertEquals(getExpected(BASE + "05", "invoker", testMethod), Messages.MESSAGES.invoker(testMethod)); Assert.assertEquals(getExpected(BASE + "35", "restApiUrl", "http"), Messages.MESSAGES.restApiUrl("http")); Assert.assertEquals(getExpected(BASE + "60", "thereAreNoResteasyDeployments"), Messages.MESSAGES.thereAreNoResteasyDeployments()); } @Override protected int getExpectedNumberOfMethods() { return Messages.class.getDeclaredMethods().length; } @Override protected String getExpected(String id, String message, Object... args) { String s = super.getExpected(id, message, args); String ss = pruneQuotes(s); System.out.println("actual expected: " + ss); return ss; } protected String pruneQuotes(String s) { StringBuffer sb = new StringBuffer(); boolean sawQuote = false; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (sawQuote) { sawQuote = false; sb.append('\''); if (c != '\'') { sb.append(c); } } else if (c == '\'') { sawQuote = true; } else { sb.append(c); } } return sb.toString(); } abstract protected Locale getLocale(); }