package com.blogspot.toomuchcoding.book.chapter9.InjectingWithSpringComponentScan;
import org.mockito.Mockito;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.*;
@Configuration
class MockTaxConfiguration {
/*
Uncomment only to see that it is not working - check the logs
@Bean
public TaxService taxService() {
return Mockito.mock(TaxService.class);
}*/
@Bean
public BeanPostProcessor taxServiceBeanPostProcessor() {
return new BeanPostProcessor(){
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if(bean instanceof TaxService) {
return Mockito.mock(TaxService.class);
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
};
}
}