Bug 6173: Allow refine statement to have no substatements 52/41552/4
authorVratko Polak <vrpolak@cisco.com>
Tue, 12 Jul 2016 10:44:40 +0000 (12:44 +0200)
committerRobert Varga <nite@hq.sk>
Thu, 14 Jul 2016 14:39:51 +0000 (14:39 +0000)
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/SubstatementValidatorTest.java
yang/yang-parser-impl/src/test/resources/substatement-validator/empty-element/empty.yang

index 7eebba0e016f1d6e452f88fa53e2260ec0f777c7..e7c2668f77edb2b10d19b77d1ecfafeca42cb48f 100644 (file)
@@ -35,7 +35,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 e388750e000daa299d110b84a96a442b8f9110a6..f1a3c292d69cfbf51c2def8d0758be9793ce8ed3 100644 (file)
@@ -8,6 +8,7 @@
 
 package org.opendaylight.yangtools.yang.stmt;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
@@ -16,7 +17,6 @@ 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;
@@ -25,7 +25,6 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
-import org.opendaylight.yangtools.yang.stmt.TestUtils;
 
 public class SubstatementValidatorTest {
 
@@ -48,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"));
     }
@@ -72,23 +72,22 @@ public class SubstatementValidatorTest {
     public void missingElementException() throws URISyntaxException, ReactorException {
         expectedEx.expect(VerifyException.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
+}