mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-03-21 11:31:38 +01:00
re implement XmlRepositoryDAO
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package sonia.scm;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junitpioneer.jupiter.TempDirectory;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@ExtendWith(TempDirectory.class)
|
||||
class BasicContextProviderTest {
|
||||
|
||||
private Path baseDirectory;
|
||||
|
||||
private BasicContextProvider context;
|
||||
|
||||
@BeforeEach
|
||||
void setUpContext(@TempDirectory.TempDir Path baseDirectory) {
|
||||
this.baseDirectory = baseDirectory;
|
||||
context = new BasicContextProvider(baseDirectory.toFile(), "x.y.z", Stage.PRODUCTION);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnAbsolutePathAsIs(@TempDirectory.TempDir Path path) {
|
||||
Path absolutePath = path.toAbsolutePath();
|
||||
Path resolved = context.resolve(absolutePath);
|
||||
|
||||
assertThat(resolved).isSameAs(absolutePath);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldResolveRelatePath() {
|
||||
Path path = Paths.get("repos", "42");
|
||||
Path resolved = context.resolve(path);
|
||||
|
||||
assertThat(resolved).isAbsolute();
|
||||
assertThat(resolved).startsWithRaw(baseDirectory);
|
||||
assertThat(resolved).endsWithRaw(path);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,40 +1,23 @@
|
||||
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 org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
|
||||
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());
|
||||
}
|
||||
@ExtendWith({MockitoExtension.class})
|
||||
class InitialRepositoryLocationResolverTest {
|
||||
|
||||
@Test
|
||||
public void shouldComputeInitialDirectory() {
|
||||
InitialRepositoryLocationResolver resolver = new InitialRepositoryLocationResolver(context);
|
||||
InitialRepositoryLocationResolver.InitialRepositoryLocation directory = resolver.getRelativeRepositoryPath("ABC");
|
||||
void shouldComputeInitialPath() {
|
||||
InitialRepositoryLocationResolver resolver = new InitialRepositoryLocationResolver();
|
||||
Path path = resolver.getPath("42");
|
||||
|
||||
assertThat(directory.getAbsolutePath()).isEqualTo(new File(context.getBaseDirectory(), "repositories/ABC"));
|
||||
assertThat(directory.getRelativePath()).isEqualTo( "repositories/ABC");
|
||||
assertThat(path).isRelative();
|
||||
assertThat(path.toString()).isEqualTo("repositories" + File.separator + "42");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package sonia.scm.repository;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.mockito.stubbing.Answer;
|
||||
import sonia.scm.SCMContextProvider;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@ExtendWith({MockitoExtension.class})
|
||||
class RepositoryLocationResolverTest {
|
||||
|
||||
@Mock
|
||||
private SCMContextProvider contextProvider;
|
||||
|
||||
@Mock
|
||||
private PathBasedRepositoryDAO pathBasedRepositoryDAO;
|
||||
|
||||
@Mock
|
||||
private RepositoryDAO repositoryDAO;
|
||||
|
||||
@Mock
|
||||
private InitialRepositoryLocationResolver initialRepositoryLocationResolver;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
when(contextProvider.resolve(any(Path.class))).then((Answer<Path>) invocationOnMock -> invocationOnMock.getArgument(0));
|
||||
}
|
||||
|
||||
private RepositoryLocationResolver createResolver(RepositoryDAO pathBasedRepositoryDAO) {
|
||||
return new RepositoryLocationResolver(contextProvider, pathBasedRepositoryDAO, initialRepositoryLocationResolver);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnPathFromDao() {
|
||||
Path repositoryPath = Paths.get("repos", "42");
|
||||
when(pathBasedRepositoryDAO.getPath("42")).thenReturn(repositoryPath);
|
||||
|
||||
RepositoryLocationResolver resolver = createResolver(pathBasedRepositoryDAO);
|
||||
Path path = resolver.getPath("42");
|
||||
|
||||
assertThat(path).isSameAs(repositoryPath);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnInitialPathIfDaoIsNotPathBased() {
|
||||
Path repositoryPath = Paths.get("r", "42");
|
||||
when(initialRepositoryLocationResolver.getPath("42")).thenReturn(repositoryPath);
|
||||
|
||||
RepositoryLocationResolver resolver = createResolver(repositoryDAO);
|
||||
Path path = resolver.getPath("42");
|
||||
|
||||
assertThat(path).isSameAs(repositoryPath);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -89,7 +89,7 @@ public class IndentXMLStreamWriterTest
|
||||
StringBuilder buffer = new StringBuilder("<?xml version=\"1.0\" ?>");
|
||||
buffer.append(IndentXMLStreamWriter.LINE_SEPARATOR);
|
||||
buffer.append("<root>").append(IndentXMLStreamWriter.LINE_SEPARATOR);
|
||||
buffer.append(" <message>Hello</message>");
|
||||
buffer.append(" <message>Hello</message>");
|
||||
buffer.append(IndentXMLStreamWriter.LINE_SEPARATOR);
|
||||
buffer.append("</root>").append(IndentXMLStreamWriter.LINE_SEPARATOR);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user