This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 28a6aa594 CAY-2851 Replace Existing OneToOne From New Object
28a6aa594 is described below
commit 28a6aa594efcc6b717f30ab4c602ab72074cb9d2
Author: Nikita Timofeev <[email protected]>
AuthorDate: Wed Jun 12 12:21:15 2024 +0400
CAY-2851 Replace Existing OneToOne From New Object
---
.../java/org/apache/cayenne/CDOOne2ManyIT.java | 41 ++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/cayenne/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
b/cayenne/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
index 354e7e0ec..d7d5d0511 100644
--- a/cayenne/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
@@ -338,4 +338,45 @@ public class CDOOne2ManyIT extends RuntimeCase {
assertEquals(1, g3.getPaintingArray().size());
assertSame(p3, g3.getPaintingArray().get(0));
}
+
+ @Test
+ public void testReplaceToSame() {
+
+ Painting p1 = context.newObject(Painting.class);
+ p1.setPaintingTitle("xa");
+
+ Gallery g1 = context.newObject(Gallery.class);
+ g1.setGalleryName("yTW");
+
+ p1.setToGallery(g1);
+
+ context.commitChanges();
+ ObjectContext context2 = runtime.newContext();
+
+ // test database data
+ Painting p2 = ObjectSelect.query(Painting.class).selectOne(context2);
+ Gallery g21 = p2.getToGallery();
+ assertNotNull(g21);
+ assertEquals("yTW", g21.getGalleryName());
+ assertEquals(1, g21.getPaintingArray().size());
+ assertSame(p2, g21.getPaintingArray().get(0));
+
+ g21.addToPaintingArray(p2);
+
+ // test before save
+ assertEquals(2, g21.getPaintingArray().size());
+ assertSame(p2, g21.getPaintingArray().get(0));
+
+ // do save II
+ context2.commitChanges();
+
+ ObjectContext context3 = runtime.newContext();
+
+ Painting p3 = ObjectSelect.query(Painting.class).selectOne(context3);
+ Gallery g3 = p3.getToGallery();
+ assertNotNull(g3);
+ assertEquals("yTW", g3.getGalleryName());
+ assertEquals(1, g3.getPaintingArray().size());
+ assertSame(p3, g3.getPaintingArray().get(0));
+ }
}