2 * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.data.tree.spi;
10 import static org.junit.jupiter.api.Assertions.assertEquals;
11 import static org.junit.jupiter.api.Assertions.assertNull;
12 import static org.mockito.Mockito.doReturn;
14 import java.util.List;
15 import org.junit.jupiter.api.Test;
16 import org.junit.jupiter.api.extension.ExtendWith;
17 import org.mockito.Mock;
18 import org.mockito.junit.jupiter.MockitoExtension;
19 import org.opendaylight.yangtools.yang.common.QName;
20 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
21 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
22 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
23 import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
25 @ExtendWith(MockitoExtension.class)
28 public ContainerNode oldData;
30 public ContainerNode newData;
32 public UnkeyedListNode child;
35 void testDeleteUnkeyedList() {
36 final var childId = new NodeIdentifier(QName.create("foo", "foo"));
37 doReturn(childId).when(child).name();
38 doReturn(List.of(child)).when(oldData).body();
39 doReturn(List.of()).when(newData).body();
40 doReturn(null).when(newData).childByArg(childId);
42 final var delta = DataTreeCandidateNodes.containerDelta(oldData, newData);
43 assertEquals(1, delta.size());
45 final var first = delta.iterator().next();
46 assertEquals(childId, first.name());
47 assertEquals(ModificationType.DELETE, first.modificationType());
48 assertEquals(child, first.dataBefore());
49 assertNull(first.dataAfter());
50 assertEquals(0, first.childNodes().size());