Skip to content
Snippets Groups Projects
Commit 4cd88e39 authored by Karin Pettersen's avatar Karin Pettersen
Browse files

Added test class for accountHandler

parent ed7e121b
No related branches found
No related tags found
No related merge requests found
Showing
with 151 additions and 17 deletions
......@@ -6,6 +6,7 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
......@@ -55,5 +56,15 @@
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.14" level="project" />
<orderEntry type="library" name="Maven: org.jblas:jblas:1.2.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.8.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.8.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.8.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.8.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.8.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.8.2" level="project" />
</component>
</module>
\ No newline at end of file
......@@ -46,6 +46,34 @@
<version>1.2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx</artifactId>
<version>11</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
......
......@@ -9,7 +9,7 @@ import static com.application.DB.Constants.*;
import static com.application.DB.Settings.*;
import static com.application.GUI.PopUpWindows.LoginPopup.getPasswordTextField;
public class Account_handler {
public class AccountHandler {
public static void getAccountInformation(String username, String password) throws Exception {
......@@ -63,21 +63,28 @@ public class Account_handler {
"FROM " + PROJECT_ID + "." + LOCATION_ID + "." + USERS_TABLE_NAME + " " +
"WHERE Username = " + '"' + username + '"';
System.out.println(sqlStatement);
// Retrieves the results from the queryjob
return HelpingFunctions.createQueryJob(sqlStatement);
}
public static void addUser(String firstName, String lastName, String phoneNo, String username, String password, boolean isAdmin) throws Exception {
public static boolean addUser(String firstName, String lastName, String phoneNo, String username, String password, boolean isAdmin) throws Exception {
if(getAccount(username).getTotalRows() == 0) {
// Sqlstatement
final String sqlStatement =
"INSERT INTO " + PROJECT_ID + "." + LOCATION_ID + "." + USERS_TABLE_NAME + "(First_name, Last_name, Phone_no, Username, Password, Admin) " +
"VALUES("+'"'+firstName+'"'+","+'"'+lastName+'"'+","+'"'+phoneNo+'"'+","+'"'+username+'"'+","+'"'+password+'"'+","+ isAdmin+") ";
"INSERT INTO " + PROJECT_ID + "." + LOCATION_ID + "." + USERS_TABLE_NAME + "(First_name, Last_name, Phone_no, Username, Password, Admin) " +
"VALUES(" + '"' + firstName + '"' + "," + '"' + lastName + '"' + "," + '"' + phoneNo + '"' + "," + '"' + username + '"' + "," + '"' + password + '"' + "," + isAdmin + ") ";
System.out.println(sqlStatement);
System.out.println(sqlStatement);
HelpingFunctions.createQueryJob(sqlStatement);
HelpingFunctions.createQueryJob(sqlStatement);
return true;
} else {
return false;
}
}
public static boolean deleteUser(String username) throws Exception {
......
......@@ -41,9 +41,7 @@ public class Constants {
private static String userName;
private static String phoneNo;
public static String getUserName() {
return userName;
}
public static String getUserName() { return userName;}
public static void setUserName(String userName) {
Constants.userName = userName;
......
package com.application.DB;
import com.application.GUI.PopUpWindows.NotificationPopUp;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.auth.oauth2.ServiceAccountCredentials;
import com.google.cloud.bigquery.*;
import io.opencensus.internal.StringUtils;
import java.io.File;
import java.io.FileInputStream;
......@@ -12,8 +14,10 @@ import java.util.Map;
import java.util.TimeZone;
import static com.application.DB.Constants.KEY_FILE_NAME;
import static com.application.DB.Constants.MAX_USER_INPUT_CHARACTERS;
import static com.application.DB.Settings.*;
public class HelpingFunctions {
......@@ -173,4 +177,22 @@ public class HelpingFunctions {
public static void setLoadedData(boolean loadedData) {
Constants.LOADED_DATA = loadedData;
}
public static boolean isValidInput (String input){
if(input.length() > Constants.MAX_USER_INPUT_CHARACTERS) {
NotificationPopUp.displayNotificationWindow("A maximum of "+MAX_USER_INPUT_CHARACTERS+" characters is allowed!");
return true;
}
else if(input.contains("UNION")){
NotificationPopUp.displayNotificationWindow("Keyword: 'UNION' is not allowed");
return true;
}
else return false;
}
}
......@@ -29,7 +29,7 @@ public final class Settings {
public static final int LOCATION_ID = 124;
public static final String MAN_MOISTURE_TABLE = "int_dk_manMoisture";
public static final String KWH_TABLE_NAME = "int_sd_winccsensordata";
public static final String USERS_TABLE_NAME = "users";
public static String USERS_TABLE_NAME = "users";
public static final String KWH_NAME_PARAMETER = "VariantValue";
public static final String KWH_TIMESTAMP_NAME_PARAMETER = "Timestamp";
public static final String KWH_VALUE_ID_NAME_PARAMETER = "ValueID";
......
......@@ -14,6 +14,7 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
import static com.application.DB.HelpingFunctions.isValidInput;
import static com.application.DB.Settings.*;
import static com.application.DB.DB.getCurrentDrying;
import static com.application.DB.Constants.MAX_USER_INPUT_CHARACTERS;
......@@ -127,13 +128,14 @@ public class InputPopup {
Constants.MOISTURE_GOAL = moistureList.getValue();
}
boolean err = false;
// If the input is null, sets the value to be empty
if (treeSpeciesList.getValue() == null) {
Constants.TREE_SPECIES = "";
} else if (treeSpeciesList.getValue().length() > MAX_USER_INPUT_CHARACTERS) {
NotificationPopUp.displayNotificationWindow("A maximum of "+MAX_USER_INPUT_CHARACTERS+" characters is allowed!");
} else if (isValidInput(treeSpeciesList.getValue())) {
treeSpeciesList.setValue("");
err = true;
}
......
......@@ -10,7 +10,7 @@ import javafx.stage.Stage;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import static com.application.DB.Account_handler.*;
import static com.application.DB.AccountHandler.*;
import static com.application.DB.Constants.*;
import static com.application.GUI.Panes.CreateLogoBar.getLogin;
......@@ -140,10 +140,11 @@ public class LoginPopup {
// Tries to add the user
try {
addUser(firstNameTextField.getText(), lastNameTextField.getText(), phoneNoTextField.getText(),
usernameTextField.getText(), hashedPassword, isAdminBox.isSelected());
NotificationPopUp.displayNotificationWindow("Successfully added user!");
window.close();
if(addUser(firstNameTextField.getText(), lastNameTextField.getText(), phoneNoTextField.getText(),
usernameTextField.getText(), hashedPassword, isAdminBox.isSelected())){
NotificationPopUp.displayNotificationWindow("Successfully added user!");
window.close();
} else NotificationPopUp.displayNotificationWindow("That username already exist in the database!");
} catch (Exception e) {
e.printStackTrace();
}
......
package com.application.DB;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import static com.application.DB.Settings.USERS_TABLE_NAME;
class AccountHandlerTest {
AccountHandlerTest(){
USERS_TABLE_NAME = "users_testing";
}
@Test
void logIn() throws Exception {
AccountHandler.deleteUser("loginTestAccount");
AccountHandler.addUser("test","test","+4712345678","loginTestAccount","test",false);
Assertions.assertEquals(1, AccountHandler.logIn("loginTestAccount","test").getTotalRows());
AccountHandler.deleteUser("loginTestAccount");
}
@Test
void logInFailed() throws Exception {
Assertions.assertEquals(0, AccountHandler.logIn("qefjdnweflkweoihde","test").getTotalRows());
}
@Test
void getAccount() throws Exception {
AccountHandler.deleteUser("testAccount");
AccountHandler.addUser("test","test","+4712345678","testAccount","test",false);
Assertions.assertEquals(1, AccountHandler.getAccount("testAccount").getTotalRows());
AccountHandler.deleteUser("testAccount");
}
//The test checks if the user is added
@Test
void addUser() throws Exception {
AccountHandler.deleteUser("testAccount");
AccountHandler.addUser("test","test","+4712345678","testAccount","test",false);
Assertions.assertEquals(1, AccountHandler.getAccount("testAccount").getTotalRows());
AccountHandler.deleteUser("testAccount");
}
//The test checks if the user is added
@Test
void addAlreadyExistingUser() throws Exception {
AccountHandler.deleteUser("testAccountAlready");
AccountHandler.addUser("test","test","+4712345678","testAccountAlready","test",false);
Assertions.assertFalse(AccountHandler.addUser("test","test","+4712345678","testAccountAlready","test",false));
AccountHandler.deleteUser("testAccountAlready");
}
@Test
void deleteUser() throws Exception {
AccountHandler.deleteUser("deleteTestAccount");
AccountHandler.addUser("test","test","+4712345678","deleteTestAccount","test",false);
AccountHandler.deleteUser("deleteTestAccount");
Assertions.assertEquals(0, AccountHandler.getAccount("deleteTestAccount").getTotalRows());
}
@Test
void deleteUserNonExistingUser() throws Exception {
Assertions.assertFalse(AccountHandler.deleteUser("erjfnerjkfwefbaekrørebf"));
}
}
\ No newline at end of file
File deleted
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment