package org.peerbox.utils;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
import org.peerbox.app.DbContext;
public class UserDbUtilsTest {
@Test
public void testCreateDbContext() throws IOException, SQLException {
Path file = null;
try {
file = Paths.get(FileUtils.getTempDirectoryPath(), "testdb_file.db");
DbContext context = UserDbUtils.createDbContext(file);
assertEquals(file, context.getDatabaseFile());
assertNotNull(context.getDataSource());
// check connection string.
DatabaseMetaData dmd = context.getDataSource().getConnection().getMetaData();
String url = dmd.getURL();
assertTrue(url.contains(file.toString()));
} finally {
if (file != null) {
Files.deleteIfExists(file);
}
}
}
@Test
public void testCreateFileName() {
String sha256 = "96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a"; // John
String username = "John";
String filename = UserDbUtils.createFileName(username);
String expected = String.format("%s.db", sha256);
assertEquals(expected, filename);
// lowercase
filename = UserDbUtils.createFileName(username.toLowerCase());
assertEquals(expected, filename);
// uppercase
filename = UserDbUtils.createFileName(username.toUpperCase());
assertEquals(expected, filename);
}
}