|
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,76 @@ 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 | + |
| 125 | + @Override |
| 126 | + public boolean isSetDates() { |
| 127 | + return true; |
| 128 | + } |
| 129 | + |
| 130 | + @Override |
| 131 | + public String getDateTimeProviderRef() { |
| 132 | + return ""; |
| 133 | + } |
| 134 | + |
| 135 | + @Override |
| 136 | + public boolean isModifyOnCreate() { return true; } |
| 137 | + }; |
| 138 | + |
| 139 | + BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(AuditingHandler.class); |
| 140 | + DummyAuditingBeanDefinitionRegistrarSupport registrar = new DummyAuditingBeanDefinitionRegistrarSupport(); |
| 141 | + |
| 142 | + BeanDefinitionBuilder result = registrar.configureDefaultAuditHandlerAttributes(configuration, builder); |
| 143 | + AbstractBeanDefinition beanDefinition = result.getBeanDefinition(); |
| 144 | + |
| 145 | + assertThat(beanDefinition.getAutowireMode()).isEqualTo(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); |
| 146 | + assertThat(beanDefinition.getPropertyValues().contains("auditorAware")).isFalse(); |
| 147 | + assertThat(beanDefinition.getPropertyValues().contains("dateTimeProvider")).isFalse(); |
| 148 | + } |
| 149 | + |
76 | 150 | static class SampleConfig {} |
77 | 151 |
|
78 | 152 | static class DummyAuditingBeanDefinitionRegistrarSupport extends AuditingBeanDefinitionRegistrarSupport { |
|
0 commit comments