|
26 | 26 | import static org.springframework.data.mongodb.core.query.Query.*;
|
27 | 27 | import static org.springframework.data.mongodb.core.query.Update.*;
|
28 | 28 |
|
29 |
| -import com.mongodb.BasicDBObject; |
30 |
| -import com.mongodb.DBObject; |
31 | 29 | import lombok.AllArgsConstructor;
|
32 | 30 | import lombok.Data;
|
33 | 31 | import lombok.EqualsAndHashCode;
|
|
45 | 43 | import java.util.stream.Collectors;
|
46 | 44 | import java.util.stream.IntStream;
|
47 | 45 |
|
48 |
| -import org.bson.Document; |
49 | 46 | import org.bson.types.ObjectId;
|
50 | 47 | import org.hamcrest.collection.IsMapContaining;
|
51 | 48 | import org.joda.time.DateTime;
|
|
86 | 83 | import org.springframework.data.mongodb.core.index.IndexField;
|
87 | 84 | import org.springframework.data.mongodb.core.index.IndexInfo;
|
88 | 85 | import org.springframework.data.mongodb.core.mapping.Field;
|
89 |
| -import org.springframework.data.mongodb.core.mapping.MongoId; |
90 | 86 | import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
91 | 87 | import org.springframework.data.mongodb.core.mapping.event.AbstractMongoEventListener;
|
92 | 88 | import org.springframework.data.mongodb.core.mapping.event.AfterSaveEvent;
|
|
107 | 103 | import org.springframework.util.ObjectUtils;
|
108 | 104 | import org.springframework.util.StringUtils;
|
109 | 105 |
|
| 106 | +import com.mongodb.BasicDBObject; |
| 107 | +import com.mongodb.DBObject; |
110 | 108 | import com.mongodb.DBRef;
|
111 | 109 | import com.mongodb.Mongo;
|
112 | 110 | import com.mongodb.MongoException;
|
@@ -3519,39 +3517,30 @@ public void onBeforeSave(BeforeSaveEvent<Document> event) {
|
3519 | 3517 | public void afterSaveEventContainsSavedObjectUsingInsertAll() {
|
3520 | 3518 |
|
3521 | 3519 | AtomicReference<ImmutableVersioned> saved = createAfterSaveReference();
|
| 3520 | + ImmutableVersioned source = new ImmutableVersioned(); |
3522 | 3521 |
|
3523 |
| - template.insertAll(Collections.singletonList(new ImmutableVersioned())); |
| 3522 | + template.insertAll(Collections.singletonList(source)); |
3524 | 3523 |
|
3525 | 3524 | assertThat(saved.get(), is(notNullValue()));
|
| 3525 | + assertThat(saved.get(), is(not(sameInstance(source)))); |
3526 | 3526 | assertThat(saved.get().id, is(notNullValue()));
|
| 3527 | + |
3527 | 3528 | }
|
3528 | 3529 |
|
3529 | 3530 | @Test // DATAMONGO-2189
|
3530 | 3531 | @DirtiesContext
|
3531 | 3532 | public void afterSaveEventContainsSavedObjectUsingInsert() {
|
3532 | 3533 |
|
3533 | 3534 | AtomicReference<ImmutableVersioned> saved = createAfterSaveReference();
|
| 3535 | + ImmutableVersioned source = new ImmutableVersioned(); |
3534 | 3536 |
|
3535 |
| - template.insert(new ImmutableVersioned()); |
| 3537 | + template.insert(source); |
3536 | 3538 |
|
3537 | 3539 | assertThat(saved.get(), is(notNullValue()));
|
| 3540 | + assertThat(saved.get(), is(not(sameInstance(source)))); |
3538 | 3541 | assertThat(saved.get().id, is(notNullValue()));
|
3539 | 3542 | }
|
3540 | 3543 |
|
3541 |
| - private AtomicReference<ImmutableVersioned> createAfterSaveReference() { |
3542 |
| - |
3543 |
| - AtomicReference<ImmutableVersioned> saved = new AtomicReference<>(); |
3544 |
| - context.addApplicationListener(new AbstractMongoEventListener<ImmutableVersioned>() { |
3545 |
| - |
3546 |
| - @Override |
3547 |
| - public void onAfterSave(AfterSaveEvent<ImmutableVersioned> event) { |
3548 |
| - saved.set(event.getSource()); |
3549 |
| - } |
3550 |
| - }); |
3551 |
| - |
3552 |
| - return saved; |
3553 |
| - } |
3554 |
| - |
3555 | 3544 | @Test // DATAMONGO-1509
|
3556 | 3545 | public void findsByGenericNestedListElements() {
|
3557 | 3546 |
|
@@ -3674,6 +3663,20 @@ public void writesAuditingMetadataForImmutableTypes() {
|
3674 | 3663 | assertThat(read.modified).isEqualTo(result.modified).describedAs("Expected auditing information to be read!");
|
3675 | 3664 | }
|
3676 | 3665 |
|
| 3666 | + private AtomicReference<ImmutableVersioned> createAfterSaveReference() { |
| 3667 | + |
| 3668 | + AtomicReference<ImmutableVersioned> saved = new AtomicReference<>(); |
| 3669 | + context.addApplicationListener(new AbstractMongoEventListener<ImmutableVersioned>() { |
| 3670 | + |
| 3671 | + @Override |
| 3672 | + public void onAfterSave(AfterSaveEvent<ImmutableVersioned> event) { |
| 3673 | + saved.set(event.getSource()); |
| 3674 | + } |
| 3675 | + }); |
| 3676 | + |
| 3677 | + return saved; |
| 3678 | + } |
| 3679 | + |
3677 | 3680 | static class TypeWithNumbers {
|
3678 | 3681 |
|
3679 | 3682 | @Id String id;
|
|
0 commit comments