From: Robert Varga Date: Tue, 3 May 2022 18:54:30 +0000 (+0200) Subject: Cleanup AbstractSchemaRepositoryTest X-Git-Tag: v9.0.0~100 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F49%2F100949%2F1;p=yangtools.git Cleanup AbstractSchemaRepositoryTest A bit of cleanup for the base test as well as for its users. Cuts down verbosity. Change-Id: Iebacec662177ee3c67de8c0be2f62d3559dbff7d Signed-off-by: Robert Varga --- diff --git a/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/AbstractSchemaRepositoryTest.java b/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/AbstractSchemaRepositoryTest.java index 16db94dd6d..ed353a7599 100644 --- a/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/AbstractSchemaRepositoryTest.java +++ b/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/AbstractSchemaRepositoryTest.java @@ -7,11 +7,16 @@ */ package org.opendaylight.yangtools.yang.parser.repo; +import static org.junit.Assert.assertThrows; + import com.google.common.collect.SetMultimap; +import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.io.IOException; import java.util.Arrays; +import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactoryConfiguration; @@ -19,9 +24,26 @@ import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.parser.rfc7950.ir.IRSchemaSource; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer; +import org.opentest4j.AssertionFailedError; public abstract class AbstractSchemaRepositoryTest { - static ListenableFuture createSchemaContext( + static @NonNull EffectiveModelContext assertModelContext( + final SetMultimap modulesWithSupportedDeviations, final String... resources) { + final var future = createModelContext(modulesWithSupportedDeviations, resources); + try { + return Futures.getDone(future); + } catch (ExecutionException e) { + throw new AssertionFailedError("Failed to create context", e); + } + } + + static @NonNull ExecutionException assertExecutionException( + final SetMultimap modulesWithSupportedDeviations, final String... resources) { + final var future = createModelContext(modulesWithSupportedDeviations, resources); + return assertThrows(ExecutionException.class, () -> Futures.getDone(future)); + } + + static ListenableFuture createModelContext( final SetMultimap modulesWithSupportedDeviations, final String... resources) { final var sharedSchemaRepository = new SharedSchemaRepository(); final var requiredSources = Arrays.stream(resources) diff --git a/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java b/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java index fb035a41b8..706f00fb13 100644 --- a/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java +++ b/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java @@ -12,16 +12,10 @@ import static org.hamcrest.CoreMatchers.startsWith; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableSetMultimap; -import com.google.common.collect.SetMultimap; -import com.google.common.util.concurrent.ListenableFuture; import java.util.Optional; -import java.util.concurrent.ExecutionException; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -51,63 +45,47 @@ public class SchemaContextFactoryDeviationsTest extends AbstractSchemaRepository private static final QNameModule BAZ_MODULE = QNameModule.create(BAZ_NS, REVISION); @Test - public void testDeviationsSupportedInSomeModules() throws Exception { - final SetMultimap modulesWithSupportedDeviations = - ImmutableSetMultimap.builder() - .put(FOO_MODULE, BAR_MODULE) - .put(FOO_MODULE, BAZ_MODULE) - .put(BAR_MODULE, BAZ_MODULE) - .build(); + public void testDeviationsSupportedInSomeModules() { + final var context = assertModelContext(ImmutableSetMultimap.builder() + .put(FOO_MODULE, BAR_MODULE) + .put(FOO_MODULE, BAZ_MODULE) + .put(BAR_MODULE, BAZ_MODULE) + .build(), + FOO, BAR, BAZ, FOOBAR); - final ListenableFuture lf = createSchemaContext(modulesWithSupportedDeviations, FOO, BAR, - BAZ, FOOBAR); - assertTrue(lf.isDone()); - final EffectiveModelContext schemaContext = lf.get(); - assertNotNull(schemaContext); - - assertAbsent(schemaContext, MY_FOO_CONT_A); - assertAbsent(schemaContext, MY_FOO_CONT_B); - assertPresent(schemaContext, MY_FOO_CONT_C); - assertAbsent(schemaContext, MY_BAR_CONT_A); - assertPresent(schemaContext, MY_BAR_CONT_B); + assertAbsent(context, MY_FOO_CONT_A); + assertAbsent(context, MY_FOO_CONT_B); + assertPresent(context, MY_FOO_CONT_C); + assertAbsent(context, MY_BAR_CONT_A); + assertPresent(context, MY_BAR_CONT_B); } @Test - public void testDeviationsSupportedInAllModules() throws Exception { - final ListenableFuture lf = createSchemaContext(null, FOO, BAR, BAZ, FOOBAR); - assertTrue(lf.isDone()); - final EffectiveModelContext schemaContext = lf.get(); - assertNotNull(schemaContext); + public void testDeviationsSupportedInAllModules() { + final var context = assertModelContext(null, FOO, BAR, BAZ, FOOBAR); - assertAbsent(schemaContext, MY_FOO_CONT_A); - assertAbsent(schemaContext, MY_FOO_CONT_B); - assertAbsent(schemaContext, MY_FOO_CONT_C); - assertAbsent(schemaContext, MY_BAR_CONT_A); - assertAbsent(schemaContext, MY_BAR_CONT_B); + assertAbsent(context, MY_FOO_CONT_A); + assertAbsent(context, MY_FOO_CONT_B); + assertAbsent(context, MY_FOO_CONT_C); + assertAbsent(context, MY_BAR_CONT_A); + assertAbsent(context, MY_BAR_CONT_B); } @Test - public void testDeviationsSupportedInNoModule() throws Exception { - final ListenableFuture lf = createSchemaContext(ImmutableSetMultimap.of(), FOO, BAR, BAZ, - FOOBAR); - assertTrue(lf.isDone()); - final EffectiveModelContext schemaContext = lf.get(); - assertNotNull(schemaContext); + public void testDeviationsSupportedInNoModule() { + final var context = assertModelContext(ImmutableSetMultimap.of(), FOO, BAR, BAZ, FOOBAR); - assertPresent(schemaContext, MY_FOO_CONT_A); - assertPresent(schemaContext, MY_FOO_CONT_B); - assertPresent(schemaContext, MY_FOO_CONT_C); - assertPresent(schemaContext, MY_BAR_CONT_A); - assertPresent(schemaContext, MY_BAR_CONT_B); + assertPresent(context, MY_FOO_CONT_A); + assertPresent(context, MY_FOO_CONT_B); + assertPresent(context, MY_FOO_CONT_C); + assertPresent(context, MY_BAR_CONT_A); + assertPresent(context, MY_BAR_CONT_B); } @Test - public void shouldFailOnAttemptToDeviateTheSameModule2() throws Exception { - final ListenableFuture lf = createSchemaContext(null, BAR_INVALID, BAZ_INVALID); - assertTrue(lf.isDone()); + public void shouldFailOnAttemptToDeviateTheSameModule2() { + final var cause = Throwables.getRootCause(assertExecutionException(null, BAR_INVALID, BAZ_INVALID)); - final ExecutionException ex = assertThrows(ExecutionException.class, lf::get); - final Throwable cause = Throwables.getRootCause(ex); assertThat(cause, instanceOf(InferenceException.class)); assertThat(cause.getMessage(), startsWith("Deviation must not target the same module as the one it is defined in")); diff --git a/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/YT1428Test.java b/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/YT1428Test.java index 89f7ff7998..25e9a7870b 100644 --- a/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/YT1428Test.java +++ b/parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/YT1428Test.java @@ -10,19 +10,15 @@ package org.opendaylight.yangtools.yang.parser.repo; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; -import com.google.common.util.concurrent.Futures; -import java.util.concurrent.ExecutionException; import org.junit.Test; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException; public class YT1428Test extends AbstractSchemaRepositoryTest { @Test - public void testDeviateSourceReported() throws Exception { - final var future = createSchemaContext(null, "/yt1428/orig.yang", "/yt1428/deviate.yang"); - final var cause = assertThrows(ExecutionException.class, () -> Futures.getDone(future)).getCause(); + public void testDeviateSourceReported() { + final var cause = assertExecutionException(null, "/yt1428/orig.yang", "/yt1428/deviate.yang").getCause(); assertThat(cause, instanceOf(SchemaResolutionException.class)); assertEquals(RevisionSourceIdentifier.create("deviate"), ((SchemaResolutionException) cause).getFailedSource()); }