/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.cdi.example; import static org.junit.Assert.assertEquals; import javax.inject.Inject; import org.drools.cdi.CDITestRunner; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(CDITestRunner.class) public class CDIExamplesTest { @Inject private Message defaultMsg; @Inject @Msg1 private Message2 m1; @Inject @Msg2 private Message2 m2; @Inject @Msg1 private String msg1; @Inject @Msg2 private String msg2; @Inject @Msg("named1") private String msgNamed1; @Inject @Msg("named2") private String msgNamed2; @Inject @Msg("chained1") private String msgChained1; @Inject @Msg("chained2") private String msgChained2; @BeforeClass public static void beforeClass() { CDITestRunner.setUp(); CDITestRunner.weld = CDITestRunner.createWeld( CDIExamplesTest.class.getName(), Msg.class.getName(), Msg1.class.getName(), Msg2.class.getName(), Message.class.getName(), MessageImpl.class.getName(), Message2.class.getName(), Message2Impl1.class.getName(), Message2Impl2.class.getName(), MessageProducers.class.getName(), MessageProducers2.class.getName() ); CDITestRunner.container = CDITestRunner.weld.initialize(); } @AfterClass public static void afterClass() { CDITestRunner.tearDown(); } @Test public void testDefaultInjection() { assertEquals( "default.msg", defaultMsg.getText() ); } @Test public void testSimpleQualifiedInjection() { assertEquals( "msg.1", msg1 ); assertEquals( "msg.2", msg2 ); } @Test public void testQualiferWithValueInjection() { assertEquals( "msg.named1", msgNamed1 ); assertEquals( "msg.named2", msgNamed2 ); } @Test public void testChained1Injection() { assertEquals( "chained.1 msg.1", msgChained1 ); } @Test public void testChained2Injection() { assertEquals( "chained.2 default.msg msg.1 msg.named1", msgChained2 ); } @Test public void testNoProducers() { assertEquals( "msg2 - 1", m1.getText() ); assertEquals( "msg2 - 2", m2.getText() ); } }