From d55f5deda74b6576475ca8d042448c6af5b63a3d Mon Sep 17 00:00:00 2001 From: Eduard Heimbuch Date: Thu, 23 May 2024 08:21:36 +0200 Subject: [PATCH] Fix unit tests --- .../work/NoneCachingWorkingCopyPool.java | 2 +- .../modules/WorkingCopyPoolModuleTest.java | 1 + .../PluginInstallationVerifierTest.java | 4 +-- .../sonia/scm/plugin/PluginInstallerTest.java | 25 +++++++++++-------- .../DefaultNamespaceManagerTest.java | 7 +++--- .../scm/search/LuceneQueryBuilderTest.java | 3 +-- 6 files changed, 24 insertions(+), 18 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/work/NoneCachingWorkingCopyPool.java b/scm-core/src/main/java/sonia/scm/repository/work/NoneCachingWorkingCopyPool.java index 5092fadfc8..0209e04740 100644 --- a/scm-core/src/main/java/sonia/scm/repository/work/NoneCachingWorkingCopyPool.java +++ b/scm-core/src/main/java/sonia/scm/repository/work/NoneCachingWorkingCopyPool.java @@ -24,7 +24,7 @@ package sonia.scm.repository.work; -import jakarta.inject.Inject; +import com.google.inject.Inject; import sonia.scm.util.IOUtil; import java.io.File; diff --git a/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/WorkingCopyPoolModuleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/WorkingCopyPoolModuleTest.java index 4516ab0557..00eece58a0 100644 --- a/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/WorkingCopyPoolModuleTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/WorkingCopyPoolModuleTest.java @@ -62,6 +62,7 @@ class WorkingCopyPoolModuleTest { @Test void shouldBindToDefaultWithoutProperty() { + WebappConfigProvider.setConfigBindings(Map.of("", "")); WorkingCopyPoolModule module = new WorkingCopyPoolModule(pluginLoader); when(binder.bind(WorkingCopyPool.class)).thenReturn(bindingBuilder); diff --git a/scm-webapp/src/test/java/sonia/scm/plugin/PluginInstallationVerifierTest.java b/scm-webapp/src/test/java/sonia/scm/plugin/PluginInstallationVerifierTest.java index 791f874235..b6ffbc025f 100644 --- a/scm-webapp/src/test/java/sonia/scm/plugin/PluginInstallationVerifierTest.java +++ b/scm-webapp/src/test/java/sonia/scm/plugin/PluginInstallationVerifierTest.java @@ -56,7 +56,7 @@ class PluginInstallationVerifierTest { void setUpDescriptor() { PluginInformation information = new PluginInformation(); information.setName(HOG_PLUGIN); - information.setVersion("1.0.0"); + information.setVersion("3.0.0"); when(descriptor.getInformation()).thenReturn(information); } @@ -80,7 +80,7 @@ class PluginInstallationVerifierTest { } private void matchConditions() { - when(descriptor.getCondition().isSupported()).thenReturn(true); + when(descriptor.getCondition()).thenReturn(new PluginCondition()); } @Test diff --git a/scm-webapp/src/test/java/sonia/scm/plugin/PluginInstallerTest.java b/scm-webapp/src/test/java/sonia/scm/plugin/PluginInstallerTest.java index 05e6d6b73b..57ae978954 100644 --- a/scm-webapp/src/test/java/sonia/scm/plugin/PluginInstallerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/plugin/PluginInstallerTest.java @@ -43,13 +43,18 @@ import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Collections; +import java.util.List; import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; -import static sonia.scm.plugin.Tracing.SPAN_KIND; +import static org.mockito.Mockito.RETURNS_DEEP_STUBS; +import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.lenient; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class PluginInstallerTest { @@ -81,7 +86,7 @@ class PluginInstallerTest { Path arg = ic.getArgument(0); return directory.resolve(arg); }); - InstalledPluginDescriptor supportedPlugin = createPluginDescriptor(true); + InstalledPluginDescriptor supportedPlugin = createPluginDescriptor(new PluginCondition("1.0.0", List.of("linux"), "64")); lenient().when(extractor.extractPluginDescriptor(any())).thenReturn(supportedPlugin); } @@ -161,7 +166,7 @@ class PluginInstallerTest { @Test void shouldFailForUnsupportedPlugin() throws IOException { mockContent("42"); - InstalledPluginDescriptor supportedPlugin = createPluginDescriptor(false); + InstalledPluginDescriptor supportedPlugin = createPluginDescriptor(new PluginCondition("1.0.0", List.of("linux"), "42")); when(extractor.extractPluginDescriptor(any())).thenReturn(supportedPlugin); PluginInstallationContext context = PluginInstallationContext.empty(); @@ -174,7 +179,7 @@ class PluginInstallerTest { void shouldFailForNameMismatch() throws IOException { mockContent("42"); - InstalledPluginDescriptor supportedPlugin = createPluginDescriptor("scm-svn-plugin", "1.0.0", true); + InstalledPluginDescriptor supportedPlugin = createPluginDescriptor("scm-svn-plugin", "1.0.0", new PluginCondition("1.0.0", List.of("linux"), "64")); when(extractor.extractPluginDescriptor(any())).thenReturn(supportedPlugin); PluginInstallationContext context = PluginInstallationContext.empty(); @@ -188,7 +193,7 @@ class PluginInstallerTest { void shouldFailForVersionMismatch() throws IOException { mockContent("42"); - InstalledPluginDescriptor supportedPlugin = createPluginDescriptor("scm-git-plugin", "1.1.0", true); + InstalledPluginDescriptor supportedPlugin = createPluginDescriptor("scm-git-plugin", "1.1.0", new PluginCondition("42.0.0", List.of("linux"), "64")); when(extractor.extractPluginDescriptor(any())).thenReturn(supportedPlugin); PluginInstallationContext context = PluginInstallationContext.empty(); @@ -219,16 +224,16 @@ class PluginInstallerTest { return new AvailablePlugin(descriptor); } - private InstalledPluginDescriptor createPluginDescriptor(boolean supported) { - return createPluginDescriptor("scm-git-plugin", "1.0.0", supported); + private InstalledPluginDescriptor createPluginDescriptor(PluginCondition condition) { + return createPluginDescriptor("scm-git-plugin", "1.0.0", condition); } - private InstalledPluginDescriptor createPluginDescriptor(String name, String version, boolean supported) { + private InstalledPluginDescriptor createPluginDescriptor(String name, String version, PluginCondition condition) { InstalledPluginDescriptor installedPluginDescriptor = mock(InstalledPluginDescriptor.class, RETURNS_DEEP_STUBS); lenient().when(installedPluginDescriptor.getInformation().getId()).thenReturn(name); lenient().when(installedPluginDescriptor.getInformation().getName()).thenReturn(name); lenient().when(installedPluginDescriptor.getInformation().getVersion()).thenReturn(version); - lenient().when(installedPluginDescriptor.getCondition().isSupported()).thenReturn(supported); + lenient().when(installedPluginDescriptor.getCondition()).thenReturn(condition); return installedPluginDescriptor; } } diff --git a/scm-webapp/src/test/java/sonia/scm/repository/DefaultNamespaceManagerTest.java b/scm-webapp/src/test/java/sonia/scm/repository/DefaultNamespaceManagerTest.java index 8e3ae078dc..bce4a1c49a 100644 --- a/scm-webapp/src/test/java/sonia/scm/repository/DefaultNamespaceManagerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/repository/DefaultNamespaceManagerTest.java @@ -160,11 +160,12 @@ class DefaultNamespaceManagerTest { @BeforeEach void grantReadPermission() { - when(subject.isPermitted("namespace:permissionRead")).thenReturn(true); + lenient().when(subject.isPermitted("namespace:permissionRead:life")).thenReturn(true); } @Test void shouldCreateNewNamespaceObjectIfNotInStore() { + when(subject.isPermitted("namespace:permissionRead:universe")).thenReturn(true); Namespace namespace = manager.get("universe").orElse(null); assertThat(namespace).isEqualTo(universe); @@ -212,8 +213,8 @@ class DefaultNamespaceManagerTest { @BeforeEach void grantReadPermission() { - when(subject.isPermitted("namespace:permissionRead:*")).thenReturn(false); - lenient().doThrow(AuthorizationException.class).when(subject).checkPermission("namespace:permissionWrite:*"); + when(subject.isPermitted("namespace:permissionRead:life")).thenReturn(false); + lenient().doThrow(AuthorizationException.class).when(subject).checkPermission("namespace:permissionWrite:life"); } @Test diff --git a/scm-webapp/src/test/java/sonia/scm/search/LuceneQueryBuilderTest.java b/scm-webapp/src/test/java/sonia/scm/search/LuceneQueryBuilderTest.java index aae70509df..bbec7843eb 100644 --- a/scm-webapp/src/test/java/sonia/scm/search/LuceneQueryBuilderTest.java +++ b/scm-webapp/src/test/java/sonia/scm/search/LuceneQueryBuilderTest.java @@ -58,7 +58,6 @@ import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.List; import java.util.function.Consumer; -import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -622,7 +621,7 @@ class LuceneQueryBuilderTest { } @ParameterizedTest - @CsvSource({"holmes watson moriarty,SIMPLE_WITH_ADDED_WILDCARDS", "holmes OR watson OR moriarty,PARSED_EXPERT_QUERY"}) + @CsvSource({"holmes watson moriarty,SIMPLE", "holmes OR watson OR moriarty,EXPERT"}) void shouldReturnQueryResultWithCorrectType(String queryString, String expectedQueryType) throws IOException { try (IndexWriter writer = writer()) { writer.addDocument(personDoc("Holmes"));