0. Add the dependencies in Maven Model
1. Develop the Class(es) which are annotated with CDI
2. Write a Test Case to test the Class(es) using Weld-SE
3.Using/Firing Events in Weld-SE - Test @Observes
This is helpful for the initial developer testing and before a version is available to deploy in the container, to understand if all dependencies are getting injected and whether many of the CDI annotations are working as intended.
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>2.2.9.Final</version>
<scope>test</scope>
</dependency>
1. Develop the Class(es) which are annotated with CDI
@ApplicationScoped
public class ContextsDependencyInjectionManager {
private static final Logger LOGGER = Logger.getLogger(ContextsDependencyInjectionManager.class);
@Resource
private ManagedThreadFactory managedThreadFactory;
@Inject @Persistent
private EngagementManager persistentManger;
@Inject @Radia
private EngagementManager radiaManager;
@Inject @Accelerite
private EngagementManager acceleritManager;
@Inject @Services
private EngagementManager servicesManager;
... // add functionality, methods, other atrributes
}
2. Write a Test Case to test the Class(es) using Weld-SE
public class ContextsDependencyInjectionManagerTest {
public static void main(String[] args) throws Exception {
ContextsDependencyInjectionManagerTest test = new ContextsDependencyInjectionManagerTest();
// cdi initialization outside of container
Weld weld = new Weld();
WeldContainer weldContainer = weld.initialize();
ContextsDependencyInjectionManager cdiManager = weldContainer.instance()
.select(ContextsDependencyInjectionManager .class).get();
... // other tests, fire events, assert
}
3.Using/Firing Events in Weld-SE - Test @Observes
If you have used the observer pattern or added listeners using @Observes, you may choose to test them out as follows.
weldContainer
.event()
.select(EngagementAttributeChangedEvent.class)
.fire(new EngagementAttributeChangedEvent(
EngagementManagerConstants.ENGAGEMENT_MANAGER_ENTITY_DASHBOARD,
"contact", "sumith_puri", "pl"));
This is helpful for the initial developer testing and before a version is available to deploy in the container, to understand if all dependencies are getting injected and whether many of the CDI annotations are working as intended.
No comments:
Post a Comment