+/*
+ * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.stream;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.io.IOException;
+import java.util.Set;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
+
+public class YT1433Test {
+ private static EffectiveModelContext CONTEXT;
+
+ @BeforeAll
+ public static void beforeAll() {
+ CONTEXT = YangParserTestUtils.parseYangResourceDirectory("/YT1433");
+ }
+
+ @Test
+ public void testContainerAugmentContainer() throws IOException {
+ final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter();
+
+ final QName bar = QName.create("foo", "bar");
+ final QName baz = QName.create("foo", "baz");
+
+ final YangInstanceIdentifier path = YangInstanceIdentifier.builder()
+ .node(QName.create("foo", "foo"))
+ .node(AugmentationIdentifier.create(Set.of(bar)))
+ .node(bar)
+ .node(AugmentationIdentifier.create(Set.of(baz)))
+ .node(baz)
+ .build();
+
+ try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) {
+ try (var nnWriter = new NormalizedNodeWriter(streamWriter)) {
+ // No-op
+ }
+ }
+
+ assertEquals("(foo)foo(container)\n"
+ + " AugmentationIdentifier{childNames=[(foo)bar]}(augmentation)\n"
+ + " (foo)bar(container)\n"
+ + " AugmentationIdentifier{childNames=[(foo)baz]}(augmentation)\n"
+ + " (foo)baz(container)\n"
+ + " (end)\n"
+ + " (end)\n"
+ + " (end)\n"
+ + " (end)\n"
+ + "(end)\n", streamWriter.result());
+ }
+
+ @Test
+ public void testChoiceAugmentCointainer() throws IOException {
+ final FormattingNormalizedNodeStreamWriter streamWriter = new FormattingNormalizedNodeStreamWriter();
+
+ final QName bar = QName.create("bar", "bar");
+ final QName baz = QName.create("bar", "baz");
+
+ final YangInstanceIdentifier path = YangInstanceIdentifier.builder()
+ .node(QName.create("bar", "foo"))
+ .node(bar)
+ .node(baz)
+ .build();
+
+ try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, CONTEXT, path)) {
+ try (var nnWriter = new NormalizedNodeWriter(streamWriter)) {
+ // No-op
+ }
+ }
+
+ assertEquals("(bar)foo(choice)\n"
+ + " (bar)bar(container)\n"
+ + " (bar)baz(container)\n"
+ + " (end)\n"
+ + " (end)\n"
+ + "(end)\n", streamWriter.result());
+ }
+}