mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-18 11:11:07 +01:00
Introduce abstraction for repository location
This commit is contained in:
@@ -91,7 +91,7 @@ public class AbstractTestBase
|
||||
contextProvider = MockUtil.getSCMContextProvider(tempDirectory);
|
||||
fileSystem = new DefaultFileSystem();
|
||||
InitialRepositoryLocationResolver initialRepoLocationResolver = new InitialRepositoryLocationResolver();
|
||||
repositoryLocationResolver = new RepositoryLocationResolver(contextProvider, repositoryDAO, initialRepoLocationResolver);
|
||||
repositoryLocationResolver = new TempDirRepositoryLocationResolver(tempDirectory);
|
||||
postSetUp();
|
||||
}
|
||||
|
||||
@@ -254,4 +254,5 @@ public class AbstractTestBase
|
||||
subjectThreadState = createThreadState(subject);
|
||||
subjectThreadState.bind();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ public abstract class ManagerTestBase<T extends ModelObject>
|
||||
contextProvider = MockUtil.getSCMContextProvider(temp);
|
||||
InitialRepositoryLocationResolver initialRepositoryLocationResolver = new InitialRepositoryLocationResolver();
|
||||
RepositoryDAO repoDao = mock(RepositoryDAO.class);
|
||||
locationResolver = new RepositoryLocationResolver(contextProvider, repoDao ,initialRepositoryLocationResolver);
|
||||
locationResolver = new TempDirRepositoryLocationResolver(temp);
|
||||
manager = createManager();
|
||||
manager.init(contextProvider);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package sonia.scm;
|
||||
|
||||
import sonia.scm.repository.BasicRepositoryLocationResolver;
|
||||
import sonia.scm.repository.RepositoryLocationResolver;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Path;
|
||||
|
||||
public class TempDirRepositoryLocationResolver extends BasicRepositoryLocationResolver {
|
||||
private final File tempDirectory;
|
||||
|
||||
public TempDirRepositoryLocationResolver(File tempDirectory) {
|
||||
super(Path.class);
|
||||
this.tempDirectory = tempDirectory;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> RepositoryLocationResolverInstance<T> create(Class<T> type) {
|
||||
return repositoryId -> (T) tempDirectory.toPath();
|
||||
}
|
||||
}
|
||||
@@ -44,6 +44,7 @@ import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -78,7 +79,10 @@ public abstract class SimpleRepositoryHandlerTestBase extends AbstractTestBase {
|
||||
|
||||
locationResolver = mock(RepositoryLocationResolver.class);
|
||||
|
||||
when(locationResolver.getPath(anyString())).then(ic -> {
|
||||
RepositoryLocationResolver.RepositoryLocationResolverInstance instanceMock = mock(RepositoryLocationResolver.RepositoryLocationResolverInstance.class);
|
||||
when(locationResolver.forClass(any())).thenReturn(instanceMock);
|
||||
|
||||
when(instanceMock.getLocation(anyString())).then(ic -> {
|
||||
String id = ic.getArgument(0);
|
||||
return baseDirectory.toPath().resolve(id);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user