From e2c823e2c4dc24ce56200a07d5da23f9be122ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Thu, 29 Jun 2023 09:13:00 +0200 Subject: [PATCH] Add methods to mock stores with raw xml data --- .../scm/store/InMemoryByteConfigurationEntryStore.java | 9 +++++++++ .../sonia/scm/store/InMemoryByteConfigurationStore.java | 9 +++++++++ .../main/java/sonia/scm/store/InMemoryByteDataStore.java | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/scm-test/src/main/java/sonia/scm/store/InMemoryByteConfigurationEntryStore.java b/scm-test/src/main/java/sonia/scm/store/InMemoryByteConfigurationEntryStore.java index d5934fb19f..20fa3d664f 100644 --- a/scm-test/src/main/java/sonia/scm/store/InMemoryByteConfigurationEntryStore.java +++ b/scm-test/src/main/java/sonia/scm/store/InMemoryByteConfigurationEntryStore.java @@ -30,6 +30,7 @@ import sonia.scm.security.UUIDKeyGenerator; import javax.xml.bind.JAXB; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -68,6 +69,14 @@ public class InMemoryByteConfigurationEntryStore implements ConfigurationEntr store.put(id, baos.toByteArray()); } + /** + * This method can be used to mock stores with raw xml data to test update steps or otherwise the compatability of + * objects with old versions. + */ + public void putRawXml(String id, String xml) { + store.put(id, xml.getBytes(StandardCharsets.UTF_8)); + } + @Override public Map getAll() { Map all = new HashMap<>(); diff --git a/scm-test/src/main/java/sonia/scm/store/InMemoryByteConfigurationStore.java b/scm-test/src/main/java/sonia/scm/store/InMemoryByteConfigurationStore.java index 3025a3e810..c7c75ace57 100644 --- a/scm-test/src/main/java/sonia/scm/store/InMemoryByteConfigurationStore.java +++ b/scm-test/src/main/java/sonia/scm/store/InMemoryByteConfigurationStore.java @@ -27,6 +27,7 @@ package sonia.scm.store; import javax.xml.bind.JAXB; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.nio.charset.StandardCharsets; /** * In memory store implementation of {@link ConfigurationStore} using a byte array to store the serialized object. @@ -64,4 +65,12 @@ public class InMemoryByteConfigurationStore implements ConfigurationStore JAXB.marshal(object, baos); store = baos.toByteArray(); } + + /** + * This method can be used to mock stores with raw xml data to test update steps or otherwise the compatability of + * objects with old versions. + */ + public void setRawXml(String xml) { + store = xml.getBytes(StandardCharsets.UTF_8); + } } diff --git a/scm-test/src/main/java/sonia/scm/store/InMemoryByteDataStore.java b/scm-test/src/main/java/sonia/scm/store/InMemoryByteDataStore.java index 9e902054e5..46b1a1623a 100644 --- a/scm-test/src/main/java/sonia/scm/store/InMemoryByteDataStore.java +++ b/scm-test/src/main/java/sonia/scm/store/InMemoryByteDataStore.java @@ -30,6 +30,7 @@ import sonia.scm.security.UUIDKeyGenerator; import javax.xml.bind.JAXB; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -68,6 +69,14 @@ public class InMemoryByteDataStore implements DataStore { store.put(id, baos.toByteArray()); } + /** + * This method can be used to mock stores with raw xml data to test update steps or otherwise the compatability of + * objects with old versions. + */ + public void putRawXml(String id, String xml) { + store.put(id, xml.getBytes(StandardCharsets.UTF_8)); + } + @Override public Map getAll() { Map all = new HashMap<>();