|  | 
| 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