Thanks for the clarifications Ron but I still dont get why it is working
when i run the application and fails during the tests.

I will play a bit more soon and tell you the results.
Em 02/04/2015 14:56, "Ron Smeral" <[email protected]> escreveu:

> Hi Rafael,
>
> On 2.4.2015 16:10, Rafael Pestano wrote:
>
>> Hi guys,
>>
>> i'm having some problems to create a simple test using test control module
>> in an EE6 app.
>>
>> Class under test:
>>
>> @MessageBundle
>> public interface Messages {
>>
>>    @MessageTemplate("{label.system-info}")
>>    String systemInfo();
>>
>> }
>>
>>
>> MessagesTest.java
>>
>> @RunWith(CdiTestRunner.class)
>> public class MessagesTest {
>>
>>    @Inject
>>    Messages messages;
>>
>>    @Test
>>    public void deveLerMensagemDoBundle(){
>>      assertEquals(messages.systemInfo(),"System info");
>>    }
>> }
>>
>>
>> 1 - the above dependencies were not sufficient:
>>
>> <dependency>
>>      <groupId>org.apache.deltaspike.modules</groupId>
>>      <artifactId>deltaspike-test-control-module-api</artifactId>
>>      <version>${ds.version}</version>
>>      <scope>test</scope>
>> </dependency>
>> <dependency>
>>      <groupId>org.apache.deltaspike.modules</groupId>
>>      <artifactId>deltaspike-test-control-module-impl</artifactId>
>>      <version>${ds.version}</version>
>>      <scope>test</scope>
>> </dependency>
>> <dependency>
>>      <groupId>org.apache.deltaspike.cdictrl</groupId>
>>      <artifactId>deltaspike-cdictrl-weld</artifactId>
>>      <version>${ds.version}</version>
>>      <scope>test</scope>
>> </dependency>
>>
>>
>> needed to add
>>
>> <dependency>
>>      <groupId>org.jboss.weld.se</groupId>
>>      <artifactId>weld-se-core</artifactId>
>>      <version>2.2.6.Final</version>
>>      <scope>test</scope>
>> </dependency>
>>
>>
>> otherwise i get: java.lang.NoClassDefFoundError:
>> org/jboss/weld/environment/se/Weld
>>
>
> The deltaspike-cdictrl-weld project needs a Weld impl on the classpath. It
> has a provided-scoped dependency on weld-se-core. It is provided and not
> compile scoped so that cdictrl can work also in an EE container, where a
> CDI impl is already present.
>
> I made a clarification in the docs: https://github.com/apache/
> deltaspike/pull/25
>
>  2 - beans.xml in test/resources/META-INF was not suffcient
>>
>> needed to add beans.xml to src/main/resources/META-INF
>>
>> otherwise i get:
>>
>>   WELD-001408: Unsatisfied dependencies for type Messages with qualifiers
>> @Default
>>    at injection point [BackedAnnotatedField] @Inject
>> com.procergs.apm.it.MessagesTest.messages
>>
>
> Yes, well, beans.xml needs to be where the tested beans are. I suppose
> that "target/classes" and "target/test-classes" are treated as two
> different BDAs.
>
>  3 - In the test the line: *messages.systemInfo() *return
>> "???label.system-info???" meaning taht the key was not found in the
>> message
>> bundle although when running the application the message is found.
>>
>> My messages.properties is located at *src/main/resources*.
>>
>
> The file with messages must be named the same as the message-bundle bean,
> including the package. So if your message-bundle bean is
> "com.example.Messages" then you need to have src/main/resources/com/
> example/Messages.properties.
>
>
>> Any help is appreciated.
>>
>> Thanks in advance.
>>
>>
>>
>>
> HTH,
>
> Ron
>
> --
> Ron Smeral
> JBoss Quality Engineer
> Brno
>
>

Reply via email to