Split out yang-data-tree-{api,spi}
[yangtools.git] / data / yang-data-tree-spi / src / test / java / org / opendaylight / yangtools / yang / data / tree / spi / DataTreeCandidatesAggregateTest.java
@@ -5,15 +5,13 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.data.api.schema.tree;
+package org.opendaylight.yangtools.yang.data.tree.spi;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThrows;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
 import org.junit.Test;
@@ -22,6 +20,9 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
+import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
 
 public class DataTreeCandidatesAggregateTest {
     private static final YangInstanceIdentifier ROOT_PATH = YangInstanceIdentifier.of(QName.create(
@@ -45,7 +46,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
         assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
@@ -66,7 +67,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
         assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
@@ -86,7 +87,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DELETE);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
         assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
@@ -104,7 +105,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -118,7 +119,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -134,7 +135,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
         assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
@@ -155,7 +156,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
         assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
@@ -174,7 +175,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DELETE);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
         assertEquals(Optional.empty(), aggregationResult.getRootNode().getDataBefore());
@@ -194,7 +195,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DELETE);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
         assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
@@ -213,7 +214,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
         assertEquals("value", aggregationResult.getRootNode().getDataBefore().get().body());
@@ -233,7 +234,7 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
         assertEquals("value1", aggregationResult.getRootNode().getDataBefore().get().body());
@@ -253,7 +254,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -269,7 +270,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -285,7 +286,7 @@ public class DataTreeCandidatesAggregateTest {
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -297,17 +298,16 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
                 ModificationType.UNMODIFIED);
-        TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, childNode,
-                ModificationType.UNMODIFIED);
-        setChildNodes(node2, Collections.singletonList(child2));
+        TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, childNode, ModificationType.UNMODIFIED);
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -321,17 +321,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, null,
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
     }
@@ -347,17 +347,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode1,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -371,18 +371,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, null,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     //FIXME
@@ -397,17 +397,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode1,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.SUBTREE_MODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -423,18 +423,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode1,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     //FIXME
@@ -447,17 +447,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, null,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.APPEARED, aggregationResult.getRootNode().getModificationType());
     }
@@ -471,18 +471,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, null,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -494,17 +494,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode1,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, null,
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DISAPPEARED, aggregationResult.getRootNode().getModificationType());
     }
@@ -518,17 +518,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, null,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
     }
@@ -544,17 +544,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -570,17 +570,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -594,17 +594,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, parentNode,
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, childNode,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -618,17 +618,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, null,
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -644,17 +644,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, null,
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
     }
@@ -670,17 +670,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -698,17 +698,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -725,18 +725,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, parentNode2,
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, childNode3,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -748,17 +748,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode, null,
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -774,17 +774,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, null,
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DISAPPEARED, aggregationResult.getRootNode().getModificationType());
     }
@@ -800,17 +800,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, parentNode2,
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, childNode2,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.SUBTREE_MODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -826,17 +826,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode2, null,
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode2, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DELETE, aggregationResult.getRootNode().getModificationType());
     }
@@ -853,17 +853,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -879,17 +879,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode1,
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.SUBTREE_MODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -906,18 +906,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -930,17 +930,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, null,
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DISAPPEARED, aggregationResult.getRootNode().getModificationType());
     }
@@ -954,17 +954,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode1,
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode1,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.APPEARED, aggregationResult.getRootNode().getModificationType());
     }
@@ -978,17 +978,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, null,
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -1004,17 +1004,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode2,
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -1029,17 +1029,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, parentNode1,
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.APPEARED, aggregationResult.getRootNode().getModificationType());
     }
@@ -1053,18 +1053,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode1,
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -1076,17 +1076,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(null, childNode1,
                 ModificationType.WRITE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(parentNode1, null,
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.UNMODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -1100,17 +1100,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
                 ModificationType.UNMODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, null,
                 ModificationType.UNMODIFIED);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.DISAPPEARED, aggregationResult.getRootNode().getModificationType());
     }
@@ -1124,18 +1124,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
                 ModificationType.DELETE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -1149,17 +1149,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
                 ModificationType.WRITE);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.WRITE, aggregationResult.getRootNode().getModificationType());
     }
@@ -1174,18 +1174,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
                 ModificationType.SUBTREE_MODIFIED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     @Test
@@ -1199,17 +1199,17 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, parentNode2,
                 ModificationType.APPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, childNode2,
                 ModificationType.WRITE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
-        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2));
+        DataTreeCandidate aggregationResult = DataTreeCandidates.aggregate(List.of(candidate1, candidate2));
 
         assertEquals(ModificationType.SUBTREE_MODIFIED, aggregationResult.getRootNode().getModificationType());
     }
@@ -1223,18 +1223,18 @@ public class DataTreeCandidatesAggregateTest {
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child1 = dataTreeCandidateNode(childNode1, null,
                 ModificationType.DELETE);
-        setChildNodes(node1, Collections.singletonList(child1));
+        setChildNodes(node1, List.of(child1));
         DataTreeCandidate candidate1 = new DefaultDataTreeCandidate(ROOT_PATH, node1);
 
         TerminalDataTreeCandidateNode node2 = dataTreeCandidateNode(null, null,
                 ModificationType.DISAPPEARED);
         TerminalDataTreeCandidateNode child2 = dataTreeCandidateNode(null, null,
                 ModificationType.DELETE);
-        setChildNodes(node2, Collections.singletonList(child2));
+        setChildNodes(node2, List.of(child2));
         DataTreeCandidate candidate2 = new DefaultDataTreeCandidate(ROOT_PATH, node2);
 
         assertThrows(IllegalArgumentException.class,
-            () -> DataTreeCandidates.aggregate(Arrays.asList(candidate1, candidate2)));
+            () -> DataTreeCandidates.aggregate(List.of(candidate1, candidate2)));
     }
 
     private static LeafNode<String> normalizedNode(final String value) {