You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2020/08/06 10:55:52 UTC
[cayenne] branch master updated: replacing Mockito "Answer" with
"ArgumentCaptor"
This is an automated email from the ASF dual-hosted git repository.
aadamchik 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 641a56c replacing Mockito "Answer" with "ArgumentCaptor"
641a56c is described below
commit 641a56cc0e59a39be13589d4f6906a1aa0d593fc
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Thu Aug 6 13:49:41 2020 +0300
replacing Mockito "Answer" with "ArgumentCaptor"
---
.../cayenne/commitlog/CommitLogFilterIT.java | 234 ++++++++++++++++++
.../cayenne/commitlog/CommitLogFilter_AllIT.java | 275 ---------------------
2 files changed, 234 insertions(+), 275 deletions(-)
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilterIT.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilterIT.java
new file mode 100644
index 0000000..d7f41f8
--- /dev/null
+++ b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilterIT.java
@@ -0,0 +1,234 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.commitlog;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.ObjectId;
+import org.apache.cayenne.commitlog.db.Auditable1;
+import org.apache.cayenne.commitlog.db.AuditableChild1;
+import org.apache.cayenne.commitlog.model.*;
+import org.apache.cayenne.commitlog.unit.AuditableServerCase;
+import org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
+import org.apache.cayenne.query.SelectById;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+
+import java.sql.SQLException;
+
+import static org.junit.Assert.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
+
+public class CommitLogFilterIT extends AuditableServerCase {
+
+ protected ObjectContext context;
+ protected CommitLogListener mockListener;
+
+ @Override
+ protected ServerRuntimeBuilder configureCayenne() {
+ this.mockListener = mock(CommitLogListener.class);
+ return super.configureCayenne().addModule(CommitLogModule.extend().addListener(mockListener).module());
+ }
+
+ @Before
+ public void before() {
+ context = runtime.newContext();
+ }
+
+ @Test
+ public void testPostCommit_Insert() {
+
+ Auditable1 a1 = context.newObject(Auditable1.class);
+ a1.setCharProperty1("yy");
+ ObjectId preCommitId = a1.getObjectId();
+
+ context.commitChanges();
+
+ ArgumentCaptor<ChangeMap> changeMap = ArgumentCaptor.forClass(ChangeMap.class);
+ verify(mockListener).onPostCommit(any(ObjectContext.class), changeMap.capture());
+
+ assertNotNull(changeMap.getValue());
+ assertEquals(2, changeMap.getValue().getChanges().size());
+ assertEquals(1, changeMap.getValue().getUniqueChanges().size());
+
+ ObjectChange c = changeMap.getValue().getUniqueChanges().iterator().next();
+ assertNotNull(c);
+ assertEquals(ObjectChangeType.INSERT, c.getType());
+ assertEquals(1, c.getAttributeChanges().size());
+ assertEquals("yy", c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getNewValue());
+
+ assertNotEquals(preCommitId, a1.getObjectId());
+ assertEquals(preCommitId, c.getPreCommitId());
+ assertEquals(a1.getObjectId(), c.getPostCommitId());
+ }
+
+ @Test
+ public void testPostCommit_Update() throws SQLException {
+
+ auditable1.insert(1, "xx");
+
+ Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
+ a1.setCharProperty1("yy");
+
+ ObjectId preCommitId = a1.getObjectId();
+
+ context.commitChanges();
+
+ ArgumentCaptor<ChangeMap> changeMap = ArgumentCaptor.forClass(ChangeMap.class);
+ verify(mockListener).onPostCommit(any(ObjectContext.class), changeMap.capture());
+
+ assertNotNull(changeMap.getValue());
+ assertEquals(1, changeMap.getValue().getUniqueChanges().size());
+
+ ObjectChange c = changeMap.getValue().getChanges().get(ObjectId.of("Auditable1", Auditable1.ID_PK_COLUMN, 1));
+ assertNotNull(c);
+ assertEquals(ObjectChangeType.UPDATE, c.getType());
+ assertEquals(1, c.getAttributeChanges().size());
+ AttributeChange pc = c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName());
+ assertNotNull(pc);
+ assertEquals("xx", pc.getOldValue());
+ assertEquals("yy", pc.getNewValue());
+
+ assertEquals(preCommitId, a1.getObjectId());
+ assertEquals(preCommitId, c.getPreCommitId());
+ assertEquals(preCommitId, c.getPostCommitId());
+ }
+
+ @Test
+ public void testPostCommit_Delete() throws SQLException {
+ auditable1.insert(1, "xx");
+
+ Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
+ context.deleteObject(a1);
+ context.commitChanges();
+
+ ArgumentCaptor<ChangeMap> changeMap = ArgumentCaptor.forClass(ChangeMap.class);
+ verify(mockListener).onPostCommit(any(ObjectContext.class), changeMap.capture());
+
+ assertNotNull(changeMap.getValue());
+ assertEquals(1, changeMap.getValue().getUniqueChanges().size());
+
+ ObjectChange c = changeMap.getValue().getChanges().get(ObjectId.of("Auditable1", Auditable1.ID_PK_COLUMN, 1));
+ assertNotNull(c);
+ assertEquals(ObjectChangeType.DELETE, c.getType());
+ assertEquals(1, c.getAttributeChanges().size());
+ assertEquals("xx", c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getOldValue());
+ assertNull(c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getNewValue());
+ }
+
+ @Test
+ public void testPostCommit_UpdateToOne() throws SQLException {
+ auditable1.insert(1, "xx");
+ auditable1.insert(2, "yy");
+
+ auditableChild1.insert(1, 1, "cc1");
+ auditableChild1.insert(2, 2, "cc2");
+ auditableChild1.insert(3, null, "cc3");
+
+ AuditableChild1 ac1 = SelectById.query(AuditableChild1.class, 1).selectOne(context);
+ AuditableChild1 ac2 = SelectById.query(AuditableChild1.class, 2).selectOne(context);
+ AuditableChild1 ac3 = SelectById.query(AuditableChild1.class, 3).selectOne(context);
+
+ Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
+ Auditable1 a2 = SelectById.query(Auditable1.class, 2).selectOne(context);
+
+ a1.removeFromChildren1(ac1);
+ a1.addToChildren1(ac2);
+ a1.addToChildren1(ac3);
+
+ context.commitChanges();
+
+ ArgumentCaptor<ChangeMap> changeMap = ArgumentCaptor.forClass(ChangeMap.class);
+ verify(mockListener).onPostCommit(any(ObjectContext.class), changeMap.capture());
+
+ assertNotNull(changeMap.getValue());
+ assertEquals(4, changeMap.getValue().getUniqueChanges().size());
+
+ ObjectChange ac1c = changeMap.getValue().getChanges().get(
+ ObjectId.of("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 1));
+ assertNotNull(ac1c);
+ assertEquals(ObjectChangeType.UPDATE, ac1c.getType());
+ ToOneRelationshipChange ac1c1 = ac1c.getToOneRelationshipChanges().get(AuditableChild1.PARENT.getName());
+ assertEquals(a1.getObjectId(), ac1c1.getOldValue());
+ assertNull(ac1c1.getNewValue());
+
+ ObjectChange ac2c = changeMap.getValue().getChanges().get(
+ ObjectId.of("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 2));
+ assertNotNull(ac2c);
+ assertEquals(ObjectChangeType.UPDATE, ac2c.getType());
+ ToOneRelationshipChange ac2c1 = ac2c.getToOneRelationshipChanges()
+ .get(AuditableChild1.PARENT.getName());
+ assertEquals(a2.getObjectId(), ac2c1.getOldValue());
+ assertEquals(a1.getObjectId(), ac2c1.getNewValue());
+
+ ObjectChange ac3c = changeMap.getValue().getChanges().get(
+ ObjectId.of("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 3));
+ assertNotNull(ac3c);
+ assertEquals(ObjectChangeType.UPDATE, ac3c.getType());
+ ToOneRelationshipChange ac3c1 = ac3c.getToOneRelationshipChanges()
+ .get(AuditableChild1.PARENT.getName());
+ assertNull(ac3c1.getOldValue());
+ assertEquals(a1.getObjectId(), ac3c1.getNewValue());
+ }
+
+ @Test
+ public void testPostCommit_UpdateToMany() throws SQLException {
+ auditable1.insert(1, "xx");
+ auditableChild1.insert(1, 1, "cc1");
+ auditableChild1.insert(2, null, "cc2");
+ auditableChild1.insert(3, null, "cc3");
+
+ AuditableChild1 ac1 = SelectById.query(AuditableChild1.class, 1).selectOne(context);
+ AuditableChild1 ac2 = SelectById.query(AuditableChild1.class, 2).selectOne(context);
+ AuditableChild1 ac3 = SelectById.query(AuditableChild1.class, 3).selectOne(context);
+
+ Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
+
+ a1.removeFromChildren1(ac1);
+ a1.addToChildren1(ac2);
+ a1.addToChildren1(ac3);
+
+ context.commitChanges();
+
+ ArgumentCaptor<ChangeMap> changeMap = ArgumentCaptor.forClass(ChangeMap.class);
+ verify(mockListener).onPostCommit(any(ObjectContext.class), changeMap.capture());
+
+ assertNotNull(changeMap.getValue());
+ assertEquals(4, changeMap.getValue().getUniqueChanges().size());
+
+ ObjectChange a1c = changeMap.getValue().getChanges().get(ObjectId.of("Auditable1", Auditable1.ID_PK_COLUMN, 1));
+ assertNotNull(a1c);
+ assertEquals(ObjectChangeType.UPDATE, a1c.getType());
+ assertEquals(0, a1c.getAttributeChanges().size());
+
+ assertEquals(1, a1c.getToManyRelationshipChanges().size());
+
+ ToManyRelationshipChange a1c1 = a1c.getToManyRelationshipChanges().get(Auditable1.CHILDREN1.getName());
+ assertNotNull(a1c1);
+
+ assertEquals(2, a1c1.getAdded().size());
+ assertTrue(a1c1.getAdded().contains(ac2.getObjectId()));
+ assertTrue(a1c1.getAdded().contains(ac3.getObjectId()));
+
+ assertEquals(1, a1c1.getRemoved().size());
+ assertTrue(a1c1.getRemoved().contains(ac1.getObjectId()));
+
+ }
+}
diff --git a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_AllIT.java b/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_AllIT.java
deleted file mode 100644
index 22b780a..0000000
--- a/cayenne-commitlog/src/test/java/org/apache/cayenne/commitlog/CommitLogFilter_AllIT.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.commitlog;
-
-import org.apache.cayenne.ObjectContext;
-import org.apache.cayenne.ObjectId;
-import org.apache.cayenne.commitlog.db.Auditable1;
-import org.apache.cayenne.commitlog.db.AuditableChild1;
-import org.apache.cayenne.commitlog.model.AttributeChange;
-import org.apache.cayenne.commitlog.model.ChangeMap;
-import org.apache.cayenne.commitlog.model.ObjectChange;
-import org.apache.cayenne.commitlog.model.ObjectChangeType;
-import org.apache.cayenne.commitlog.model.ToManyRelationshipChange;
-import org.apache.cayenne.commitlog.model.ToOneRelationshipChange;
-import org.apache.cayenne.commitlog.unit.AuditableServerCase;
-import org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
-import org.apache.cayenne.query.SelectById;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-
-import java.sql.SQLException;
-
-import static org.junit.Assert.*;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
-
-public class CommitLogFilter_AllIT extends AuditableServerCase {
-
- protected ObjectContext context;
- protected CommitLogListener mockListener;
-
- @Override
- protected ServerRuntimeBuilder configureCayenne() {
- this.mockListener = mock(CommitLogListener.class);
- return super.configureCayenne().addModule(CommitLogModule.extend().addListener(mockListener).module());
- }
-
- @Before
- public void before() {
- context = runtime.newContext();
- }
-
- @Test
- public void testPostCommit_Insert() {
-
- Auditable1 a1 = context.newObject(Auditable1.class);
- a1.setCharProperty1("yy");
- ObjectId preCommitId = a1.getObjectId();
-
- doAnswer((Answer<Object>) invocation -> {
-
- assertSame(context, invocation.getArguments()[0]);
-
- ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
- assertNotNull(changes);
- assertEquals(2, changes.getChanges().size());
- assertEquals(1, changes.getUniqueChanges().size());
-
- ObjectChange c = changes.getUniqueChanges().iterator().next();
- assertNotNull(c);
- assertEquals(ObjectChangeType.INSERT, c.getType());
- assertEquals(1, c.getAttributeChanges().size());
- assertEquals("yy", c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getNewValue());
-
- assertNotEquals(preCommitId, a1.getObjectId());
- assertEquals(preCommitId, c.getPreCommitId());
- assertEquals(a1.getObjectId(), c.getPostCommitId());
-
- return null;
- }).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
-
- context.commitChanges();
-
- verify(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
- }
-
- @Test
- public void testPostCommit_Update() throws SQLException {
-
- auditable1.insert(1, "xx");
-
- final Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
- a1.setCharProperty1("yy");
-
- final ObjectId preCommitId = a1.getObjectId();
-
- doAnswer((Answer<Object>) invocation -> {
-
- assertSame(context, invocation.getArguments()[0]);
-
- ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
- assertNotNull(changes);
- assertEquals(1, changes.getUniqueChanges().size());
-
- ObjectChange c = changes.getChanges().get(ObjectId.of("Auditable1", Auditable1.ID_PK_COLUMN, 1));
- assertNotNull(c);
- assertEquals(ObjectChangeType.UPDATE, c.getType());
- assertEquals(1, c.getAttributeChanges().size());
- AttributeChange pc = c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName());
- assertNotNull(pc);
- assertEquals("xx", pc.getOldValue());
- assertEquals("yy", pc.getNewValue());
-
- assertEquals(preCommitId, a1.getObjectId());
- assertEquals(preCommitId, c.getPreCommitId());
- assertEquals(preCommitId, c.getPostCommitId());
-
- return null;
- }).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
-
- context.commitChanges();
-
- verify(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
- }
-
- @Test
- public void testPostCommit_Delete() throws SQLException {
- auditable1.insert(1, "xx");
-
- doAnswer((Answer<Object>) invocation -> {
-
- assertSame(context, invocation.getArguments()[0]);
-
- ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
- assertNotNull(changes);
- assertEquals(1, changes.getUniqueChanges().size());
-
- ObjectChange c = changes.getChanges().get(ObjectId.of("Auditable1", Auditable1.ID_PK_COLUMN, 1));
- assertNotNull(c);
- assertEquals(ObjectChangeType.DELETE, c.getType());
- assertEquals(1, c.getAttributeChanges().size());
- assertEquals("xx", c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getOldValue());
- assertNull(c.getAttributeChanges().get(Auditable1.CHAR_PROPERTY1.getName()).getNewValue());
-
- return null;
- }).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
-
- Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
- context.deleteObject(a1);
- context.commitChanges();
-
- verify(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
- }
-
- @Test
- public void testPostCommit_UpdateToOne() throws SQLException {
- auditable1.insert(1, "xx");
- auditable1.insert(2, "yy");
-
- auditableChild1.insert(1, 1, "cc1");
- auditableChild1.insert(2, 2, "cc2");
- auditableChild1.insert(3, null, "cc3");
-
- final AuditableChild1 ac1 = SelectById.query(AuditableChild1.class, 1).selectOne(context);
- final AuditableChild1 ac2 = SelectById.query(AuditableChild1.class, 2).selectOne(context);
- final AuditableChild1 ac3 = SelectById.query(AuditableChild1.class, 3).selectOne(context);
-
- final Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
- final Auditable1 a2 = SelectById.query(Auditable1.class, 2).selectOne(context);
-
- doAnswer((Answer<Object>) invocation -> {
-
- assertSame(context, invocation.getArguments()[0]);
-
- ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
- assertNotNull(changes);
- assertEquals(4, changes.getUniqueChanges().size());
-
- ObjectChange ac1c = changes.getChanges().get(
- ObjectId.of("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 1));
- assertNotNull(ac1c);
- assertEquals(ObjectChangeType.UPDATE, ac1c.getType());
- ToOneRelationshipChange ac1c1 = ac1c.getToOneRelationshipChanges()
- .get(AuditableChild1.PARENT.getName());
- assertEquals(a1.getObjectId(), ac1c1.getOldValue());
-assertNull(ac1c1.getNewValue());
-
- ObjectChange ac2c = changes.getChanges().get(
- ObjectId.of("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 2));
- assertNotNull(ac2c);
- assertEquals(ObjectChangeType.UPDATE, ac2c.getType());
- ToOneRelationshipChange ac2c1 = ac2c.getToOneRelationshipChanges()
- .get(AuditableChild1.PARENT.getName());
- assertEquals(a2.getObjectId(), ac2c1.getOldValue());
- assertEquals(a1.getObjectId(), ac2c1.getNewValue());
-
- ObjectChange ac3c = changes.getChanges().get(
- ObjectId.of("AuditableChild1", AuditableChild1.ID_PK_COLUMN, 3));
- assertNotNull(ac3c);
- assertEquals(ObjectChangeType.UPDATE, ac3c.getType());
- ToOneRelationshipChange ac3c1 = ac3c.getToOneRelationshipChanges()
- .get(AuditableChild1.PARENT.getName());
- assertNull(ac3c1.getOldValue());
- assertEquals(a1.getObjectId(), ac3c1.getNewValue());
-
- return null;
- }).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
-
- a1.removeFromChildren1(ac1);
- a1.addToChildren1(ac2);
- a1.addToChildren1(ac3);
-
- context.commitChanges();
-
- verify(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
- }
-
- @Test
- public void testPostCommit_UpdateToMany() throws SQLException {
- auditable1.insert(1, "xx");
- auditableChild1.insert(1, 1, "cc1");
- auditableChild1.insert(2, null, "cc2");
- auditableChild1.insert(3, null, "cc3");
-
- final AuditableChild1 ac1 = SelectById.query(AuditableChild1.class, 1).selectOne(context);
- final AuditableChild1 ac2 = SelectById.query(AuditableChild1.class, 2).selectOne(context);
- final AuditableChild1 ac3 = SelectById.query(AuditableChild1.class, 3).selectOne(context);
-
- final Auditable1 a1 = SelectById.query(Auditable1.class, 1).selectOne(context);
-
- doAnswer((Answer<Object>) invocation -> {
-
- assertSame(context, invocation.getArguments()[0]);
-
- ChangeMap changes = (ChangeMap) invocation.getArguments()[1];
- assertNotNull(changes);
- assertEquals(4, changes.getUniqueChanges().size());
-
- ObjectChange a1c = changes.getChanges().get(ObjectId.of("Auditable1", Auditable1.ID_PK_COLUMN, 1));
- assertNotNull(a1c);
- assertEquals(ObjectChangeType.UPDATE, a1c.getType());
- assertEquals(0, a1c.getAttributeChanges().size());
-
- assertEquals(1, a1c.getToManyRelationshipChanges().size());
-
- ToManyRelationshipChange a1c1 = a1c.getToManyRelationshipChanges().get(Auditable1.CHILDREN1.getName());
- assertNotNull(a1c1);
-
- assertEquals(2, a1c1.getAdded().size());
- assertTrue(a1c1.getAdded().contains(ac2.getObjectId()));
- assertTrue(a1c1.getAdded().contains(ac3.getObjectId()));
-
- assertEquals(1, a1c1.getRemoved().size());
- assertTrue(a1c1.getRemoved().contains(ac1.getObjectId()));
-
- return null;
- }).when(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
-
- a1.removeFromChildren1(ac1);
- a1.addToChildren1(ac2);
- a1.addToChildren1(ac3);
-
- context.commitChanges();
-
- verify(mockListener).onPostCommit(any(ObjectContext.class), any(ChangeMap.class));
- }
-}