0

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.

0 Answers0