From 6e54d0a58a4373fbf08b0e50aaac6763d4df8342 Mon Sep 17 00:00:00 2001 From: AdrianBalunan Date: Tue, 14 Apr 2026 17:24:29 +0200 Subject: [PATCH] Fix: Added misising fields and User enum --- .../team6/database/Readers/UserSelect.java | 6 ++-- .../database/Readers/UserSelectTest.java | 28 +++++++++++-------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/Readers/UserSelect.java b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/Readers/UserSelect.java index 5f302f0..8a4d020 100644 --- a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/Readers/UserSelect.java +++ b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/Readers/UserSelect.java @@ -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); @@ -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); @@ -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); } diff --git a/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/Readers/UserSelectTest.java b/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/Readers/UserSelectTest.java index 08b5004..ad99e9e 100644 --- a/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/Readers/UserSelectTest.java +++ b/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/Readers/UserSelectTest.java @@ -32,7 +32,7 @@ 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"; @@ -40,6 +40,7 @@ class UserSelectTest { @BeforeEach void setUp() { + reset(mockResultSet); userSelect = new UserSelect(mockDatabaseConnection); } @@ -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); @@ -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"); @@ -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); @@ -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"); @@ -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()); } @@ -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); @@ -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); @@ -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);