From 30ab8f308dcd5be08f42ed9c70a42a74cd8f8021 Mon Sep 17 00:00:00 2001 From: Nabil Date: Sat, 21 Dec 2024 23:31:44 +0100 Subject: [PATCH 1/3] broken test --- .../{DatabasesManagerTest.java => DatabasesManagerTest.java.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Tests/{DatabasesManagerTest.java => DatabasesManagerTest.java.txt} (100%) diff --git a/src/Tests/DatabasesManagerTest.java b/src/Tests/DatabasesManagerTest.java.txt similarity index 100% rename from src/Tests/DatabasesManagerTest.java rename to src/Tests/DatabasesManagerTest.java.txt From 3e1421686453bf73c3eed77c0168ce0d5467c4e6 Mon Sep 17 00:00:00 2001 From: Nabil Date: Sat, 21 Dec 2024 23:44:05 +0100 Subject: [PATCH 2/3] =?UTF-8?q?Ajout=20de=20d=C3=A9pendances=20Jackson=20d?= =?UTF-8?q?ans=20le=20workflow=20de=20tests=20et=20suppression=20de=20fich?= =?UTF-8?q?iers=20JSON=20obsol=C3=A8tes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tests.yml | 6 ++++-- llucas.json | 9 --------- pepper.json | 3 --- test.json | 9 --------- 4 files changed, 4 insertions(+), 23 deletions(-) delete mode 100644 llucas.json delete mode 100644 pepper.json delete mode 100644 test.json diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 692d80e..1b311c4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -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 diff --git a/llucas.json b/llucas.json deleted file mode 100644 index e104e2e..0000000 --- a/llucas.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "eufqe": [ - { - "bmeeiadp": "rlrqlr", - "eufqZmyq": "kagfgnq", - "geqdzmyq": "lplp" - } - ] -} \ No newline at end of file diff --git a/pepper.json b/pepper.json deleted file mode 100644 index 51db507..0000000 --- a/pepper.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "pepper": "jesuisunpoivre" -} \ No newline at end of file diff --git a/test.json b/test.json deleted file mode 100644 index 48f52d0..0000000 --- a/test.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "eufqe": [ - { - "bmeeiadp": "xutosh", - "eufqZmyq": "uzefm", - "geqdzmyq": "xgome" - } - ] -} \ No newline at end of file From 9801cf1ea5641500a5d54b526250f5f571e89176 Mon Sep 17 00:00:00 2001 From: Nabil Date: Sun, 22 Dec 2024 01:37:56 +0100 Subject: [PATCH 3/3] test now works --- src/Tests/DatabasesManagerTest.java | 147 ++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 src/Tests/DatabasesManagerTest.java diff --git a/src/Tests/DatabasesManagerTest.java b/src/Tests/DatabasesManagerTest.java new file mode 100644 index 0000000..d378d0c --- /dev/null +++ b/src/Tests/DatabasesManagerTest.java @@ -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 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 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 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 encryptionMap = new HashMap<>(); + encryptionMap.put("key1", "value1"); + encryptionMap.put("key2", "value2"); + + // Act + databasesManager.createDatabase(dbName, password, encryptionMap); + Map 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 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()); + } +} \ No newline at end of file