Skip to content

Commit e39a4b2

Browse files
committed
Add unit test classes
1 parent 0264c36 commit e39a4b2

File tree

6 files changed

+109
-54
lines changed

6 files changed

+109
-54
lines changed

src/main/java/org/purejava/App.java

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.purejava;
2+
3+
import org.junit.jupiter.api.DisplayName;
4+
import org.junit.jupiter.api.Order;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.net.SocketException;
8+
9+
import static org.junit.jupiter.api.Assertions.assertThrows;
10+
import static org.junit.jupiter.api.Assertions.assertTrue;
11+
12+
/**
13+
* This test is designed to run within CI, where a KeePassXC database is not available.
14+
*/
15+
public class KeepassProxyAccessTest {
16+
KeepassProxyAccess kpa = new KeepassProxyAccess();
17+
18+
@Test
19+
@Order(1)
20+
@DisplayName("Testing availability of a socket to KeePassXC")
21+
public void shouldThrowException() {
22+
Exception exception = assertThrows(SocketException.class, () -> {
23+
kpa.connect();
24+
kpa.associate();
25+
});
26+
27+
String expectedMessage = "Connection refused";
28+
String actualMessage = exception.getMessage();
29+
30+
assertTrue(actualMessage.contains(expectedMessage));
31+
}
32+
}

src/test/java/org/purejava/LinuxMacConnectionTest.java

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.purejava;
2+
3+
import org.junit.jupiter.api.DisplayName;
4+
import org.junit.jupiter.api.Order;
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.junit.jupiter.api.Assertions.assertThrows;
8+
import static org.junit.jupiter.api.Assertions.assertTrue;
9+
10+
/**
11+
* For this test, KeePassXC should be started, but locked.
12+
*/
13+
public class LockedDatabaseTest {
14+
KeepassProxyAccess kpa = new KeepassProxyAccess();
15+
16+
@Test
17+
@Order(2)
18+
@DisplayName("Testing connection over socket to KeePassXC")
19+
public void shouldThrowException() {
20+
Exception exception = assertThrows(KeepassProxyAccessException.class, () -> {
21+
kpa.connect();
22+
kpa.associate();
23+
});
24+
25+
String expectedMessage = "ErrorCode: 1";
26+
String actualMessage = exception.getMessage();
27+
28+
assertTrue(actualMessage.contains(expectedMessage));
29+
}
30+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.purejava;
2+
3+
import org.junit.jupiter.api.DisplayName;
4+
import org.junit.jupiter.api.Order;
5+
import org.junit.jupiter.api.Test;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
9+
import java.io.IOException;
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
import java.util.Map;
13+
14+
import static org.junit.jupiter.api.Assertions.assertEquals;
15+
import static org.junit.jupiter.api.Assertions.assertTrue;
16+
17+
/**
18+
* For this test, KeePassXC should be started and unlocked.
19+
*/
20+
public class UnlockedDatabaseTest {
21+
static final Logger log = LoggerFactory.getLogger(UnlockedDatabaseTest.class);
22+
23+
KeepassProxyAccess kpa = new KeepassProxyAccess();
24+
25+
@Test
26+
@Order(3)
27+
@DisplayName("Testing KeePassXC proxy functionality")
28+
public void shouldHaveNoErrors() throws IOException, KeepassProxyAccessException {
29+
log.info("Please enter a name for the connection in the pop-up");
30+
kpa.connect();
31+
kpa.associate();
32+
assertTrue(null != kpa.getDatabasehash() && !kpa.getDatabasehash().isEmpty());
33+
kpa.testAssociate(kpa.getAssociate_id(), kpa.getIdKeyPairPublicKey());
34+
log.info("Please allow access to credentials");
35+
List<Map<String, String>> l = new ArrayList<>();
36+
l.add(kpa.exportConnection());
37+
assertTrue(kpa.getLogins("https://github.com", null, false, l).toString().contains("uuid=2aafee1a89fd435c8bad7df12bbaaa3e"));
38+
assertEquals(kpa.setLogin("https://github.com", "https://github.com", null, "User", "Passsword", "Group", null, null).get("success").toString(), "true");
39+
assertTrue(kpa.databaseGroupsToMap(kpa.getDatabaseGroups()).toString().contains("KeePassXC-Browser Passwords"));
40+
assertTrue(null != kpa.generatePassword() && !kpa.generatePassword().isEmpty());
41+
log.info("Please allow to create new group");
42+
assertTrue(kpa.createNewGroup("Testgroup").toString().contains("name\":\"Testgroup"));
43+
assertTrue(null != kpa.getTotp("2aafee1a89fd435c8bad7df12bbaaa3e") && !kpa.getTotp("2aafee1a89fd435c8bad7df12bbaaa3e").isEmpty());
44+
log.info("Please deny to save changes");
45+
assertTrue(kpa.lockDatabase());
46+
}
47+
}

src/test/resources/Test.kdbx

2.15 KB
Binary file not shown.

0 commit comments

Comments
 (0)