f45ce5df9dd9bf97d2cfe47cbe143cfd894c42e9
[netconf.git] / restconf / restconf-nb-rfc8040 / src / test / java / org / opendaylight / restconf / nb / rfc8040 / jersey / providers / XmlNormalizedNodeBodyWriterTest.java
1 /*
2  * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.restconf.nb.rfc8040.jersey.providers;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.mockito.Mockito.when;
12
13 import java.io.ByteArrayOutputStream;
14 import java.io.OutputStream;
15 import javax.ws.rs.core.MediaType;
16 import org.junit.BeforeClass;
17 import org.junit.Test;
18 import org.mockito.Mockito;
19 import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
20 import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload;
21 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
22 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
23 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
24 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
25 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
26 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
27 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
28
29 public class XmlNormalizedNodeBodyWriterTest {
30
31     private static final String EMPTY_OUTPUT = "<data xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"></data>";
32
33     private static EffectiveModelContext schemaContext;
34
35     @BeforeClass
36     public static void initialization() throws Exception {
37         schemaContext = Mockito.mock(EffectiveModelContext.class);
38     }
39
40     @Test
41     public void testWriteEmptyRootContainer() throws Exception {
42         final SchemaNode schemaNode = Mockito.mock(SchemaNode.class);
43         when(schemaNode.getPath()).thenReturn(SchemaPath.ROOT);
44
45         final InstanceIdentifierContext<SchemaNode> identifierContext =
46                 new InstanceIdentifierContext<>(YangInstanceIdentifier.empty(), schemaNode, null, schemaContext);
47         final ContainerNode data = ImmutableContainerNodeBuilder.create()
48                 .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(SchemaContext.NAME)).build();
49         final NormalizedNodePayload nodePayload = NormalizedNodePayload.of(identifierContext, data);
50
51         final OutputStream output = new ByteArrayOutputStream();
52         final XmlNormalizedNodeBodyWriter xmlWriter = new XmlNormalizedNodeBodyWriter();
53         xmlWriter.writeTo(nodePayload, null, null, null, MediaType.APPLICATION_XML_TYPE, null, output);
54
55         assertEquals(EMPTY_OUTPUT, output.toString());
56     }
57 }