package de.micromata.borgbutler.cache;
|
|
import de.micromata.borgbutler.BorgCommands;
|
import de.micromata.borgbutler.config.BorgRepoConfig;
|
import de.micromata.borgbutler.config.Configuration;
|
import de.micromata.borgbutler.config.ConfigurationHandler;
|
import de.micromata.borgbutler.json.borg.RepoInfo;
|
import de.micromata.borgbutler.json.borg.RepoList;
|
import org.junit.jupiter.api.Test;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
|
public class CacheTest {
|
private static Logger log = LoggerFactory.getLogger(CacheTest.class);
|
|
@Test
|
void repoCacheTest() {
|
ConfigurationHandler configHandler = ConfigurationHandler.getInstance();
|
configHandler.read();
|
Configuration config = ConfigurationHandler.getConfiguration();
|
if (config.getRepos().size() == 0) {
|
log.info("No repos configured. Please configure repos first in: " + configHandler.getConfigFile().getAbsolutePath());
|
return;
|
}
|
ButlerCache butlerCache = ButlerCache.getInstance();
|
//butlerCache.removeAllCacheFiles();
|
butlerCache.read();
|
{
|
RepoInfoCache repoInfoCache = ButlerCache.getRepoInfoCache();
|
if (repoInfoCache.getElements().size() != config.getRepos().size()) {
|
refreshRepoInfoCache(config, repoInfoCache);
|
}
|
assertEquals(config.getRepos().size(), repoInfoCache.getElements().size());
|
}
|
{
|
RepoListCache repoListCache = ButlerCache.getRepoListCache();
|
if (repoListCache.getElements().size() != config.getRepos().size()) {
|
refreshRepoListCache(config, repoListCache);
|
}
|
assertEquals(config.getRepos().size(), repoListCache.getElements().size());
|
}
|
butlerCache.save();
|
}
|
|
private void refreshRepoInfoCache(Configuration config, RepoInfoCache repoInfoCache) {
|
for (BorgRepoConfig repo : config.getRepos()) {
|
log.info("Processing repo info '" + repo + "'");
|
RepoInfo repoInfo = BorgCommands.info(repo);
|
repoInfoCache.upsert(repoInfo);
|
repoInfo = repoInfoCache.get(repoInfo.getRepository().getId());
|
assertNotNull(repoInfo);
|
}
|
}
|
|
private void refreshRepoListCache(Configuration config, RepoListCache repoListCache) {
|
for (BorgRepoConfig repo : config.getRepos()) {
|
log.info("Processing repo list '" + repo + "'");
|
RepoList repoList = BorgCommands.list(repo);
|
repoListCache.upsert(repoList);
|
repoList = repoListCache.get(repoList.getRepository().getId());
|
assertNotNull(repoList);
|
}
|
}
|
}
|