summaryrefslogtreecommitdiff
path: root/src/test/java/com/keuin/kbackupfabric/backup
diff options
context:
space:
mode:
authorKeuin <[email protected]>2021-01-23 14:10:32 +0800
committerkeuin <[email protected]>2021-01-23 14:10:32 +0800
commit4a1d885afa7217b47d6183488c3dc6537cef05b6 (patch)
tree1b499db6b834cb0709029e30c0d52c0ddf200ffa /src/test/java/com/keuin/kbackupfabric/backup
parent4ac575330130ac4e1b4b35386ffc0aacd431a5a4 (diff)
Version 1.4.6 (preview): added metadata for incremental backup (need integrated test and display implementation)
Diffstat (limited to 'src/test/java/com/keuin/kbackupfabric/backup')
-rw-r--r--src/test/java/com/keuin/kbackupfabric/backup/incremental/ObjectCollectionFactoryTest.java6
-rw-r--r--src/test/java/com/keuin/kbackupfabric/backup/incremental/serializer/IncBackupInfoSerializerTest.java (renamed from src/test/java/com/keuin/kbackupfabric/backup/incremental/ObjectCollectionSerializerTest.java)16
-rw-r--r--src/test/java/com/keuin/kbackupfabric/backup/incremental/serializer/IncBakupBackwardCompatibilityTest.java45
3 files changed, 58 insertions, 9 deletions
diff --git a/src/test/java/com/keuin/kbackupfabric/backup/incremental/ObjectCollectionFactoryTest.java b/src/test/java/com/keuin/kbackupfabric/backup/incremental/ObjectCollectionFactoryTest.java
index 5052a82..e686e30 100644
--- a/src/test/java/com/keuin/kbackupfabric/backup/incremental/ObjectCollectionFactoryTest.java
+++ b/src/test/java/com/keuin/kbackupfabric/backup/incremental/ObjectCollectionFactoryTest.java
@@ -11,10 +11,10 @@ import static org.junit.Assert.*;
public class ObjectCollectionFactoryTest {
- private void validate(ObjectCollection collection, List<String> subCollections, Map<String, String> subElements) {
+ private void validate(ObjectCollection2 collection, List<String> subCollections, Map<String, String> subElements) {
assertEquals(subCollections.size(), collection.getSubCollectionMap().size());
assertEquals(subElements.size(), collection.getElementSet().size());
- for (Map.Entry<String, ObjectCollection> c : collection.getSubCollectionMap().entrySet()) {
+ for (Map.Entry<String, ObjectCollection2> c : collection.getSubCollectionMap().entrySet()) {
assertEquals(c.getKey(), c.getValue().getName());
assertTrue(subCollections.contains(c.getKey()));
}
@@ -68,7 +68,7 @@ public class ObjectCollectionFactoryTest {
try {
ObjectCollectionFactory<Sha256Identifier> factory =
new ObjectCollectionFactory<>(Sha256Identifier.getFactory(), threads, multiThreadThreshold);
- ObjectCollection collection =
+ ObjectCollection2 collection =
factory.fromDirectory(new File("./testfile/ObjectCollectionFactoryTest"));
assertEquals("ObjectCollectionFactoryTest", collection.getName());
diff --git a/src/test/java/com/keuin/kbackupfabric/backup/incremental/ObjectCollectionSerializerTest.java b/src/test/java/com/keuin/kbackupfabric/backup/incremental/serializer/IncBackupInfoSerializerTest.java
index d21e5b3..e7f56b0 100644
--- a/src/test/java/com/keuin/kbackupfabric/backup/incremental/ObjectCollectionSerializerTest.java
+++ b/src/test/java/com/keuin/kbackupfabric/backup/incremental/serializer/IncBackupInfoSerializerTest.java
@@ -1,15 +1,18 @@
-package com.keuin.kbackupfabric.backup.incremental;
+package com.keuin.kbackupfabric.backup.incremental.serializer;
+import com.keuin.kbackupfabric.backup.incremental.ObjectCollection2;
+import com.keuin.kbackupfabric.backup.incremental.ObjectCollectionFactory;
import com.keuin.kbackupfabric.backup.incremental.identifier.Sha256Identifier;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
+import java.time.ZonedDateTime;
import static org.junit.Assert.assertEquals;
-public class ObjectCollectionSerializerTest {
+public class IncBackupInfoSerializerTest {
@Test
public void testSerializationConsistency1() throws IOException {
@@ -54,16 +57,17 @@ public class ObjectCollectionSerializerTest {
public void testSerializationConsistency(int threads, int multiThreadThreshold) throws IOException {
ObjectCollectionFactory<Sha256Identifier> factory =
new ObjectCollectionFactory<>(Sha256Identifier.getFactory(), threads, multiThreadThreshold);
- ObjectCollection collection =
+ ObjectCollection2 collection =
factory.fromDirectory(new File("./testfile/ObjectCollectionFactoryTest"));
File file = new File("./testfile/serialized");
if (file.exists()) {
Files.delete(file.toPath());
}
- ObjectCollectionSerializer.toFile(collection, file);
- ObjectCollection collection2 = ObjectCollectionSerializer.fromFile(file);
+ SavedIncrementalBackup backup = SavedIncrementalBackup.newLatest(collection, ":name:", ZonedDateTime.now(), 10000, 2000, 10, 20);
+ IncBackupInfoSerializer.toFile(file, backup);
+ SavedIncrementalBackup info = IncBackupInfoSerializer.fromFile(file);
Files.delete(file.toPath());
- assertEquals(collection, collection2);
+ assertEquals(backup, info);
}
} \ No newline at end of file
diff --git a/src/test/java/com/keuin/kbackupfabric/backup/incremental/serializer/IncBakupBackwardCompatibilityTest.java b/src/test/java/com/keuin/kbackupfabric/backup/incremental/serializer/IncBakupBackwardCompatibilityTest.java
new file mode 100644
index 0000000..d50b264
--- /dev/null
+++ b/src/test/java/com/keuin/kbackupfabric/backup/incremental/serializer/IncBakupBackwardCompatibilityTest.java
@@ -0,0 +1,45 @@
+package com.keuin.kbackupfabric.backup.incremental.serializer;
+
+import com.keuin.kbackupfabric.backup.incremental.ObjectCollection2;
+import com.keuin.kbackupfabric.backup.incremental.ObjectCollectionFactory;
+import com.keuin.kbackupfabric.backup.incremental.ObjectCollectionSerializer;
+import com.keuin.kbackupfabric.backup.incremental.identifier.Sha256Identifier;
+import com.keuin.kbackupfabric.backup.name.IncrementalBackupFileNameEncoder;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+
+import static org.junit.Assert.*;
+
+public class IncBakupBackwardCompatibilityTest {
+
+ private final String customName = "test_backup";
+ private final LocalDateTime backupTime = LocalDateTime.of(2000, 1, 1, 1, 1, 1, 1);
+
+ private final Path testRoot = Paths.get(".\\testfile\\IncBackupBackwardCompatibilityTest");
+ private final File indexFile = new File(testRoot.toString(), new IncrementalBackupFileNameEncoder().encode(customName, backupTime));
+
+ @Test
+ public void testBackwardCompatibility() throws IOException {
+
+ if (!testRoot.toFile().isDirectory()) {
+ if (!testRoot.toFile().mkdirs())
+ fail("Cannot initialize test environment: cannot create path.");
+ }
+
+ // now we make an old-style backup index file
+ ObjectCollectionFactory<Sha256Identifier> factory =
+ new ObjectCollectionFactory<>(Sha256Identifier.getFactory(), 1, 0);
+ ObjectCollection2 collection = factory.fromDirectory(testRoot.toFile());
+ ObjectCollectionSerializer.toFile(collection, indexFile);
+ SavedIncrementalBackup info = IncBackupInfoSerializer.fromFile(indexFile);
+ assertEquals(collection, info.getObjectCollection());
+ assertEquals(customName, info.getBackupName());
+ assertTrue(backupTime.toEpochSecond(ZoneOffset.UTC) - info.getBackupTime().toLocalDateTime().toEpochSecond(ZoneOffset.UTC) <= 2);
+ }
+}