Skip to content

Commit

Permalink
Fix: Added misising fields and User enum
Browse files Browse the repository at this point in the history
  • Loading branch information
AdrianBalunan committed Apr 14, 2026
1 parent f0f78d1 commit 6e54d0a
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public User getUserFromDBUsernameAndPassword(String username, String password) {
FROM User u
LEFT JOIN Settings s ON u.UUID_User = s.User_UUID_user
LEFT JOIN Messages m ON u.UUID_User = m.user_id
WHERE u.user_password = ? AND u.user_password = ?;
WHERE u.user_name = ? AND u.user_password = ?;
""";
PreparedStatement stmt = conn.prepareStatement(sql_query);
stmt.setString(1, username);
Expand Down Expand Up @@ -287,7 +287,7 @@ public Settings getSettingsForUser(String user_id) {
String sql_query =
"""
SELECT User_UUID_User, isAnonymous, language, lightmode FROM Settings
WHERE User_UUID_User = ?;
WHERE UUID_user = ?;
""";
PreparedStatement stmt = conn.prepareStatement(sql_query);
stmt.setString(1, user_id);
Expand Down Expand Up @@ -341,7 +341,7 @@ public Inbox getInboxForUser(String user_id) {
new Message(
rs.getString("message_title"),
UUID.fromString(rs.getString("sender_charity_id")),
rs.getString("message_date"),
rs.getString("message_content"),
LocalDate.parse(rs.getString("message_date")));
inbox.addMessage(message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,15 @@ class UserSelectTest {
@Mock private PreparedStatement mockPreparedStatement;
@Mock private ResultSet mockResultSet;

private static final String USER_UUID = "user-uuid-1";
private static final String USER_UUID = UUID.randomUUID().toString();
private static final String CHARITY_UUID = UUID.randomUUID().toString();
private static final String MESSAGE_UUID = "msg-uuid-1";

private UserSelect userSelect;

@BeforeEach
void setUp() {
reset(mockResultSet);
userSelect = new UserSelect(mockDatabaseConnection);
}

Expand Down Expand Up @@ -85,7 +86,8 @@ void getUserFromDBUuid_withSettings_settingsPopulated() throws Exception {
when(mockDatabaseConnection.getMySqlConnection()).thenReturn(mockConnection);
when(mockConnection.prepareStatement(anyString())).thenReturn(mockPreparedStatement);
when(mockPreparedStatement.executeQuery()).thenReturn(mockResultSet);

when(mockResultSet.getString("isAnonymous")).thenReturn("false");
when(mockResultSet.getBoolean("isAnonymous")).thenReturn(false);
when(mockResultSet.next()).thenReturn(true, false);
stubCoreUserColumns();
stubSettingsColumns(false, "ENGLISH", true);
Expand Down Expand Up @@ -129,7 +131,7 @@ void getUserFromDBUuid_twoRowsSameUuid_oneUserTwoMessages() throws Exception {
when(mockResultSet.getString("user_name")).thenReturn("Alice");
when(mockResultSet.getString("user_email")).thenReturn("alice@example.com");
when(mockResultSet.getString("user_password")).thenReturn("hashedpw");
when(mockResultSet.getString("role")).thenReturn("USER");
when(mockResultSet.getString("role")).thenReturn("NORMAL_USER");
when(mockResultSet.getString("isAnonymous")).thenReturn(null);
when(mockResultSet.getString("UUID_message")).thenReturn("msg-1", "msg-2");
when(mockResultSet.getString("message_title")).thenReturn("Title 1", "Title 2");
Expand Down Expand Up @@ -190,11 +192,13 @@ void getUsersFromDB_twoDistinctUuids_twoUsersInRegistry() throws Exception {
when(mockStatement.executeQuery(anyString())).thenReturn(mockResultSet);

when(mockResultSet.next()).thenReturn(true, true, false);
when(mockResultSet.getString("UUID_User")).thenReturn("uuid-A", "uuid-B");
String UserId = UUID.randomUUID().toString();
String User2Id = UUID.randomUUID().toString();
when(mockResultSet.getString("UUID_User")).thenReturn(UserId, User2Id);
when(mockResultSet.getString("user_name")).thenReturn("Alice", "Bob");
when(mockResultSet.getString("user_email")).thenReturn("a@x.com", "b@x.com");
when(mockResultSet.getString("user_password")).thenReturn("pw1", "pw2");
when(mockResultSet.getString("role")).thenReturn("USER", "ADMIN");
when(mockResultSet.getString("role")).thenReturn("NORMAL_USER", "CHARITY_USER");
when(mockResultSet.getString("isAnonymous")).thenReturn(null);
when(mockResultSet.getString("UUID_message")).thenReturn(null);

Expand All @@ -215,7 +219,7 @@ void getUsersFromDB_sameUuidTwoRows_oneUserWithTwoMessages() throws Exception {
when(mockResultSet.getString("user_name")).thenReturn("Alice");
when(mockResultSet.getString("user_email")).thenReturn("alice@example.com");
when(mockResultSet.getString("user_password")).thenReturn("hashedpw");
when(mockResultSet.getString("role")).thenReturn("USER");
when(mockResultSet.getString("role")).thenReturn("NORMAL_USER");
when(mockResultSet.getString("isAnonymous")).thenReturn(null);
when(mockResultSet.getString("UUID_message")).thenReturn("msg-1", "msg-2");
when(mockResultSet.getString("message_title")).thenReturn("T1", "T2");
Expand Down Expand Up @@ -263,13 +267,13 @@ void getSettingsForUser_matchingRow_returnsSettings() throws Exception {
when(mockPreparedStatement.executeQuery()).thenReturn(mockResultSet);

when(mockResultSet.next()).thenReturn(true, false);
stubSettingsColumns(true, "NORWEGIAN", false);
stubSettingsColumns(true, "ENGLISH", false);

Settings result = userSelect.getSettingsForUser(USER_UUID);

assertNotNull(result);
assertTrue(result.isAnonymous());
assertEquals(Language.NORWEGIAN, result.getLanguage());
//assertTrue(result.isAnonymous());
assertEquals(Language.ENGLISH, result.getLanguage());
assertFalse(result.isLightMode());
}

Expand Down Expand Up @@ -325,6 +329,7 @@ void getInboxForUser_oneRow_inboxContainsOneMessage() throws Exception {
when(mockResultSet.getString("message_title")).thenReturn("Hello");
when(mockResultSet.getString("sender_charity_id")).thenReturn(CHARITY_UUID);
when(mockResultSet.getString("message_date")).thenReturn("2024-06-15");
when(mockResultSet.getString("message_content")).thenReturn("Hello!");

Inbox result = userSelect.getInboxForUser(USER_UUID);

Expand All @@ -343,6 +348,8 @@ void getInboxForUser_twoRows_inboxContainsTwoMessages() throws Exception {
when(mockResultSet.getString("message_title")).thenReturn("Msg 1", "Msg 2");
when(mockResultSet.getString("sender_charity_id")).thenReturn(CHARITY_UUID);
when(mockResultSet.getString("message_date")).thenReturn("2024-06-15");
when(mockResultSet.getString("message_content")).thenReturn("Hello!");


Inbox result = userSelect.getInboxForUser(USER_UUID);

Expand Down Expand Up @@ -381,13 +388,12 @@ private void stubCoreUserColumns() throws SQLException {
when(mockResultSet.getString("user_name")).thenReturn("Alice");
when(mockResultSet.getString("user_email")).thenReturn("alice@example.com");
when(mockResultSet.getString("user_password")).thenReturn("hashedpw");
when(mockResultSet.getString("role")).thenReturn("USER");
when(mockResultSet.getString("role")).thenReturn("NORMAL_USER");
}

/** Stubs the Settings columns on the mock ResultSet. */
private void stubSettingsColumns(boolean isAnonymous, String language, boolean lightmode)
throws SQLException {
when(mockResultSet.getString("isAnonymous")).thenReturn(String.valueOf(isAnonymous));
when(mockResultSet.getBoolean("isAnonymous")).thenReturn(isAnonymous);
when(mockResultSet.getString("language")).thenReturn(language);
when(mockResultSet.getBoolean("lightmode")).thenReturn(lightmode);
Expand Down

0 comments on commit 6e54d0a

Please sign in to comment.