Cleanup AbstractSchemaRepositoryTest 49/100949/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 3 May 2022 18:54:30 +0000 (20:54 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 3 May 2022 19:01:10 +0000 (21:01 +0200)
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 <robert.varga@pantheon.tech>
parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/AbstractSchemaRepositoryTest.java
parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/SchemaContextFactoryDeviationsTest.java
parser/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/repo/YT1428Test.java

index 16db94dd6d98a36b3b085dd69979fa1ff2048cc1..ed353a759943e2b846de88af4bc21c3f515ff43a 100644 (file)
@@ -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<EffectiveModelContext> createSchemaContext(
+    static @NonNull EffectiveModelContext assertModelContext(
+            final SetMultimap<QNameModule, QNameModule> 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<QNameModule, QNameModule> modulesWithSupportedDeviations, final String... resources) {
+        final var future = createModelContext(modulesWithSupportedDeviations, resources);
+        return assertThrows(ExecutionException.class, () -> Futures.getDone(future));
+    }
+
+    static ListenableFuture<EffectiveModelContext> createModelContext(
             final SetMultimap<QNameModule, QNameModule> modulesWithSupportedDeviations, final String... resources) {
         final var sharedSchemaRepository = new SharedSchemaRepository();
         final var requiredSources = Arrays.stream(resources)
index fb035a41b834ffa809305282f1761cb78f114976..706f00fb13e090f9e211590a9a0622f44b623d17 100644 (file)
@@ -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<QNameModule, QNameModule> modulesWithSupportedDeviations =
-                ImmutableSetMultimap.<QNameModule, QNameModule>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.<QNameModule, QNameModule>builder()
+            .put(FOO_MODULE, BAR_MODULE)
+            .put(FOO_MODULE, BAZ_MODULE)
+            .put(BAR_MODULE, BAZ_MODULE)
+            .build(),
+            FOO, BAR, BAZ, FOOBAR);
 
-        final ListenableFuture<EffectiveModelContext> 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<EffectiveModelContext> 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<EffectiveModelContext> 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<EffectiveModelContext> 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"));
index 89f7ff7998d45b31539c34b223b4b4c44db0cb34..25e9a7870bf1dc9936579dfba6605f43b98e6b70 100644 (file)
@@ -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());
     }