I'm trying to unit test this class in the service layer of my web application:
@Service
public class MyServiceImpl implements MyService{
@Autowired
private MyDao myDao;
@Autowired
private MapperFacade mapper;
@Log
private Logger logger;
@Override
public CriteriaResults<MasterSlaveCurrenciesDto> someMethod(CriteriaParameters parameters) {}
}
The Logger is injected using this class:
@Component
public class LoggerInjector implements BeanPostProcessor {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Override
public Object postProcessBeforeInitialization(final Object bean, String beanName) throws BeansException {
ReflectionUtils.doWithFields(bean.getClass(), new ReflectionUtils.FieldCallback() {
@Override
public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
ReflectionUtils.makeAccessible(field);
if(field.getAnnotation(Log.class) != null) {
Logger logger = LoggerFactory.getLogger(bean.getClass());
field.set(bean, logger);
}
}
});
return bean;
}
}
I'm using Mockito to mock the DAO layer, but I have no idea how can I do the same thing for the 2 others dependencies:
- Orika mapper:
MapperFacade mapper
- The logger
Thank you for your help.