Check stored values instead of resulting xml files

This commit is contained in:
René Pfeuffer
2019-06-19 10:38:22 +02:00
parent d43ad44da9
commit d3b65ac3bd
6 changed files with 76 additions and 52 deletions

View File

@@ -11,9 +11,11 @@ import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import sonia.scm.group.Group;
import sonia.scm.group.xml.XmlGroupDAO;
import sonia.scm.security.DefaultKeyGenerator;
import sonia.scm.store.JAXBConfigurationEntryStoreFactory;
import sonia.scm.store.ConfigurationEntryStore;
import sonia.scm.store.InMemoryConfigurationEntryStoreFactory;
import sonia.scm.update.UpdateStepTestUtil;
import sonia.scm.update.properties.V1Properties;
import sonia.scm.update.properties.V1Property;
import javax.xml.bind.JAXBException;
import java.io.IOException;
@@ -22,11 +24,11 @@ import java.util.Optional;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.linesOf;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static sonia.scm.store.InMemoryConfigurationEntryStoreFactory.create;
@ExtendWith(MockitoExtension.class)
@ExtendWith(TempDirectory.class)
@@ -38,6 +40,8 @@ class XmlGroupV1UpdateStepTest {
@Captor
ArgumentCaptor<Group> groupCaptor;
InMemoryConfigurationEntryStoreFactory storeFactory = create();
XmlGroupV1UpdateStep updateStep;
private UpdateStepTestUtil testUtil;
@@ -46,7 +50,6 @@ class XmlGroupV1UpdateStepTest {
@BeforeEach
void mockScmHome(@TempDirectory.TempDir Path tempDir) {
testUtil = new UpdateStepTestUtil(tempDir);
JAXBConfigurationEntryStoreFactory storeFactory = new JAXBConfigurationEntryStoreFactory(testUtil.getContextProvider(), null, new DefaultKeyGenerator());
updateStep = new XmlGroupV1UpdateStep(testUtil.getContextProvider(), groupDAO, storeFactory);
}
@@ -86,19 +89,13 @@ class XmlGroupV1UpdateStepTest {
@Test
void shouldExtractProperties() throws JAXBException {
updateStep.doUpdate();
Path propertiesFile = testUtil.getFile("group-properties-v1.xml");
assertThat(propertiesFile)
.exists();
assertThat(linesOf(propertiesFile.toFile()))
.extracting(String::trim)
.containsSequence(
"<key>normals</key>",
"<value>",
"<item>",
"<key>mostly</key>",
"<value>humans</value>",
"</item>",
"</value>");
ConfigurationEntryStore<V1Properties> propertiesStore = storeFactory.<V1Properties>get("group-properties-v1");
assertThat(propertiesStore.get("normals"))
.isNotNull()
.extracting(V1Properties::getProperties)
.first()
.asList()
.contains(new V1Property("mostly", "humans"));
}
}

View File

@@ -10,11 +10,11 @@ import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import sonia.scm.security.AssignedPermission;
import sonia.scm.security.DefaultKeyGenerator;
import sonia.scm.store.ConfigurationEntryStore;
import sonia.scm.store.ConfigurationEntryStoreFactory;
import sonia.scm.store.JAXBConfigurationEntryStoreFactory;
import sonia.scm.store.InMemoryConfigurationEntryStoreFactory;
import sonia.scm.update.UpdateStepTestUtil;
import sonia.scm.update.properties.V1Properties;
import sonia.scm.update.properties.V1Property;
import sonia.scm.user.User;
import sonia.scm.user.xml.XmlUserDAO;
@@ -24,11 +24,11 @@ import java.nio.file.Path;
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.linesOf;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static sonia.scm.store.InMemoryConfigurationEntryStoreFactory.create;
@ExtendWith(MockitoExtension.class)
@ExtendWith(TempDirectory.class)
@@ -40,6 +40,8 @@ class XmlUserV1UpdateStepTest {
@Captor
ArgumentCaptor<User> userCaptor;
InMemoryConfigurationEntryStoreFactory storeFactory = create();
XmlUserV1UpdateStep updateStep;
private UpdateStepTestUtil testUtil;
@@ -47,7 +49,6 @@ class XmlUserV1UpdateStepTest {
@BeforeEach
void mockScmHome(@TempDirectory.TempDir Path tempDir) {
testUtil = new UpdateStepTestUtil(tempDir);
ConfigurationEntryStoreFactory storeFactory = new JAXBConfigurationEntryStoreFactory(testUtil.getContextProvider(), null, new DefaultKeyGenerator());
updateStep = new XmlUserV1UpdateStep(testUtil.getContextProvider(), userDAO, storeFactory);
}
@@ -68,7 +69,7 @@ class XmlUserV1UpdateStepTest {
void shouldCreateNewPermissionsForV1AdminUser() throws JAXBException {
updateStep.doUpdate();
Optional<AssignedPermission> assignedPermission =
getStoreForConfigFile("security")
storeFactory.<AssignedPermission>get("security")
.getAll()
.values()
.stream()
@@ -103,30 +104,15 @@ class XmlUserV1UpdateStepTest {
@Test
void shouldExtractProperties() throws JAXBException {
updateStep.doUpdate();
Path propertiesFile = testUtil.getFile("user-properties-v1.xml");
assertThat(propertiesFile)
.exists();
assertThat(linesOf(propertiesFile.toFile()))
.extracting(String::trim)
.containsSequence(
"<key>dent</key>",
"<value>",
"<item>",
"<key>born.on</key>",
"<value>earth</value>",
"</item>",
"<item>",
"<key>last.seen</key>",
"<value>end of the universe</value>",
"</item>",
"</value>");
}
private ConfigurationEntryStore<AssignedPermission> getStoreForConfigFile(String name) {
return new JAXBConfigurationEntryStoreFactory(testUtil.getContextProvider(), null, new DefaultKeyGenerator())
.withType(AssignedPermission.class)
.withName(name)
.build();
ConfigurationEntryStore<V1Properties> propertiesStore = storeFactory.<V1Properties>get("user-properties-v1");
assertThat(propertiesStore.get("dent"))
.isNotNull()
.extracting(V1Properties::getProperties)
.first()
.asList()
.contains(
new V1Property("born.on", "earth"),
new V1Property("last.seen", "end of the universe"));
}
}