| 
27 | 27 | import org.mockito.junit.jupiter.MockitoExtension;  | 
28 | 28 | 
 
  | 
29 | 29 | import org.springframework.beans.factory.config.BeanDefinition;  | 
 | 30 | +import org.springframework.beans.factory.support.AbstractBeanDefinition;  | 
 | 31 | +import org.springframework.beans.factory.support.BeanDefinitionBuilder;  | 
30 | 32 | import org.springframework.beans.factory.support.BeanDefinitionRegistry;  | 
31 | 33 | import org.springframework.core.type.AnnotationMetadata;  | 
 | 34 | +import org.springframework.data.auditing.AuditingHandler;  | 
32 | 35 | import org.springframework.data.auditing.EnableAuditing;  | 
33 | 36 | 
 
  | 
34 | 37 | /**  | 
 | 
38 | 41 |  * @author Thomas Darimont  | 
39 | 42 |  * @author Oliver Gierke  | 
40 | 43 |  * @author Francisco Soler  | 
 | 44 | + * @author Jaeyeon Kim  | 
41 | 45 |  */  | 
42 | 46 | @ExtendWith(MockitoExtension.class)  | 
43 | 47 | class AuditingBeanDefinitionRegistrarSupportUnitTests {  | 
@@ -73,6 +77,75 @@ void rejectsNullRegistry() {  | 
73 | 77 | 				.isThrownBy(() -> registrar.registerBeanDefinitions(metadata, null));  | 
74 | 78 | 	}  | 
75 | 79 | 
 
  | 
 | 80 | +	@Test // DATACMNS-3177  | 
 | 81 | +	void setsAuditorAwareAndDateTimeProviderIfConfigured() {  | 
 | 82 | + | 
 | 83 | +		AuditingConfiguration configuration = new AuditingConfiguration() {  | 
 | 84 | +			@Override  | 
 | 85 | +			public String getAuditorAwareRef() {  | 
 | 86 | +				return "auditorAwareBean";  | 
 | 87 | +			}  | 
 | 88 | + | 
 | 89 | +			@Override  | 
 | 90 | +			public boolean isSetDates() {  | 
 | 91 | +				return true;  | 
 | 92 | +			}  | 
 | 93 | + | 
 | 94 | +			@Override  | 
 | 95 | +			public String getDateTimeProviderRef() {  | 
 | 96 | +				return "dateTimeProviderBean";  | 
 | 97 | +			}  | 
 | 98 | + | 
 | 99 | +			@Override  | 
 | 100 | +			public boolean isModifyOnCreate() {  | 
 | 101 | +				return true;  | 
 | 102 | +			}  | 
 | 103 | +		};  | 
 | 104 | + | 
 | 105 | +		BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(AuditingHandler.class);  | 
 | 106 | +		DummyAuditingBeanDefinitionRegistrarSupport registrar = new DummyAuditingBeanDefinitionRegistrarSupport();  | 
 | 107 | + | 
 | 108 | +		BeanDefinitionBuilder result = registrar.configureDefaultAuditHandlerAttributes(configuration, builder);  | 
 | 109 | +		AbstractBeanDefinition beanDefinition = result.getBeanDefinition();  | 
 | 110 | + | 
 | 111 | +		assertThat(beanDefinition.getAutowireMode()).isEqualTo(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);  | 
 | 112 | +		assertThat(beanDefinition.getPropertyValues().contains("auditorAware")).isTrue();  | 
 | 113 | +		assertThat(beanDefinition.getPropertyValues().contains("dateTimeProvider")).isTrue();  | 
 | 114 | +	}  | 
 | 115 | + | 
 | 116 | +	@Test // DATACMNS-3177  | 
 | 117 | +	void doesNotSetAuditorAwareAndDateTimeProviderIfNotConfigured() {  | 
 | 118 | + | 
 | 119 | +		AuditingConfiguration configuration = new AuditingConfiguration() {  | 
 | 120 | +			@Override  | 
 | 121 | +			public String getAuditorAwareRef() {  | 
 | 122 | +				return "";  | 
 | 123 | +			}  | 
 | 124 | +			@Override  | 
 | 125 | +			public boolean isSetDates() {  | 
 | 126 | +				return true;  | 
 | 127 | +			}  | 
 | 128 | +			@Override  | 
 | 129 | +			public String getDateTimeProviderRef() {  | 
 | 130 | +				return "";  | 
 | 131 | +			}  | 
 | 132 | +			@Override  | 
 | 133 | +			public boolean isModifyOnCreate() {  | 
 | 134 | +				return true;  | 
 | 135 | +			}  | 
 | 136 | +		};  | 
 | 137 | + | 
 | 138 | +		BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(AuditingHandler.class);  | 
 | 139 | +		DummyAuditingBeanDefinitionRegistrarSupport registrar = new DummyAuditingBeanDefinitionRegistrarSupport();  | 
 | 140 | + | 
 | 141 | +		BeanDefinitionBuilder result = registrar.configureDefaultAuditHandlerAttributes(configuration, builder);  | 
 | 142 | +		AbstractBeanDefinition beanDefinition = result.getBeanDefinition();  | 
 | 143 | + | 
 | 144 | +		assertThat(beanDefinition.getAutowireMode()).isEqualTo(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);  | 
 | 145 | +		assertThat(beanDefinition.getPropertyValues().contains("auditorAware")).isFalse();  | 
 | 146 | +		assertThat(beanDefinition.getPropertyValues().contains("dateTimeProvider")).isFalse();  | 
 | 147 | +	}  | 
 | 148 | + | 
76 | 149 | 	static class SampleConfig {}  | 
77 | 150 | 
 
  | 
78 | 151 | 	static class DummyAuditingBeanDefinitionRegistrarSupport extends AuditingBeanDefinitionRegistrarSupport {  | 
 | 
0 commit comments