package net.sf.gazpachoquest.questionnaires.i18; import static org.fest.assertions.api.Assertions.assertThat; import java.util.Locale; import javax.inject.Inject; import net.sf.gazpachoquest.questionnaires.i18.impl.MessageBundleImpl; import net.sf.gazpachoquest.questionnaires.i18.impl.MessageResourceProducer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.StringAsset; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.jboss.shrinkwrap.descriptor.api.Descriptors; import org.jboss.shrinkwrap.descriptor.api.beans10.BeansDescriptor; import org.junit.Test; import org.junit.runner.RunWith; /** * @see https://community.jboss.org/message/729492a * @see http://java.dzone.com/articles/injecting-string-resource * @author antoniomaria * */ @RunWith(Arquillian.class) public class MessageResourceTest { @Inject @MessageBundle private MessageResource messageResource; @Deployment public static Archive<?> createTestArchive() { String beansDescriptor = Descriptors.create(BeansDescriptor.class).exportAsString(); JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "myarchive.jar").addClasses(MessageBundle.class) .addClasses(MessageBundleImpl.class).addClasses(MessageResource.class) .addClasses(MessageResourceProducer.class) .addAsResource("resources/messages.properties") .addAsManifestResource(new StringAsset(beansDescriptor), "beans.xml"); return archive; } @Test public void getStringTest() { Locale locale = Locale.ENGLISH; String resource = messageResource.getString(locale, "login.language.select.label"); assertThat(resource).contains("Select your language"); locale = new Locale("ES"); resource = messageResource.getString(locale, "login.language.select.label"); assertThat(resource).contains("Seleccione"); } }