Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@ jobs:
wget https://repo1.maven.org/maven2/org/bytedeco/ffmpeg/7.1-1.5.11/ffmpeg-7.1-1.5.11.jar -P lib/
wget https://repo1.maven.org/maven2/org/bytedeco/ffmpeg/7.1-1.5.11/ffmpeg-7.1-1.5.11-linux-x86_64.jar -P lib/
wget https://repo1.maven.org/maven2/org/bytedeco/javacpp-platform/1.5.11/javacpp-platform-1.5.11.jar -P lib/


wget https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.15.0/jackson-databind-2.15.0.jar -P lib/
wget https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.15.0/jackson-annotations-2.15.0.jar -P lib/
wget https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.15.0/jackson-core-2.15.0.jar -P lib/

- name: Compile
run: |
mkdir -p out
Expand Down
9 changes: 0 additions & 9 deletions llucas.json

This file was deleted.

3 changes: 0 additions & 3 deletions pepper.json

This file was deleted.

147 changes: 147 additions & 0 deletions src/Tests/DatabasesManagerTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
package Tests;

import Classes.DatabasesManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import java.io.File;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Map;

import static org.junit.Assert.*;

public class DatabasesManagerTest {
@Rule
public TemporaryFolder tempFolder = new TemporaryFolder();

private DatabasesManager databasesManager;
private File databasesFile;
private File pepperFile;
private static final String TEST_PEPPER = "testPepper123";

@Before
public void setUp() throws Exception {
// Create temporary files for testing
databasesFile = tempFolder.newFile("databases_test.json");
pepperFile = new File("pepper.json"); // Create in current directory

// Create pepper file with test content
try (FileWriter writer = new FileWriter(pepperFile)) {
writer.write("{\"pepper\": \"" + TEST_PEPPER + "\"}");
}

databasesManager = new DatabasesManager(databasesFile);
}

@After
public void tearDown() {
databasesFile.delete();
pepperFile.delete();
}

@Test
public void testCreateDatabase() {
// Arrange
String dbName = "testDB";
String password = "testPassword";
Map<String, String> encryptionMap = new HashMap<>();
encryptionMap.put("test", "value");

// Act
databasesManager.createDatabase(dbName, password, encryptionMap);

// Assert
assertTrue(databasesManager.verifyDatabase(dbName, password));
}

@Test(expected = IllegalArgumentException.class)
public void testCreateDatabaseDuplicate() {
// Arrange
String dbName = "testDB";
String password = "testPassword";
Map<String, String> encryptionMap = new HashMap<>();

// Act
databasesManager.createDatabase(dbName, password, encryptionMap);
databasesManager.createDatabase(dbName, password, encryptionMap); // Should throw exception
}

@Test
public void testVerifyDatabaseWithInvalidName() {
// Arrange
String nonExistentDB = "nonExistentDB";
String password = "testPassword";

// Act & Assert
assertFalse(databasesManager.verifyDatabase(nonExistentDB, password));
}

@Test
public void testVerifyDatabaseWithInvalidPassword() {
// Arrange
String dbName = "testDB";
String correctPassword = "correctPassword";
String wrongPassword = "wrongPassword";
Map<String, String> encryptionMap = new HashMap<>();

// Act
databasesManager.createDatabase(dbName, correctPassword, encryptionMap);

// Assert
assertFalse(databasesManager.verifyDatabase(dbName, wrongPassword));
}

@Test
public void testGetEncryptionMap() {
// Arrange
String dbName = "testDB";
String password = "testPassword";
Map<String, String> encryptionMap = new HashMap<>();
encryptionMap.put("key1", "value1");
encryptionMap.put("key2", "value2");

// Act
databasesManager.createDatabase(dbName, password, encryptionMap);
Map<String, String> retrievedMap = databasesManager.getEncryptionMap(dbName);

// Assert
assertNotNull(retrievedMap);
assertEquals(encryptionMap.size(), retrievedMap.size());
assertEquals(encryptionMap.get("key1"), retrievedMap.get("key1"));
assertEquals(encryptionMap.get("key2"), retrievedMap.get("key2"));
}

@Test(expected = IllegalArgumentException.class)
public void testGetEncryptionMapNonExistentDB() {
// Act & Assert
databasesManager.getEncryptionMap("nonExistentDB"); // Should throw exception
}

@Test
public void testDatabasePersistence() throws Exception {
// Arrange
String dbName = "testDB";
String password = "testPassword";
Map<String, String> encryptionMap = new HashMap<>();
encryptionMap.put("test", "value");

// Act
databasesManager.createDatabase(dbName, password, encryptionMap);

// Create new instance to test persistence
DatabasesManager newManager = new DatabasesManager(databasesFile);

// Assert
assertTrue(newManager.verifyDatabase(dbName, password));
}

@Test
public void testReadPepperFromJson() {
// This test verifies that the pepper file is correctly created and read
assertTrue("Pepper file should exist", pepperFile.exists());
}
}
Empty file.
9 changes: 0 additions & 9 deletions test.json

This file was deleted.

Loading