Extract properties from v1 repositories

This commit is contained in:
René Pfeuffer
2019-05-24 13:55:37 +02:00
parent d88b300ac8
commit 76c59a6dee
3 changed files with 56 additions and 6 deletions

View File

@@ -16,6 +16,10 @@ import sonia.scm.SCMContextProvider;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryPermission;
import sonia.scm.repository.xml.XmlRepositoryDAO;
import sonia.scm.store.ConfigurationEntryStore;
import sonia.scm.store.ConfigurationEntryStoreFactory;
import sonia.scm.store.InMemoryConfigurationEntryStore;
import sonia.scm.store.InMemoryConfigurationEntryStoreFactory;
import javax.xml.bind.JAXBException;
import java.io.IOException;
@@ -29,7 +33,6 @@ import static java.util.Optional.of;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -48,15 +51,16 @@ class XmlRepositoryV1UpdateStepTest {
SCMContextProvider contextProvider;
@Mock
XmlRepositoryDAO repositoryDAO;
@Mock()
@Mock
MigrationStrategyDao migrationStrategyDao;
ConfigurationEntryStoreFactory configurationEntryStoreFactory = new InMemoryConfigurationEntryStoreFactory(new InMemoryConfigurationEntryStore());
@Captor
ArgumentCaptor<Repository> storeCaptor;
@Captor
ArgumentCaptor<Path> locationCaptor;
@InjectMocks
XmlRepositoryV1UpdateStep updateStep;
@BeforeEach
@@ -64,6 +68,17 @@ class XmlRepositoryV1UpdateStepTest {
when(contextProvider.getBaseDirectory()).thenReturn(tempDir.toFile());
}
@BeforeEach
void createUpdateStepFromMocks() {
updateStep = new XmlRepositoryV1UpdateStep(
contextProvider,
repositoryDAO,
migrationStrategyDao,
injectorMock,
configurationEntryStoreFactory
);
}
@Nested
class WithExistingDatabase {
@@ -154,6 +169,15 @@ class XmlRepositoryV1UpdateStepTest {
);
}
@Test
void shouldExtractPropertiesFromRepositories() throws JAXBException {
updateStep.doUpdate();
ConfigurationEntryStore<Object> store = configurationEntryStoreFactory.withType(null).withName("").build();
assertThat(store.getAll())
.hasSize(3);
}
@Test
void shouldUseDirectoryFromStrategy(@TempDirectory.TempDir Path tempDir) throws JAXBException {
Path targetDir = tempDir.resolve("someDir");