import static org.opendaylight.yangtools.util.concurrent.FluentFutures.immediateFluentFuture;
import com.google.common.util.concurrent.ListenableFuture;
-import java.util.Arrays;
import java.util.concurrent.ExecutionException;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.Mock;
+import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter;
+import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactoryConfiguration;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource;
-import org.opendaylight.yangtools.yang.parser.rfc7950.repo.ASTSchemaSource;
-import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToASTTransformer;
+import org.opendaylight.yangtools.yang.parser.rfc7950.ir.IRSchemaSource;
+import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer;
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class SharedSchemaContextFactoryTest {
private final SharedSchemaRepository repository = new SharedSchemaRepository("test");
- @Mock
- private SchemaSourceFilter filter;
+ private final SchemaContextFactoryConfiguration config = SchemaContextFactoryConfiguration.getDefault();
private SourceIdentifier s1;
private SourceIdentifier s2;
s1 = RevisionSourceIdentifier.create("ietf-inet-types", Revision.of("2010-09-24"));
s2 = RevisionSourceIdentifier.create("iana-timezones", Revision.of("2012-07-09"));
- final TextToASTTransformer transformer = TextToASTTransformer.create(repository, repository);
+ final TextToIRTransformer transformer = TextToIRTransformer.create(repository, repository);
repository.registerSchemaSourceListener(transformer);
repository.registerSchemaSource(sourceIdentifier -> immediateFluentFuture(source1),
@Test
public void testCreateSchemaContextWithDuplicateRequiredSources() throws InterruptedException, ExecutionException {
final SharedSchemaContextFactory sharedSchemaContextFactory = new SharedSchemaContextFactory(repository,
- filter);
- final ListenableFuture<SchemaContext> schemaContext =
- sharedSchemaContextFactory.createSchemaContext(Arrays.asList(s1, s1, s2));
+ config);
+ final ListenableFuture<EffectiveModelContext> schemaContext =
+ sharedSchemaContextFactory.createEffectiveModelContext(s1, s1, s2);
assertNotNull(schemaContext.get());
}
s1 = source1.getIdentifier();
s2 = source2.getIdentifier();
- final SettableSchemaProvider<ASTSchemaSource> provider =
+ final SettableSchemaProvider<IRSchemaSource> provider =
SharedSchemaRepositoryTest.getImmediateYangSourceProviderFromResource(
"/no-revision/imported@2012-12-12.yang");
provider.setResult();
// Register the same provider under source id without revision
final SourceIdentifier sIdWithoutRevision = RevisionSourceIdentifier.create(provider.getId().getName());
repository.registerSchemaSource(provider, PotentialSchemaSource.create(
- sIdWithoutRevision, ASTSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue()));
+ sIdWithoutRevision, IRSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue()));
final SharedSchemaContextFactory sharedSchemaContextFactory = new SharedSchemaContextFactory(repository,
- filter);
- final ListenableFuture<SchemaContext> schemaContext =
- sharedSchemaContextFactory.createSchemaContext(Arrays.asList(sIdWithoutRevision, provider.getId()));
+ config);
+ final ListenableFuture<EffectiveModelContext> schemaContext =
+ sharedSchemaContextFactory.createEffectiveModelContext(sIdWithoutRevision, provider.getId());
assertNotNull(schemaContext.get());
}
}