Remove yang-maven-plugin interfaces
[yangtools.git] / plugin / yang-maven-plugin / src / test / java / org / opendaylight / yangtools / yang2sources / plugin / FilenameResolutionTest.java
index 645c4f8acac92a17c35be3e5f14840a6fe27b980..9d0bf3ac2005d6effd613959bcd59b81ea9df078 100644 (file)
@@ -8,58 +8,46 @@
 package org.opendaylight.yangtools.yang2sources.plugin;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doAnswer;
 
-import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableTable;
 import com.google.common.collect.Iterables;
 import com.google.common.io.Resources;
 import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
-import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
-import java.util.Set;
 import org.apache.maven.plugin.AbstractMojoExecutionException;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.opendaylight.yangtools.plugin.generator.api.ModuleResourceResolver;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-import org.opendaylight.yangtools.yang2sources.plugin.ConfigArg.CodeGeneratorArg;
-import org.opendaylight.yangtools.yang2sources.spi.BasicCodeGenerator;
-import org.opendaylight.yangtools.yang2sources.spi.ModuleResourceResolver;
 
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class FilenameResolutionTest extends AbstractCodeGeneratorTest {
     @Test
     public void testResolveSubmoduleResource() throws URISyntaxException, AbstractMojoExecutionException, IOException {
-        setupMojo(new YangToSourcesProcessor(
-            new File(Resources.getResource(FilenameResolutionTest.class, "/filename").toURI()), ImmutableList.of(),
-            List.of(new CodeGeneratorArg(Generator.class.getName(), "outputDir")), project, false, yangProvider))
-            .execute();
-    }
-
-    public static final class Generator implements BasicCodeGenerator {
-        @Override
-        public Collection<File> generateSources(final EffectiveModelContext context, final File outputBaseDir,
-                final Set<Module> currentModules, final ModuleResourceResolver moduleResourcePathResolver)  {
-            final var module = Iterables.getOnlyElement(context.getModules());
-            assertEquals(Optional.of("/META-INF/yang/foo@2020-10-13.yang"),
-                moduleResourcePathResolver.findModuleResourcePath(module, YangTextSchemaSource.class));
+        assertMojoExecution(new YangToSourcesProcessor(
+            new File(Resources.getResource(FilenameResolutionTest.class, "/filename").toURI()), List.of(),
+            List.of(new FileGeneratorArg("mockGenerator")), project, false, yangProvider), mock -> {
+                doAnswer(invocation -> {
+                    final EffectiveModelContext context = invocation.getArgument(0);
+                    final ModuleResourceResolver resolver = invocation.getArgument(2);
 
-            final var submodule = Iterables.getOnlyElement(module.getSubmodules());
-            assertEquals(Optional.of("/META-INF/yang/foo-submodule@2020-10-12.yang"),
-                moduleResourcePathResolver.findModuleResourcePath(submodule, YangTextSchemaSource.class));
-            return List.of();
-        }
+                    final var module = Iterables.getOnlyElement(context.getModules());
+                    assertEquals(Optional.of("/META-INF/yang/foo@2020-10-13.yang"),
+                        resolver.findModuleResourcePath(module, YangTextSchemaSource.class));
 
-        @Override
-        public void setAdditionalConfig(final Map<String, String> additionalConfiguration) {
-            // Noop
-        }
+                    final var submodule = Iterables.getOnlyElement(module.getSubmodules());
+                    assertEquals(Optional.of("/META-INF/yang/foo-submodule@2020-10-12.yang"),
+                        resolver.findModuleResourcePath(submodule, YangTextSchemaSource.class));
 
-        @Override
-        public void setResourceBaseDir(final File resourceBaseDir) {
-            // Noop
-        }
+                    return ImmutableTable.of();
+                }).when(mock).generateFiles(any(), any(), any());
+            }, mock -> { });
     }
 }