Testing Commands

Commands are the main entities in the BLL package, each command representing a single logical action in the system.

Injecting Dependencies

Most of the commands' external dependencies (such as DAOs, validators, helpers, etc) are injected - i.e., they are annotated by @Inject, and the CDI framework is in charge of initializing them. Luckily, Mockito suites testing such code very well, and by annotating the class under test with @InjectMocks, Mockito's framework will inject any field annotated with @Mock or @Spy to that class.

It's worth noting that the BLL module overrides Mockito's default answer, and any method returning a ValidationResult will return by default ValidationResult.VALID and not null (unless explicitly stubbed to return a different value, of course).