mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-14 17:26:22 +01:00
Refactor directories in RepositoryPath and dao
This commit is contained in:
@@ -19,7 +19,7 @@ import java.io.IOException;
|
||||
* @author Mohamed Karray
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public final class InitialRepositoryLocationResolver {
|
||||
public class InitialRepositoryLocationResolver {
|
||||
|
||||
private static final String DEFAULT_REPOSITORY_PATH = "repositories";
|
||||
public static final String REPOSITORIES_NATIVE_DIRECTORY = "data";
|
||||
@@ -38,24 +38,21 @@ public final class InitialRepositoryLocationResolver {
|
||||
}
|
||||
|
||||
public File createDirectory(Repository repository) {
|
||||
File initialRepoFolder = getDirectory(getDefaultRepositoryPath(), repository);
|
||||
String initialRepoFolder = getRelativeRepositoryPath(repository);
|
||||
try {
|
||||
fileSystem.create(initialRepoFolder);
|
||||
File directory = new File(context.getBaseDirectory(), initialRepoFolder);
|
||||
fileSystem.create(directory);
|
||||
return directory;
|
||||
} catch (IOException e) {
|
||||
throw new InternalRepositoryException(repository, "Cannot create repository directory for "+repository.getNamespaceAndName(), e);
|
||||
throw new InternalRepositoryException(repository, "Cannot create repository directory for " + repository.getNamespaceAndName(), e);
|
||||
}
|
||||
return initialRepoFolder;
|
||||
}
|
||||
|
||||
public File getDirectory(String defaultRepositoryRelativePath, Repository repository) {
|
||||
return new File(context.getBaseDirectory(), defaultRepositoryRelativePath + File.separator + repository.getId());
|
||||
public String getRelativeRepositoryPath(Repository repository) {
|
||||
return getDefaultRepositoryPath() + File.separator + repository.getId();
|
||||
}
|
||||
|
||||
public String getDefaultRepositoryPath() {
|
||||
return DEFAULT_REPOSITORY_PATH ;
|
||||
}
|
||||
|
||||
public String getRelativePath(String absolutePath) {
|
||||
return absolutePath.replaceFirst(context.getBaseDirectory().getAbsolutePath()+"/", "");
|
||||
return DEFAULT_REPOSITORY_PATH;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package sonia.scm.repository;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import sonia.scm.SCMContextProvider;
|
||||
import sonia.scm.io.DefaultFileSystem;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class InitialRepositoryLocationResolverTest {
|
||||
|
||||
@Mock
|
||||
private SCMContextProvider context;
|
||||
|
||||
@Rule
|
||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||
|
||||
@Before
|
||||
public void init() throws IOException {
|
||||
when(context.getBaseDirectory()).thenReturn(temporaryFolder.newFolder());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void x() {
|
||||
InitialRepositoryLocationResolver resolver = new InitialRepositoryLocationResolver(context, new DefaultFileSystem());
|
||||
Repository repository = new Repository();
|
||||
repository.setId("ABC");
|
||||
File directory = resolver.createDirectory(repository);
|
||||
|
||||
assertThat(directory).isEqualTo(new File(context.getBaseDirectory(), "repositories/ABC"));
|
||||
assertThat(context.getBaseDirectory().exists()).isTrue();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user