Move SchemaExportContext
[netconf.git] / restconf / restconf-nb-rfc8040 / src / test / java / org / opendaylight / restconf / nb / rfc8040 / utils / parser / YangInstanceIdentifierSerializerTest.java
index 824343172b164f1612a567e2670b8c7c6d898cb5..3f73f3d67b9c25c2e174358c78e182ccdd45f3aa 100644 (file)
@@ -5,26 +5,27 @@
  * 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.restconf.nb.rfc8040.utils.parser;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import com.google.common.collect.ImmutableSet;
+import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
-import org.junit.Before;
-import org.junit.Rule;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Test;
-import org.junit.rules.ExpectedException;
+import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils;
-import org.opendaylight.restconf.nb.rfc8040.utils.parser.builder.ParserBuilderConstants;
 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.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 /**
@@ -32,16 +33,17 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
  */
 public class YangInstanceIdentifierSerializerTest {
 
-    @Rule
-    public ExpectedException thrown = ExpectedException.none();
-
     // schema context with test modules
-    private SchemaContext schemaContext;
+    private static EffectiveModelContext SCHEMA_CONTEXT;
+
+    @BeforeClass
+    public static void beforeClass() throws Exception {
+        SCHEMA_CONTEXT = YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles("/restconf/parser/serializer"));
+    }
 
