X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=data%2Fyang-data-api%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fapi%2Fschema%2Fstream%2FYangInstanceIdentifierWriterTest.java;h=68bbf7ce3971f939a4c4417dea5b79ef1a3b5480;hb=3f0eb0fab6a771c8b849504e1dbb0f929c8cac23;hp=a4fa881de8c523d99475a2f46e4435109ed8c9a1;hpb=1c4c8d10983f94378da03c94ca08653f7c184a62;p=yangtools.git diff --git a/data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/YangInstanceIdentifierWriterTest.java b/data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/YangInstanceIdentifierWriterTest.java index a4fa881de8..68bbf7ce39 100644 --- a/data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/YangInstanceIdentifierWriterTest.java +++ b/data/yang-data-api/src/test/java/org/opendaylight/yangtools/yang/data/api/schema/stream/YangInstanceIdentifierWriterTest.java @@ -8,15 +8,12 @@ package org.opendaylight.yangtools.yang.data.api.schema.stream; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import java.io.IOException; -import java.util.List; -import java.util.Optional; import java.util.Set; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.junit.jupiter.MockitoExtension; @@ -28,39 +25,30 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithV import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; -import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; -import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ContainerLike; -import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; -import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; @ExtendWith(MockitoExtension.class) public class YangInstanceIdentifierWriterTest { + private static EffectiveModelContext CONTEXT; + + @BeforeAll + public static void beforeAll() { + CONTEXT = YangParserTestUtils.parseYangResourceDirectory("/YT1392"); + } + @Test public void testYangInstanceIdentifierWriter() throws IOException { final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter(); - final DataNodeContainer root = mock(DataNodeContainer.class); - - final ContainerLike containerSchema1 = mock(ContainerLike.class); - final ContainerLike containerSchema2 = mock(ContainerLike.class); - final ContainerLike containerSchema3 = mock(ContainerLike.class); - - doReturn(containerSchema1).when(root).dataChildByName(any()); - doReturn(containerSchema2).when(containerSchema1).dataChildByName(any()); - doReturn(containerSchema3).when(containerSchema2).dataChildByName(any()); - final YangInstanceIdentifier path = YangInstanceIdentifier.builder() .node(QName.create("test", "container-1")) .node(QName.create("test", "container-2")) .node(QName.create("test", "container-3")) .build(); - try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, root, path)) { + try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) { try (var nnWriter = new NormalizedNodeWriter(streamWriter)) { nnWriter.write(mockedPayload()); } @@ -85,33 +73,16 @@ public class YangInstanceIdentifierWriterTest { public void testAugmentationIdentifier() throws IOException { final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter(); - final ContainerLike root = mock(ContainerLike.class); final QName augmented = QName.create("augment-namespace", "augmented-container"); - final QName container2Qname = QName.create("augment-namespace", "container-2"); - - final ContainerLike containerSchema1 = mock(ContainerLike.class); - final AugmentationSchemaNode augmentationSchema = mock(AugmentationSchemaNode.class); - final ContainerLike augmentedContainerSchema = mock(ContainerLike.class); - final ContainerLike containerSchema2 = mock(ContainerLike.class); - - doReturn(containerSchema1).when(root).dataChildByName(any()); - - doReturn(Set.of(augmentationSchema)).when(containerSchema1).getAvailableAugmentations(); - doReturn(augmentedContainerSchema).when(augmentationSchema).dataChildByName(augmented); - - doReturn(Set.of(augmentedContainerSchema)).when(augmentationSchema).getChildNodes(); - doReturn(augmented).when(augmentedContainerSchema).getQName(); - - doReturn(containerSchema2).when(augmentedContainerSchema).dataChildByName(any()); final YangInstanceIdentifier path = YangInstanceIdentifier.builder() .node(QName.create("test", "container-1")) .node(AugmentationIdentifier.create(Set.of(augmented))) .node(augmented) - .node(container2Qname) + .node(QName.create(augmented, "container-2")) .build(); - try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, root, path)) { + try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) { try (var nnWriter = new NormalizedNodeWriter(streamWriter)) { nnWriter.write(mockedPayload()); } @@ -138,29 +109,15 @@ public class YangInstanceIdentifierWriterTest { public void testMapIdentifier() throws IOException { final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter(); - final ContainerLike root = mock(ContainerLike.class); - final ListSchemaNode listSchemaNode = mock(ListSchemaNode.class); - - final MapEntryNode listEntry = mock(MapEntryNode.class); - - final ContainerLike containerSchema1 = mock(ContainerLike.class); - final QName container1Qname = QName.create("test", "container-1"); - final QName list1KeyQname = QName.create("test", "list-1-key"); final QName listQname = QName.create("test", "list-1"); - doReturn(listQname).when(listSchemaNode).getQName(); - doReturn(listSchemaNode).when(root).dataChildByName(any()); - doReturn(List.of(list1KeyQname)).when(listSchemaNode).getKeyDefinition(); - doReturn(containerSchema1).when(listSchemaNode).dataChildByName(container1Qname); - doReturn("test-list-entry").when(listEntry).toString(); - final YangInstanceIdentifier path = YangInstanceIdentifier.builder() .node(listQname) - .nodeWithKey(listQname,list1KeyQname, listEntry) - .node(container1Qname) + .nodeWithKey(listQname, QName.create("test", "list-1-key"), "test-list-entry") + .node(QName.create("test", "container-1")) .build(); - try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, root, path)) { + try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) { try (var nnWriter = new NormalizedNodeWriter(streamWriter)) { nnWriter.write(mockedPayload()); } @@ -184,25 +141,13 @@ public class YangInstanceIdentifierWriterTest { @Test public void testChoiceIdentifier() throws IOException { final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter(); - final ContainerLike root = mock(ContainerLike.class); - final ChoiceSchemaNode choiceSchemaNode = mock(ChoiceSchemaNode.class); - final CaseSchemaNode caseSchemaNode = mock(CaseSchemaNode.class); - final ContainerLike caseContainer = mock(ContainerLike.class); - - final QName choiceQname = QName.create("test", "choice-node"); - final QName caseQname = QName.create("test", "container-in-case"); - - doReturn(choiceSchemaNode).when(root).dataChildByName(choiceQname); - doReturn(Set.of(caseSchemaNode)).when(choiceSchemaNode).getCases(); - doCallRealMethod().when(choiceSchemaNode).findDataSchemaChild(any()); - doReturn(Optional.of(caseContainer)).when(caseSchemaNode).findDataChildByName(any()); final YangInstanceIdentifier path = YangInstanceIdentifier.builder() - .node(choiceQname) - .node(caseQname) + .node(QName.create("test", "choice-node")) + .node(QName.create("test", "container-in-case")) .build(); - try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, root, path)) { + try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) { try (var nnWriter = new NormalizedNodeWriter(streamWriter)) { nnWriter.write(mockedPayload()); } @@ -225,16 +170,11 @@ public class YangInstanceIdentifierWriterTest { public void testLeafSetIdentifier() throws IOException { final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter(); - final ContainerLike root = mock(ContainerLike.class); - final LeafListSchemaNode leafSetSchema = mock(LeafListSchemaNode.class); - - doReturn(leafSetSchema).when(root).dataChildByName(any()); - final YangInstanceIdentifier path = YangInstanceIdentifier.builder() .node(QName.create("test", "list-list")) .build(); - try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, root, path)) { + try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) { try (var nnWriter = new NormalizedNodeWriter(streamWriter)) { final QName leafQname = QName.create("test", "leaf");