mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-05-06 14:07:43 +02:00
Extract update step test util
This commit is contained in:
@@ -3,11 +3,6 @@ package sonia.scm.update;
|
||||
import com.google.common.io.Resources;
|
||||
import org.mockito.Mockito;
|
||||
import sonia.scm.SCMContextProvider;
|
||||
import sonia.scm.security.AssignedPermission;
|
||||
import sonia.scm.security.DefaultKeyGenerator;
|
||||
import sonia.scm.store.ConfigurationEntryStore;
|
||||
import sonia.scm.store.ConfigurationEntryStoreFactory;
|
||||
import sonia.scm.store.JAXBConfigurationEntryStoreFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
@@ -20,15 +15,13 @@ import static org.mockito.Mockito.lenient;
|
||||
|
||||
public class UpdateStepTestUtil {
|
||||
|
||||
private final SCMContextProvider contextProvider;
|
||||
private final SCMContextProvider contextProvider;
|
||||
|
||||
private final Path tempDir;
|
||||
private final ConfigurationEntryStoreFactory storeFactory;
|
||||
|
||||
public UpdateStepTestUtil(Path tempDir) {
|
||||
this.tempDir = tempDir;
|
||||
contextProvider = Mockito.mock(SCMContextProvider.class);
|
||||
storeFactory = new JAXBConfigurationEntryStoreFactory(contextProvider, null, new DefaultKeyGenerator());
|
||||
lenient().when(contextProvider.getBaseDirectory()).thenReturn(tempDir.toFile());
|
||||
lenient().when(contextProvider.resolve(any())).thenAnswer(invocation -> tempDir.resolve(invocation.getArgument(0).toString()));
|
||||
}
|
||||
@@ -37,10 +30,6 @@ private final SCMContextProvider contextProvider;
|
||||
return contextProvider;
|
||||
}
|
||||
|
||||
public ConfigurationEntryStoreFactory getStoreFactory() {
|
||||
return storeFactory;
|
||||
}
|
||||
|
||||
public void copyConfigFile(String fileName) throws IOException {
|
||||
Path configDir = tempDir.resolve("config");
|
||||
Files.createDirectories(configDir);
|
||||
@@ -53,13 +42,6 @@ private final SCMContextProvider contextProvider;
|
||||
copyTestDatabaseFile(configDir, fileName, targetFileName);
|
||||
}
|
||||
|
||||
public ConfigurationEntryStore<AssignedPermission> getStoreForConfigFile(String name) {
|
||||
return storeFactory
|
||||
.withType(AssignedPermission.class)
|
||||
.withName(name)
|
||||
.build();
|
||||
}
|
||||
|
||||
public Path getFile(String name) {
|
||||
return tempDir.resolve("config").resolve(name);
|
||||
}
|
||||
@@ -11,6 +11,8 @@ import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import sonia.scm.group.Group;
|
||||
import sonia.scm.group.xml.XmlGroupDAO;
|
||||
import sonia.scm.security.DefaultKeyGenerator;
|
||||
import sonia.scm.store.JAXBConfigurationEntryStoreFactory;
|
||||
import sonia.scm.update.UpdateStepTestUtil;
|
||||
|
||||
import javax.xml.bind.JAXBException;
|
||||
@@ -44,7 +46,8 @@ class XmlGroupV1UpdateStepTest {
|
||||
@BeforeEach
|
||||
void mockScmHome(@TempDirectory.TempDir Path tempDir) {
|
||||
testUtil = new UpdateStepTestUtil(tempDir);
|
||||
updateStep = new XmlGroupV1UpdateStep(testUtil.getContextProvider(), groupDAO, testUtil.getStoreFactory());
|
||||
JAXBConfigurationEntryStoreFactory storeFactory = new JAXBConfigurationEntryStoreFactory(testUtil.getContextProvider(), null, new DefaultKeyGenerator());
|
||||
updateStep = new XmlGroupV1UpdateStep(testUtil.getContextProvider(), groupDAO, storeFactory);
|
||||
}
|
||||
|
||||
@Nested
|
||||
|
||||
@@ -10,6 +10,9 @@ import org.mockito.Captor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import sonia.scm.security.AssignedPermission;
|
||||
import sonia.scm.security.DefaultKeyGenerator;
|
||||
import sonia.scm.store.ConfigurationEntryStore;
|
||||
import sonia.scm.store.JAXBConfigurationEntryStoreFactory;
|
||||
import sonia.scm.update.UpdateStepTestUtil;
|
||||
import sonia.scm.user.User;
|
||||
import sonia.scm.user.xml.XmlUserDAO;
|
||||
@@ -43,7 +46,8 @@ class XmlUserV1UpdateStepTest {
|
||||
@BeforeEach
|
||||
void mockScmHome(@TempDirectory.TempDir Path tempDir) {
|
||||
testUtil = new UpdateStepTestUtil(tempDir);
|
||||
updateStep = new XmlUserV1UpdateStep(testUtil.getContextProvider(), userDAO, testUtil.getStoreFactory());
|
||||
JAXBConfigurationEntryStoreFactory storeFactory = new JAXBConfigurationEntryStoreFactory(testUtil.getContextProvider(), null, new DefaultKeyGenerator());
|
||||
updateStep = new XmlUserV1UpdateStep(testUtil.getContextProvider(), userDAO, storeFactory);
|
||||
}
|
||||
|
||||
@Nested
|
||||
@@ -63,7 +67,7 @@ class XmlUserV1UpdateStepTest {
|
||||
void shouldCreateNewPermissionsForV1AdminUser() throws JAXBException {
|
||||
updateStep.doUpdate();
|
||||
Optional<AssignedPermission> assignedPermission =
|
||||
testUtil.getStoreForConfigFile("security")
|
||||
getStoreForConfigFile("security")
|
||||
.getAll()
|
||||
.values()
|
||||
.stream()
|
||||
@@ -116,6 +120,13 @@ class XmlUserV1UpdateStepTest {
|
||||
"</item>",
|
||||
"</value>");
|
||||
}
|
||||
|
||||
private ConfigurationEntryStore<AssignedPermission> getStoreForConfigFile(String name) {
|
||||
return new JAXBConfigurationEntryStoreFactory(testUtil.getContextProvider(), null, new DefaultKeyGenerator())
|
||||
.withType(AssignedPermission.class)
|
||||
.withName(name)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user