X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frepo%2FSharedSchemaRepositoryWithFeaturesTest.java;h=41473ea2130ad913e6ce2132e4761060e99350a7;hb=bb60da5fe2d1928defb46ed92b290cfff93dcd81;hp=18b6fa72cf3d9c43a05890d5b2e1e7cec069820f;hpb=c11896bd11b0549ab5bf0a493b299a6660b0481f;p=yangtools.git diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SharedSchemaRepositoryWithFeaturesTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SharedSchemaRepositoryWithFeaturesTest.java index 18b6fa72cf..41473ea213 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SharedSchemaRepositoryWithFeaturesTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SharedSchemaRepositoryWithFeaturesTest.java @@ -5,7 +5,6 @@ * 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.yangtools.yang.parser.repo; import static org.junit.Assert.assertEquals; @@ -13,70 +12,62 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import com.google.common.collect.Lists; -import com.google.common.util.concurrent.CheckedFuture; -import java.util.HashSet; +import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.ListenableFuture; import java.util.Set; -import java.util.function.Predicate; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactory; -import org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException; -import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException; -import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter; -import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource; -import org.opendaylight.yangtools.yang.parser.util.TextToASTTransformer; +import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory; +import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactoryConfiguration; +import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.parser.rfc7950.ir.IRSchemaSource; +import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer; public class SharedSchemaRepositoryWithFeaturesTest { @Test public void testSharedSchemaRepositoryWithSomeFeaturesSupported() throws Exception { - Predicate isFeatureSupported = qName -> { - Set supportedFeatures = new HashSet<>(); - supportedFeatures.add(QName.create("foobar-namespace", "1970-01-01", "test-feature-1")); - - return supportedFeatures.contains(qName); - }; + final Set supportedFeatures = ImmutableSet.of(QName.create("foobar-namespace", "test-feature-1")); final SharedSchemaRepository sharedSchemaRepository = new SharedSchemaRepository( "shared-schema-repo-with-features-test"); - final SettableSchemaProvider foobar = getImmediateYangSourceProviderFromResource - ("/if-feature-resolution-test/shared-schema-repository/foobar.yang"); + final SettableSchemaProvider foobar = getImmediateYangSourceProviderFromResource( + "/if-feature-resolution-test/shared-schema-repository/foobar.yang"); foobar.register(sharedSchemaRepository); foobar.setResult(); - final SchemaContextFactory fact = sharedSchemaRepository - .createSchemaContextFactory(SchemaSourceFilter.ALWAYS_ACCEPT); - - final CheckedFuture testSchemaContextFuture = - fact.createSchemaContext(Lists.newArrayList(foobar.getId()), isFeatureSupported); + final ListenableFuture testSchemaContextFuture = + sharedSchemaRepository.createEffectiveModelContextFactory( + SchemaContextFactoryConfiguration.builder().setSupportedFeatures(supportedFeatures).build()) + .createEffectiveModelContext(foobar.getId()); assertTrue(testSchemaContextFuture.isDone()); - assertSchemaContext(testSchemaContextFuture.checkedGet(), 1); + assertSchemaContext(testSchemaContextFuture.get(), 1); - Module module = testSchemaContextFuture.checkedGet().findModuleByName("foobar", null); + final Module module = testSchemaContextFuture.get().findModules("foobar").iterator().next(); assertNotNull(module); assertEquals(2, module.getChildNodes().size()); - ContainerSchemaNode testContainerA = (ContainerSchemaNode) module.getDataChildByName( + final ContainerSchemaNode testContainerA = (ContainerSchemaNode) module.getDataChildByName( QName.create(module.getQNameModule(), "test-container-a")); assertNotNull(testContainerA); - LeafSchemaNode testLeafA = (LeafSchemaNode) testContainerA.getDataChildByName( + final LeafSchemaNode testLeafA = (LeafSchemaNode) testContainerA.getDataChildByName( QName.create(module.getQNameModule(), "test-leaf-a")); assertNotNull(testLeafA); - ContainerSchemaNode testContainerB = (ContainerSchemaNode) module.getDataChildByName( + final ContainerSchemaNode testContainerB = (ContainerSchemaNode) module.dataChildByName( QName.create(module.getQNameModule(), "test-container-b")); assertNull(testContainerB); - ContainerSchemaNode testContainerC = (ContainerSchemaNode) module.getDataChildByName( + final ContainerSchemaNode testContainerC = (ContainerSchemaNode) module.getDataChildByName( QName.create(module.getQNameModule(), "test-container-c")); assertNotNull(testContainerC); - LeafSchemaNode testLeafC = (LeafSchemaNode) testContainerC.getDataChildByName( + final LeafSchemaNode testLeafC = (LeafSchemaNode) testContainerC.getDataChildByName( QName.create(module.getQNameModule(), "test-leaf-c")); assertNotNull(testLeafC); } @@ -86,85 +77,80 @@ public class SharedSchemaRepositoryWithFeaturesTest { final SharedSchemaRepository sharedSchemaRepository = new SharedSchemaRepository( "shared-schema-repo-with-features-test"); - final SettableSchemaProvider foobar = getImmediateYangSourceProviderFromResource - ("/if-feature-resolution-test/shared-schema-repository/foobar.yang"); + final SettableSchemaProvider foobar = getImmediateYangSourceProviderFromResource( + "/if-feature-resolution-test/shared-schema-repository/foobar.yang"); foobar.register(sharedSchemaRepository); foobar.setResult(); - final SchemaContextFactory fact = sharedSchemaRepository - .createSchemaContextFactory(SchemaSourceFilter.ALWAYS_ACCEPT); - - final CheckedFuture testSchemaContextFuture = fact - .createSchemaContext(Lists.newArrayList(foobar.getId())); + final EffectiveModelContextFactory fact = sharedSchemaRepository.createEffectiveModelContextFactory(); + final ListenableFuture testSchemaContextFuture = + fact.createEffectiveModelContext(foobar.getId()); assertTrue(testSchemaContextFuture.isDone()); - assertSchemaContext(testSchemaContextFuture.checkedGet(), 1); + assertSchemaContext(testSchemaContextFuture.get(), 1); - Module module = testSchemaContextFuture.checkedGet().findModuleByName("foobar", null); + final Module module = testSchemaContextFuture.get().findModules("foobar").iterator().next(); assertNotNull(module); assertEquals(3, module.getChildNodes().size()); - ContainerSchemaNode testContainerA = (ContainerSchemaNode) module.getDataChildByName( + final ContainerSchemaNode testContainerA = (ContainerSchemaNode) module.getDataChildByName( QName.create(module.getQNameModule(), "test-container-a")); assertNotNull(testContainerA); - LeafSchemaNode testLeafA = (LeafSchemaNode) testContainerA.getDataChildByName( + final LeafSchemaNode testLeafA = (LeafSchemaNode) testContainerA.getDataChildByName( QName.create(module.getQNameModule(), "test-leaf-a")); assertNotNull(testLeafA); - ContainerSchemaNode testContainerB = (ContainerSchemaNode) module.getDataChildByName( + final ContainerSchemaNode testContainerB = (ContainerSchemaNode) module.getDataChildByName( QName.create(module.getQNameModule(), "test-container-b")); assertNotNull(testContainerB); - LeafSchemaNode testLeafB = (LeafSchemaNode) testContainerB.getDataChildByName( + final LeafSchemaNode testLeafB = (LeafSchemaNode) testContainerB.getDataChildByName( QName.create(module.getQNameModule(), "test-leaf-b")); assertNotNull(testLeafB); - ContainerSchemaNode testContainerC = (ContainerSchemaNode) module.getDataChildByName( + final ContainerSchemaNode testContainerC = (ContainerSchemaNode) module.getDataChildByName( QName.create(module.getQNameModule(), "test-container-c")); assertNotNull(testContainerC); - LeafSchemaNode testLeafC = (LeafSchemaNode) testContainerC.getDataChildByName( + final LeafSchemaNode testLeafC = (LeafSchemaNode) testContainerC.getDataChildByName( QName.create(module.getQNameModule(), "test-leaf-c")); assertNotNull(testLeafC); } @Test public void testSharedSchemaRepositoryWithNoFeaturesSupported() throws Exception { - Predicate isFeatureSupported = qName -> false; - final SharedSchemaRepository sharedSchemaRepository = new SharedSchemaRepository( "shared-schema-repo-with-features-test"); - final SettableSchemaProvider foobar = getImmediateYangSourceProviderFromResource - ("/if-feature-resolution-test/shared-schema-repository/foobar.yang"); + final SettableSchemaProvider foobar = getImmediateYangSourceProviderFromResource( + "/if-feature-resolution-test/shared-schema-repository/foobar.yang"); foobar.register(sharedSchemaRepository); foobar.setResult(); - final SchemaContextFactory fact = sharedSchemaRepository - .createSchemaContextFactory(SchemaSourceFilter.ALWAYS_ACCEPT); - - final CheckedFuture testSchemaContextFuture = fact - .createSchemaContext(Lists.newArrayList(foobar.getId()), isFeatureSupported); + final ListenableFuture testSchemaContextFuture = + sharedSchemaRepository.createEffectiveModelContextFactory( + SchemaContextFactoryConfiguration.builder().setSupportedFeatures(ImmutableSet.of()).build()) + .createEffectiveModelContext(foobar.getId()); assertTrue(testSchemaContextFuture.isDone()); - assertSchemaContext(testSchemaContextFuture.checkedGet(), 1); + assertSchemaContext(testSchemaContextFuture.get(), 1); - Module module = testSchemaContextFuture.checkedGet().findModuleByName("foobar", null); + final Module module = testSchemaContextFuture.get().findModules("foobar").iterator().next(); assertNotNull(module); assertEquals(1, module.getChildNodes().size()); - ContainerSchemaNode testContainerC = (ContainerSchemaNode) module.getDataChildByName( + final ContainerSchemaNode testContainerC = (ContainerSchemaNode) module.getDataChildByName( QName.create(module.getQNameModule(), "test-container-c")); assertNotNull(testContainerC); - LeafSchemaNode testLeafC = (LeafSchemaNode) testContainerC.getDataChildByName( + final LeafSchemaNode testLeafC = (LeafSchemaNode) testContainerC.getDataChildByName( QName.create(module.getQNameModule(), "test-leaf-c")); assertNotNull(testLeafC); } - private SettableSchemaProvider getImmediateYangSourceProviderFromResource( + private static SettableSchemaProvider getImmediateYangSourceProviderFromResource( final String resourceName) throws Exception { - final ResourceYangSource yangSource = new ResourceYangSource(resourceName); - final CheckedFuture aSTSchemaSource = TextToASTTransformer.TRANSFORMATION.apply(yangSource); - return SettableSchemaProvider.createImmediate(aSTSchemaSource.get(), ASTSchemaSource.class); + final YangTextSchemaSource yangSource = YangTextSchemaSource.forResource(resourceName); + return SettableSchemaProvider.createImmediate(TextToIRTransformer.transformText(yangSource), + IRSchemaSource.class); } - private void assertSchemaContext(final SchemaContext schemaContext, final int moduleSize) { + private static void assertSchemaContext(final SchemaContext schemaContext, final int moduleSize) { assertNotNull(schemaContext); assertEquals(moduleSize, schemaContext.getModules().size()); }