From 55cee4ae822d8e55194c2ac78536b9a5946d8fc1 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sat, 08 Dec 2018 11:58:19 +0000
Subject: [PATCH] Repo cache save and read works now.

---
 borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java     |    9 +++++----
 borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java |    8 ++++++++
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java
index d1a1b5d..445d229 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java
@@ -5,6 +5,7 @@
 import de.micromata.borgbutler.json.JsonUtils;
 import de.micromata.borgbutler.json.borg.RepoInfo;
 import de.micromata.borgbutler.json.borg.Repository;
+import lombok.Getter;
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -21,6 +22,7 @@
 
     @JsonIgnore
     private File cacheReposFile;
+    @Getter
     @JsonProperty
     private List<RepoInfo> repositories = new ArrayList<>();
 
@@ -80,6 +82,12 @@
         }
     }
 
+    /**
+     * Needed by jackson for deserialization.
+     */
+    RepoInfoCache() {
+    }
+
     RepoInfoCache(File cacheDir) {
         cacheReposFile = new File(cacheDir, CACHE_REPOS_FILENAME);
     }
diff --git a/borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java b/borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java
index a5673f6..8cb9370 100644
--- a/borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java
+++ b/borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java
@@ -9,6 +9,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 
@@ -24,18 +25,18 @@
             log.info("No repos configured. Please configure repos first in: " + configHandler.getConfigFile().getAbsolutePath());
             return;
         }
+        RepoInfoCache cache = ButlerCache.getReposCache();
         for (BorgRepoConfig repo : config.getRepos()) {
             log.info("Processing repo '" + repo + "'");
             RepoInfo repoInfo = BorgCommands.info(repo);
-            log.info("Repo info: " + repoInfo);
-            RepoInfoCache cache = ButlerCache.getReposCache();
             cache.upsert(repoInfo);
             repoInfo = cache.getRepoInfo(repoInfo.getRepository().getId());
             assertNotNull(repoInfo);
-            cache.save();
-            log.info("Repo info: " + repoInfo);
             //RepoList repoList = BorgCommands.list(repo);
             //log.info("Repo list: " + repoList);
         }
+        cache.save();
+        cache.read();
+        assertEquals(config.getRepos().size(), cache.getRepositories().size());
     }
 }

--
Gitblit v1.10.0