Bug 6173: Allow refine statement to have no substatements 80/41880/1
authorVratko Polak <vrpolak@cisco.com>
Tue, 12 Jul 2016 10:44:40 +0000 (12:44 +0200)
committerPeter Kajsa <pkajsa@cisco.com>
Fri, 15 Jul 2016 08:00:55 +0000 (10:00 +0200)
Change-Id: I2c281b8feb10fe25f67ec81de49bd0fbc69c7f45
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RefineStatementImpl.java
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/test/SubstatementValidatorTest.java
yang/yang-parser-impl/src/test/resources/substatement-validator/empty-element/empty.yang

index 11b2daa5b1d86d4ac76551bdaac6c6c4890e219d..8a91ca2145ed993271eaa456caa6e14fbca81cdb 100644 (file)
@@ -36,7 +36,7 @@ public class RefineStatementImpl extends AbstractDeclaredStatement<SchemaNodeIde
             .add(Rfc6020Mapping.MUST, 0, MAX)
             .add(Rfc6020Mapping.MIN_ELEMENTS, 0, 1)
             .add(Rfc6020Mapping.MAX_ELEMENTS, 0, 1)
-            .build(SubstatementValidator.SpecialCase.NOTNULL);
+            .build();
 
     protected RefineStatementImpl(final StmtContext<SchemaNodeIdentifier, RefineStatement, ?> context) {
         super(context);
index f4fe296a26ef73c6bcddef7b07013ce0d8518076..16f095e597e3472e1621ca4366a07ccc308058a8 100644 (file)
@@ -8,13 +8,13 @@
 
 package org.opendaylight.yangtools.yang.stmt.test;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URISyntaxException;
-import java.util.NoSuchElementException;
 import java.util.Set;
 import org.junit.After;
 import org.junit.Before;
@@ -47,22 +47,23 @@ public class SubstatementValidatorTest {
 
     @Test
     public void noException() throws URISyntaxException, ReactorException {
-        Set<Module> modules = TestUtils.loadModules(getClass().getResource("/augment-test/augment-in-augment").toURI());
+        final Set<Module> modules = TestUtils.loadModules(getClass().getResource("/augment-test/augment-in-augment")
+                .toURI());
         assertNotNull(modules);
     }
 
     @Test
     public void undesirableElementException() throws URISyntaxException, ReactorException {
-        Set<Module> modules = TestUtils.loadModules(getClass().getResource
-                ("/substatement-validator/undesirable-element").toURI());
+        final Set<Module> modules = TestUtils.loadModules(getClass().getResource(
+                "/substatement-validator/undesirable-element").toURI());
         testLog = output.toString();
         assertTrue(testLog.contains("TYPE is not valid for REVISION"));
     }
 
     @Test
     public void maximalElementCountException() throws URISyntaxException, ReactorException {
-        Set<Module> modules = TestUtils.loadModules(getClass().getResource
-                ("/substatement-validator/maximal-element").toURI());
+        final Set<Module> modules = TestUtils.loadModules(getClass().getResource(
+                "/substatement-validator/maximal-element").toURI());
         testLog = output.toString();
         assertTrue(testLog.contains("Maximal count of DESCRIPTION for AUGMENT is 1"));
     }
@@ -71,23 +72,22 @@ public class SubstatementValidatorTest {
     public void missingElementException() throws URISyntaxException, ReactorException {
         expectedEx.expect(MissingSubstatementException.class);
 
-        Set<Module> modules = TestUtils.loadModules(getClass().getResource
-                ("/substatement-validator/missing-element").toURI());
+        final Set<Module> modules = TestUtils.loadModules(getClass().getResource(
+                "/substatement-validator/missing-element").toURI());
     }
 
     @Test
-    public void emptyElementException() throws URISyntaxException, ReactorException {
-        expectedEx.expect(NoSuchElementException.class);
-
-        Set<Module> modules = TestUtils.loadModules(getClass().getResource
-                ("/substatement-validator/empty-element").toURI());
+    public void bug6173Test() throws ReactorException, URISyntaxException {
+        final Set<Module> loadModules = TestUtils.loadModules(getClass().getResource(
+                "/substatement-validator/empty-element").toURI());
+        assertEquals(1, loadModules.size());
     }
 
     @Test
     public void bug4310test() throws URISyntaxException, ReactorException {
         expectedEx.expect(IllegalArgumentException.class);
 
-        Set<Module> modules = TestUtils.loadModules(getClass().getResource
-                ("/substatement-validator/bug-4310").toURI());
+        final Set<Module> modules = TestUtils.loadModules(getClass().getResource("/substatement-validator/bug-4310")
+                .toURI());
     }
 }
\ No newline at end of file
index fad4799f48e1abaa08d9b5e03255bc01d87deacd..35b2844106dae609907e1d0de453070ea41ad808 100644 (file)
@@ -16,4 +16,4 @@ module empty {
             }
         }
     }
-}
\ No newline at end of file
+}