Skip to content

Commit 07022c1

Browse files
authored
Remove unnecessary auditorAwareRef from test config. (#1189)
Remove unnecessary auditorAwareRef from test config as it causes confusion. The property does not need to be preset for the auditorAwareRef bean to be used. The dateTimeProviderRef must be present for the provided dateTimeProviderRef bean to be used. Closes #1052.
1 parent f8b5ab2 commit 07022c1

10 files changed

+71
-30
lines changed

src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateKeyValueIntegrationTests.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.springframework.data.couchbase.core.ExecutableRemoveByIdOperation.ExecutableRemoveById;
3939
import org.springframework.data.couchbase.core.ExecutableReplaceByIdOperation.ExecutableReplaceById;
4040
import org.springframework.data.couchbase.core.support.OneAndAllEntity;
41+
import org.springframework.data.couchbase.domain.NaiveAuditorAware;
4142
import org.springframework.data.couchbase.domain.PersonValue;
4243
import org.springframework.data.couchbase.domain.User;
4344
import org.springframework.data.couchbase.domain.UserAnnotated;
@@ -77,16 +78,31 @@ void upsertAndFindById() {
7778
User user = new User(UUID.randomUUID().toString(), "firstname", "lastname");
7879
User modified = couchbaseTemplate.upsertById(User.class).one(user);
7980
assertEquals(user, modified);
80-
81-
modified = couchbaseTemplate.replaceById(User.class).one(user);
82-
assertEquals(user, modified);
83-
84-
user.setVersion(12345678);
85-
assertThrows(DataIntegrityViolationException.class, () -> couchbaseTemplate.replaceById(User.class).one(user));
81+
// create a new object so that the object returned by replaceById() is a different object from the original user
82+
// don't need to copy the ModifiedDate/ModifiedTime as they are not read and are overwritten.
83+
User modifying = new User(user.getId(), user.getFirstname(), user.getLastname());
84+
modifying.setCreatedDate(user.getCreatedDate());
85+
modifying.setCreatedBy(user.getCreatedBy());
86+
modifying.setVersion(user.getVersion());
87+
modified = couchbaseTemplate.replaceById(User.class).one(modifying);
88+
assertEquals(modifying, modified);
89+
if(user == modified){
90+
throw new RuntimeException ( " user == modified ");
91+
}
92+
assertNotEquals(user, modified);
93+
assertEquals(NaiveAuditorAware.AUDITOR, modified.getCreatedBy());
94+
assertEquals(NaiveAuditorAware.AUDITOR, modified.getLastModifiedBy());
95+
assertNotEquals(0, modified.getCreatedDate());
96+
assertNotEquals(0, modified.getLastModifiedDate());
97+
// The FixedDateTimeService of the AuditingDateTimeProvider will guarantee these are equal
98+
assertEquals(user.getLastModifiedDate(), modified.getLastModifiedDate());
99+
100+
User badUser = new User(user.getId(), user.getFirstname(), user.getLastname());
101+
badUser.setVersion(12345678);
102+
assertThrows(DataIntegrityViolationException.class, () -> couchbaseTemplate.replaceById(User.class).one(badUser));
86103

87104
User found = couchbaseTemplate.findById(User.class).one(user.getId());
88-
user.setVersion(found.getVersion());
89-
assertEquals(user, found);
105+
assertEquals(modified, found);
90106

91107
couchbaseTemplate.removeById().one(user.getId());
92108
}

src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryCollectionIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ void findByQueryAll() {
150150

151151
for (User u : foundUsers) {
152152
assertTrue(u.equals(user1) || u.equals(user2));
153-
assertEquals(auditUser, u.getCreator());
153+
assertEquals(auditUser, u.getCreatedBy());
154154
assertEquals(auditMillis, u.getCreatedDate());
155155
assertEquals(auditUser, u.getLastModifiedBy());
156156
assertEquals(auditMillis, u.getLastModifiedDate());

src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ void findByQueryAll() {
9999

100100
for (User u : foundUsers) {
101101
assertTrue(u.equals(user1) || u.equals(user2));
102-
assertEquals(auditUser, u.getCreator());
102+
assertEquals(auditUser, u.getCreatedBy());
103103
assertEquals(auditMillis, u.getCreatedDate());
104104
assertEquals(auditUser, u.getLastModifiedBy());
105105
assertEquals(auditMillis, u.getLastModifiedDate());

src/test/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplateKeyValueIntegrationTests.java

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@
3737
import org.springframework.dao.DuplicateKeyException;
3838
import org.springframework.data.couchbase.core.ExecutableRemoveByIdOperation.ExecutableRemoveById;
3939
import org.springframework.data.couchbase.core.support.OneAndAllEntityReactive;
40+
import org.springframework.data.couchbase.domain.NaiveAuditorAware;
4041
import org.springframework.data.couchbase.domain.PersonValue;
42+
import org.springframework.data.couchbase.domain.ReactiveNaiveAuditorAware;
4143
import org.springframework.data.couchbase.domain.User;
4244
import org.springframework.data.couchbase.domain.UserAnnotated;
4345
import org.springframework.data.couchbase.domain.UserAnnotated2;
@@ -72,17 +74,33 @@ void upsertAndFindById() {
7274
User user = new User(UUID.randomUUID().toString(), "firstname", "lastname");
7375
User modified = reactiveCouchbaseTemplate.upsertById(User.class).one(user).block();
7476
assertEquals(user, modified);
75-
76-
modified = reactiveCouchbaseTemplate.replaceById(User.class).one(user).block();
77-
assertEquals(user, modified);
78-
79-
user.setVersion(12345678);
77+
// create a new object so that the object returned by replaceById() is a different object from the original user
78+
// don't need to copy the ModifiedDate/ModifiedTime as they are not read and are overwritten.
79+
User modifying = new User(user.getId(), user.getFirstname(), user.getLastname());
80+
modifying.setCreatedDate(user.getCreatedDate());
81+
modifying.setCreatedBy(user.getCreatedBy());
82+
modifying.setVersion(user.getVersion());
83+
modified = reactiveCouchbaseTemplate.replaceById(User.class).one(modifying).block();
84+
assertEquals(modifying, modified);
85+
if(user == modified){
86+
throw new RuntimeException ( " user == modified ");
87+
}
88+
assertNotEquals(user, modified);
89+
assertEquals(ReactiveNaiveAuditorAware.AUDITOR, modified.getCreatedBy());
90+
assertEquals(ReactiveNaiveAuditorAware.AUDITOR, modified.getLastModifiedBy());
91+
assertNotEquals(0, modified.getCreatedDate());
92+
assertNotEquals(0, modified.getLastModifiedDate());
93+
// The FixedDateTimeService of the AuditingDateTimeProvider will guarantee these are equal
94+
assertEquals(user.getLastModifiedDate(), modified.getLastModifiedDate());
95+
96+
User badUser = new User(user.getId(), user.getFirstname(), user.getLastname());
97+
badUser.setVersion(12345678);
8098
assertThrows(DataIntegrityViolationException.class,
81-
() -> reactiveCouchbaseTemplate.replaceById(User.class).one(user).block());
99+
() -> reactiveCouchbaseTemplate.replaceById(User.class).one(badUser).block());
82100

83101
User found = reactiveCouchbaseTemplate.findById(User.class).one(user.getId()).block();
84102
user.setVersion(found.getVersion());
85-
assertEquals(user, found);
103+
assertEquals(modified, found);
86104

87105
reactiveCouchbaseTemplate.removeById().one(user.getId()).block();
88106
}

src/test/java/org/springframework/data/couchbase/core/query/ReactiveCouchbaseTemplateQueryCollectionIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ void findByQueryAll() {
148148

149149
for (User u : foundUsers) {
150150
assertTrue(u.equals(user1) || u.equals(user2));
151-
assertEquals(auditUser, u.getCreator());
151+
assertEquals(auditUser, u.getCreatedBy());
152152
assertEquals(auditMillis, u.getCreatedDate());
153153
assertEquals(auditUser, u.getLastModifiedBy());
154154
assertEquals(auditMillis, u.getLastModifiedDate());

src/test/java/org/springframework/data/couchbase/domain/Config.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,8 @@
5454
@Configuration
5555
@EnableCouchbaseRepositories
5656
@EnableReactiveCouchbaseRepositories
57-
@EnableCouchbaseAuditing(auditorAwareRef = "auditorAwareRef", dateTimeProviderRef = "dateTimeProviderRef")
58-
@EnableReactiveCouchbaseAuditing(auditorAwareRef = "reactiveAuditorAwareRef",
59-
dateTimeProviderRef = "dateTimeProviderRef")
57+
@EnableCouchbaseAuditing(dateTimeProviderRef = "dateTimeProviderRef")
58+
@EnableReactiveCouchbaseAuditing(dateTimeProviderRef = "dateTimeProviderRef")
6059

6160
public class Config extends AbstractCouchbaseConfiguration {
6261
String bucketname = "travel-sample";
@@ -128,11 +127,11 @@ public void configureReactiveRepositoryOperationsMapping(ReactiveRepositoryOpera
128127
try {
129128
// comment out references to 'protected' and 'mybucket' - they are only to show how multi-bucket would work
130129
// ReactiveCouchbaseTemplate personTemplate = myReactiveCouchbaseTemplate(myCouchbaseClientFactory("protected"),
131-
// (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
130+
// (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
132131
// baseMapping.mapEntity(Person.class, personTemplate); // Person goes in "protected" bucket
133132
// ReactiveCouchbaseTemplate userTemplate = myReactiveCouchbaseTemplate(myCouchbaseClientFactory("mybucket"),
134-
// (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
135-
//baseMapping.mapEntity(User.class, userTemplate); // User goes in "mybucket"
133+
// (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
134+
// baseMapping.mapEntity(User.class, userTemplate); // User goes in "mybucket"
136135
// everything else goes in getBucketName() ( which is travel-sample )
137136
} catch (Exception e) {
138137
throw e;
@@ -144,11 +143,11 @@ public void configureRepositoryOperationsMapping(RepositoryOperationsMapping bas
144143
try {
145144
// comment out references to 'protected' and 'mybucket' - they are only to show how multi-bucket would work
146145
// CouchbaseTemplate personTemplate = myCouchbaseTemplate(myCouchbaseClientFactory("protected"),
147-
// (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
146+
// (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
148147
// baseMapping.mapEntity(Person.class, personTemplate); // Person goes in "protected" bucket
149148
// MappingCouchbaseConverter cvtr = (MappingCouchbaseConverter)baseMapping.getDefault().getConverter();
150149
// CouchbaseTemplate userTemplate = myCouchbaseTemplate(myCouchbaseClientFactory("mybucket"),
151-
// (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
150+
// (MappingCouchbaseConverter) (baseMapping.getDefault().getConverter()));
152151
// baseMapping.mapEntity(User.class, userTemplate); // User goes in "mybucket"
153152
// everything else goes in getBucketName() ( which is travel-sample )
154153
} catch (Exception e) {

src/test/java/org/springframework/data/couchbase/domain/NaiveAuditorAware.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
*/
3333
public class NaiveAuditorAware implements AuditorAware<String> {
3434

35-
static public final String AUDITOR = "auditor";
35+
static public final String AUDITOR = "nonreactive_auditor";
3636
private Optional<String> auditor = Optional.of(AUDITOR);
3737

3838
@Override

src/test/java/org/springframework/data/couchbase/domain/User.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,18 @@ public long getCreatedDate() {
7171
return createdDate;
7272
}
7373

74-
public String getCreator() {
74+
public void setCreatedDate(long createdDate) {
75+
this.createdDate = createdDate;
76+
}
77+
78+
public String getCreatedBy() {
7579
return createdBy;
7680
}
7781

82+
public void setCreatedBy(String createdBy) {
83+
this.createdBy = createdBy;
84+
}
85+
7886
public long getLastModifiedDate() {
7987
return lastModifiedDate;
8088
}

src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ private void sleep(int millis) {
636636

637637
@Configuration
638638
@EnableCouchbaseRepositories("org.springframework.data.couchbase")
639-
@EnableCouchbaseAuditing(auditorAwareRef = "auditorAwareRef", dateTimeProviderRef = "dateTimeProviderRef")
639+
@EnableCouchbaseAuditing(dateTimeProviderRef = "dateTimeProviderRef")
640640
static class Config extends AbstractCouchbaseConfiguration {
641641

642642
@Override

src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryKeyValueIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ void findByIdAudited() {
8282

8383
@Configuration
8484
@EnableReactiveCouchbaseRepositories("org.springframework.data.couchbase")
85-
@EnableReactiveCouchbaseAuditing
85+
@EnableReactiveCouchbaseAuditing(dateTimeProviderRef = "dateTimeProviderRef")
8686
static class Config extends AbstractCouchbaseConfiguration {
8787

8888
@Override

0 commit comments

Comments
 (0)