-    @Before
-    public void init() throws Exception {
-        this.schemaContext =
-                YangParserTestUtils.parseYangSources(TestRestconfUtils.loadFiles("/restconf/parser/serializer"));
+    @AfterClass
+    public static void afterClass() {
+        SCHEMA_CONTEXT = null;
     }
 
     /**
@@ -54,7 +56,7 @@ public class YangInstanceIdentifierSerializerTest {
                 .node(QName.create("serializer:test", "2016-06-06", "contA"))
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful",
                 "serializer-test:contA", result);
     }
@@ -70,7 +72,7 @@ public class YangInstanceIdentifierSerializerTest {
                 .node(QName.create("serializer:test", "2016-06-06", "leaf-A"))
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful", "serializer-test:contA/leaf-A", result);
     }
 
@@ -86,13 +88,12 @@ public class YangInstanceIdentifierSerializerTest {
         final YangInstanceIdentifier data = YangInstanceIdentifier.builder()
                 .node(QName.create("serializer:test", "2016-06-06", "contA"))
                 .node(list)
-                .node(new YangInstanceIdentifier.NodeIdentifierWithPredicates(
-                        list, QName.create(list, "list-key"), 100))
+                .node(NodeIdentifierWithPredicates.of(list, QName.create(list, "list-key"), 100))
                 .node(leafList)
                 .node(new NodeWithValue<>(leafList, "instance"))
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful",
                 "serializer-test:contA/list-A=100/leaf-list-AA=instance",
                 result);
@@ -107,10 +108,10 @@ public class YangInstanceIdentifierSerializerTest {
     public void serializeListWithNoKeysTest() {
         final YangInstanceIdentifier data = YangInstanceIdentifier.builder()
                 .node(QName.create("serializer:test", "2016-06-06", "list-no-key"))
-                .nodeWithKey(QName.create("serializer:test", "2016-06-06", "list-no-key"), Maps.newHashMap())
+                .nodeWithKey(QName.create("serializer:test", "2016-06-06", "list-no-key"), new HashMap<>())
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful", "serializer-test:list-no-key", result);
     }
 
@@ -127,7 +128,7 @@ public class YangInstanceIdentifierSerializerTest {
                         QName.create("serializer:test", "2016-06-06", "list-one-key"), "value")
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful", "serializer-test:list-one-key=value", result);
     }
 
@@ -147,7 +148,7 @@ public class YangInstanceIdentifierSerializerTest {
         final YangInstanceIdentifier data = YangInstanceIdentifier.builder()
                 .node(list).nodeWithKey(list, values).build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful", "serializer-test:list-multiple-keys=value-1,2,true", result);
     }
 
@@ -162,7 +163,7 @@ public class YangInstanceIdentifierSerializerTest {
                 .node(QName.create("serializer:test", "2016-06-06", "leaf-0"))
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful", "serializer-test:leaf-0", result);
     }
 
@@ -178,7 +179,7 @@ public class YangInstanceIdentifierSerializerTest {
                 .node(new NodeWithValue<>(QName.create("serializer:test", "2016-06-06", "leaf-list-0"), "instance"))
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful", "serializer-test:leaf-list-0=instance", result);
     }
 
@@ -189,8 +190,8 @@ public class YangInstanceIdentifierSerializerTest {
      */
     @Test
     public void serializeNullSchemaContextNegativeTest() {
-        this.thrown.expect(NullPointerException.class);
-        YangInstanceIdentifierSerializer.create(null, YangInstanceIdentifier.EMPTY);
+        assertThrows(NullPointerException.class,
+            () -> YangInstanceIdentifierSerializer.create(null, YangInstanceIdentifier.empty()));
     }
 
     /**
@@ -200,8 +201,8 @@ public class YangInstanceIdentifierSerializerTest {
      */
     @Test
     public void serializeNullDataNegativeTest() {
-        this.thrown.expect(NullPointerException.class);
-        YangInstanceIdentifierSerializer.create(this.schemaContext, null);
+        assertThrows(NullPointerException.class,
+            () -> YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, null));
     }
 
     /**
@@ -211,13 +212,13 @@ public class YangInstanceIdentifierSerializerTest {
      */
     @Test
     public void serializeEmptyDataTest() {
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, YangInstanceIdentifier.EMPTY);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, YangInstanceIdentifier.empty());
         assertTrue("Empty identifier is expected", result.isEmpty());
     }
 
     /**
      * Negative test when it is not possible to find child node of current node. Test is expected to fail with
-     * <code>IllegalArgumentException</code> and error message is compared to expected error message.
+     * <code>RestconfDocumentedException</code> and error message is compared to expected error message.
      */
     @Test
     public void serializeChildNodeNotFoundNegativeTest() {
@@ -226,8 +227,8 @@ public class YangInstanceIdentifierSerializerTest {
                 .node(QName.create("serializer:test", "2016-06-06", "not-existing-leaf"))
                 .build();
 
-        this.thrown.expect(IllegalArgumentException.class);
-        YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        assertThrows(RestconfDocumentedException.class,
+            () -> YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data));
     }
 
     /**
@@ -241,12 +242,12 @@ public class YangInstanceIdentifierSerializerTest {
 
         for (final char c : genDelims) {
             assertTrue("Current character is reserved and should be percent encoded",
-                    ParserBuilderConstants.Serializer.PERCENT_ENCODE_CHARS.matches(c));
+                    YangInstanceIdentifierSerializer.PERCENT_ENCODE_CHARS.matches(c));
         }
 
         for (final char c : subDelims) {
             assertTrue("Current character is reserved and should be percent encoded",
-                    ParserBuilderConstants.Serializer.PERCENT_ENCODE_CHARS.matches(c));
+                    YangInstanceIdentifierSerializer.PERCENT_ENCODE_CHARS.matches(c));
         }
     }
 
@@ -264,7 +265,7 @@ public class YangInstanceIdentifierSerializerTest {
                         QName.create("serializer:test", "2016-06-06", "list-one-key"), value)
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful", "serializer-test:list-one-key=" + encoded, result);
     }
 
@@ -281,7 +282,7 @@ public class YangInstanceIdentifierSerializerTest {
                         QName.create("serializer:test", "2016-06-06", "list-one-key"), value)
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
         assertEquals("Serialization not successful", "serializer-test:list-one-key=" + value, result);
     }
 
@@ -296,13 +297,12 @@ public class YangInstanceIdentifierSerializerTest {
 
         final YangInstanceIdentifier data = YangInstanceIdentifier.builder()
                 .node(list)
-                .node(new YangInstanceIdentifier.NodeIdentifierWithPredicates(
-                        list, QName.create(list, "list-key"), 100))
-                .node(new YangInstanceIdentifier.AugmentationIdentifier(Sets.newHashSet(child)))
+                .node(NodeIdentifierWithPredicates.of(list, QName.create(list, "list-key"), 100))
+                .node(new AugmentationIdentifier(ImmutableSet.of(child)))
                 .node(child)
                 .build();
 
-        final String result = YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data);
 
         assertEquals("Serialization not successful",
                 "serializer-test-included:augmented-list=100/serializer-test:augmented-leaf", result);
@@ -311,7 +311,7 @@ public class YangInstanceIdentifierSerializerTest {
     /**
      * Test of serialization when nodes in input <code>YangInstanceIdentifier</code> are defined in two different
      * modules by using augmentation. Augmented node in data supplied for serialization has wrong namespace.
-     * <code>IllegalArgumentException</code> is expected because augmented node is defined in other module than its
+     * <code>RestconfDocumentedException</code> is expected because augmented node is defined in other module than its
      * parent and will not be found.
      */
     @Test
@@ -322,13 +322,12 @@ public class YangInstanceIdentifierSerializerTest {
 
         final YangInstanceIdentifier data = YangInstanceIdentifier.builder()
                 .node(list)
-                .node(new YangInstanceIdentifier.NodeIdentifierWithPredicates(
-                        list, QName.create(list, "list-key"), 100))
-                .node(new YangInstanceIdentifier.AugmentationIdentifier(Sets.newHashSet(child)))
+                .node(NodeIdentifierWithPredicates.of(list, QName.create(list, "list-key"), 100))
+                .node(new AugmentationIdentifier(ImmutableSet.of(child)))
                 .node(child)
                 .build();
 
-        this.thrown.expect(IllegalArgumentException.class);
-        YangInstanceIdentifierSerializer.create(this.schemaContext, data);
+        assertThrows(RestconfDocumentedException.class,
+            () -> YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data));
     }
 }