import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
import java.text.ParseException;
import java.util.Date;
import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource;
import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangStatementSourceImpl;
public class DeviationStmtTest {
- private static final StatementStreamSource FOO_MODULE =
- new YangStatementSourceImpl("/deviation-stmt-test/foo.yang", false);
- private static final StatementStreamSource BAR_MODULE =
- new YangStatementSourceImpl("/deviation-stmt-test/bar.yang", false);
+ private static final StatementStreamSource FOO_MODULE = sourceForResource("/deviation-stmt-test/foo.yang");
+ private static final StatementStreamSource FOO_IMP_MODULE = sourceForResource("/deviation-stmt-test/foo-imp.yang");
+ private static final StatementStreamSource BAR_MODULE = sourceForResource("/deviation-stmt-test/bar.yang");
+ private static final StatementStreamSource BAR_IMP_MODULE = sourceForResource("/deviation-stmt-test/bar-imp.yang");
@Test
public void testDeviationAndDeviate() throws ReactorException, ParseException {
final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
- reactor.addSources(FOO_MODULE, BAR_MODULE);
+ reactor.addSources(FOO_MODULE, FOO_IMP_MODULE, BAR_MODULE, BAR_IMP_MODULE);
final SchemaContext schemaContext = reactor.buildEffective();
assertNotNull(schemaContext);
assertEquals(DeviateKind.ADD, deviates.iterator().next().getDeviateType());
assertEquals("added-def-val", deviates.iterator().next().getDeviatedDefault());
assertFalse(deviates.iterator().next().getDeviatedConfig());
+ assertTrue(deviates.iterator().next().getDeviatedMandatory());
} else if ("test-leaf-list".equals(targetLocalName)) {
assertEquals(3, deviates.size());
for (DeviateDefinition deviate : deviates) {
if (DeviateKind.ADD.equals(deviate.getDeviateType())) {
assertEquals(12, deviate.getDeviatedMaxElements().intValue());
- assertTrue(deviate.getDeviatedMandatory());
} else if (DeviateKind.REPLACE.equals(deviate.getDeviateType())) {
assertEquals(5, deviate.getDeviatedMinElements().intValue());
assertTrue(deviate.getDeviatedType() instanceof UnsignedIntegerTypeDefinition);
if ("bar-container-2".equals(targetLocalName)) {
DeviateKind deviateKind = deviates.iterator().next().getDeviateType();
- if (deviateKind.equals(DeviateKind.NOT_SUPPORTED)) {
+ if (deviateKind.equals(DeviateKind.DELETE)) {
deviation2 = deviation;
} else if (deviateKind.equals(DeviateKind.ADD)) {
deviation3 = deviation;