mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-15 17:56:17 +01:00
Add cancel method to remove install and uninstall files
This commit is contained in:
@@ -20,6 +20,8 @@ import sonia.scm.ScmConstraintViolationException;
|
||||
import sonia.scm.event.ScmEventBus;
|
||||
import sonia.scm.lifecycle.RestartEvent;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -445,6 +447,28 @@ class DefaultPluginManagerTest {
|
||||
|
||||
verify(eventBus).post(any(RestartEvent.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldUndoPendingInstallations(@TempDirectory.TempDir Path temp) throws IOException {
|
||||
InstalledPlugin mailPlugin = createInstalled("scm-ssh-plugin");
|
||||
Path mailPluginPath = temp.resolve("scm-mail-plugin");
|
||||
Files.createDirectories(mailPluginPath);
|
||||
when(mailPlugin.getDirectory()).thenReturn(mailPluginPath);
|
||||
when(loader.getInstalledPlugins()).thenReturn(singletonList(mailPlugin));
|
||||
|
||||
AvailablePlugin git = createAvailable("scm-git-plugin");
|
||||
when(center.getAvailable()).thenReturn(ImmutableSet.of(git));
|
||||
PendingPluginInstallation gitPendingPluginInformation = mock(PendingPluginInstallation.class);
|
||||
when(installer.install(git)).thenReturn(gitPendingPluginInformation);
|
||||
|
||||
manager.install("scm-git-plugin", false);
|
||||
manager.uninstall("scm-ssh-plugin", false);
|
||||
|
||||
manager.cancelInstallations();
|
||||
|
||||
assertThat(mailPluginPath.resolve("uninstall")).doesNotExist();
|
||||
verify(gitPendingPluginInformation).cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
|
||||
Reference in New Issue
Block a user