Create explicit method to create new repository locations

This commit is contained in:
René Pfeuffer
2019-06-05 14:27:35 +02:00
parent c7875e7f78
commit b274952fa9
10 changed files with 57 additions and 14 deletions

View File

@@ -21,6 +21,11 @@ public class TempDirRepositoryLocationResolver extends BasicRepositoryLocationRe
return (T) tempDirectory.toPath();
}
@Override
public T createLocation(String repositoryId) {
return (T) tempDirectory.toPath();
}
@Override
public void setLocation(String repositoryId, T location) {
throw new UnsupportedOperationException("not implemented for tests");

View File

@@ -34,6 +34,7 @@ package sonia.scm.repository;
//~--- non-JDK imports --------------------------------------------------------
import org.junit.Test;
import org.mockito.stubbing.Answer;
import sonia.scm.AbstractTestBase;
import sonia.scm.store.ConfigurationStoreFactory;
import sonia.scm.store.InMemoryConfigurationStoreFactory;
@@ -82,11 +83,12 @@ public abstract class SimpleRepositoryHandlerTestBase extends AbstractTestBase {
RepositoryLocationResolver.RepositoryLocationResolverInstance instanceMock = mock(RepositoryLocationResolver.RepositoryLocationResolverInstance.class);
when(locationResolver.create(any())).thenReturn(instanceMock);
when(locationResolver.supportsLocationType(any())).thenReturn(true);
when(instanceMock.getLocation(anyString())).then(ic -> {
Answer<Object> pathAnswer = ic -> {
String id = ic.getArgument(0);
return baseDirectory.toPath().resolve(id);
});
};
when(instanceMock.getLocation(anyString())).then(pathAnswer);
when(instanceMock.createLocation(anyString())).then(pathAnswer);
handler = createRepositoryHandler(storeFactory, locationResolver, baseDirectory);
}