2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.controller.yang.validator;
10 import static org.junit.Assert.assertThat;
11 import static org.junit.matchers.JUnitMatchers.containsString;
12 import static org.mockito.Mockito.mock;
14 import org.antlr.v4.runtime.tree.ParseTree;
15 import org.junit.Before;
16 import org.junit.Test;
17 import org.opendaylight.controller.antlrv4.code.gen.YangParser.Belongs_to_stmtContext;
18 import org.opendaylight.controller.antlrv4.code.gen.YangParser.Submodule_header_stmtsContext;
19 import org.opendaylight.controller.antlrv4.code.gen.YangParser.Submodule_stmtContext;
20 import org.opendaylight.controller.yang.parser.util.YangValidationException;
22 public class YangModelValidationSubModuleTest {
24 private YangModelBasicValidationListener valid;
28 valid = new YangModelBasicValidationListener();
31 @Test(expected = YangValidationException.class)
32 public void testNoRevision() {
34 Submodule_stmtContext ctx = YangModelValidationTest.mockStatement(
35 Submodule_stmtContext.class, "submodule1");
38 valid.enterSubmodule_stmt(ctx);
39 } catch (YangValidationException e) {
42 containsString("Missing Submodule-header statement in Submodule:submodule"));
47 @Test(expected = YangValidationException.class)
48 public void testNoBelongsTo() {
49 Submodule_header_stmtsContext header = mock(Submodule_header_stmtsContext.class);
50 mockSubmoduleParent(header, "submodule");
53 valid.enterSubmodule_header_stmts(header);
54 } catch (YangValidationException e) {
57 containsString("Missing Belongs-to statement in Submodule-header:"));
62 @Test(expected = YangValidationException.class)
63 public void testBelongsToNoPrefix() {
64 Belongs_to_stmtContext belongsTo = YangModelValidationTest
65 .mockStatement(Belongs_to_stmtContext.class, "supermodule");
67 mockSubmoduleParent(belongsTo, "submodule");
70 valid.enterBelongs_to_stmt(belongsTo);
71 } catch (YangValidationException e) {
74 containsString("Missing Prefix statement in Belongs-to:supermodule"));
79 private Submodule_stmtContext mockSubmoduleParent(ParseTree child,
81 Submodule_stmtContext ctx = YangModelValidationTest.mockStatement(
82 Submodule_stmtContext.class, moduleName);
83 YangModelValidationTest.addChild(ctx, child);