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.api.schema.stream;
10 import static org.junit.jupiter.api.Assertions.assertEquals;
12 import java.io.IOException;
14 import org.junit.jupiter.api.BeforeAll;
15 import org.junit.jupiter.api.Test;
16 import org.opendaylight.yangtools.yang.common.QName;
17 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
18 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
19 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
20 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
22 public class YT1433Test {
23 private static EffectiveModelContext CONTEXT;
26 public static void beforeAll() {
27 CONTEXT = YangParserTestUtils.parseYangResourceDirectory("/YT1433");
31 public void testContainerAugmentContainer() throws IOException {
32 final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter();
34 final QName bar = QName.create("foo", "bar");
35 final QName baz = QName.create("foo", "baz");
37 final YangInstanceIdentifier path = YangInstanceIdentifier.builder()
38 .node(QName.create("foo", "foo"))
39 .node(AugmentationIdentifier.create(Set.of(bar)))
41 .node(AugmentationIdentifier.create(Set.of(baz)))
45 try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) {
46 try (var nnWriter = new NormalizedNodeWriter(streamWriter)) {
51 assertEquals("(foo)foo(container)\n"
52 + " AugmentationIdentifier{childNames=[(foo)bar]}(augmentation)\n"
53 + " (foo)bar(container)\n"
54 + " AugmentationIdentifier{childNames=[(foo)baz]}(augmentation)\n"
55 + " (foo)baz(container)\n"
60 + "(end)\n", streamWriter.result());
64 public void testChoiceAugmentCointainer() throws IOException {
65 final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter();
67 final QName bar = QName.create("bar", "bar");
68 final QName baz = QName.create("bar", "baz");
70 final YangInstanceIdentifier path = YangInstanceIdentifier.builder()
71 .node(QName.create("bar", "foo"))
76 try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) {
77 try (var nnWriter = new NormalizedNodeWriter(streamWriter)) {
82 assertEquals("(bar)foo(choice)\n"
83 + " (bar)bar(container)\n"
84 + " (bar)baz(container)\n"
87 + "(end)\n", streamWriter.result());