From 5e0b0da0ae8ec997f6057c22793b69fe93ec1cd0 Mon Sep 17 00:00:00 2001 From: karin_pettersen <karinep@stud.ntnu.no> Date: Sun, 15 May 2022 20:14:21 +0200 Subject: [PATCH] Added test class for accountHandler --- Bachelor_application.iml | 11 +++ pom.xml | 28 ++++++++ ...count_handler.java => AccountHandler.java} | 20 ++++-- .../java/com/application/DB/Constants.java | 4 +- .../com/application/DB/HelpingFunctions.java | 22 ++++++ .../java/com/application/DB/Settings.java | 2 +- .../GUI/PopUpWindows/InputPopup.java | 6 +- .../GUI/PopUpWindows/LoginPopup.java | 11 +-- .../application/DB/AccountHandlerTest.java | 65 ++++++++++++++++++ .../com/application/DB/Account_handler.class | Bin 4213 -> 0 bytes .../com/application/DB/Constants.class | Bin 2090 -> 2090 bytes .../com/application/DB/HelpingFunctions.class | Bin 8496 -> 9012 bytes .../classes/com/application/DB/Settings.class | Bin 5971 -> 5982 bytes .../GUI/LineChartFunctionality.class | Bin 19826 -> 19687 bytes .../GUI/PopUpWindows/InputPopup.class | Bin 8907 -> 8920 bytes .../GUI/PopUpWindows/LoginPopup.class | Bin 11567 -> 11560 bytes 16 files changed, 151 insertions(+), 18 deletions(-) rename src/main/java/com/application/DB/{Account_handler.java => AccountHandler.java} (80%) create mode 100644 src/test/com/application/DB/AccountHandlerTest.java delete mode 100644 target/classes/com/application/DB/Account_handler.class diff --git a/Bachelor_application.iml b/Bachelor_application.iml index f8154df..b94cb91 100644 --- a/Bachelor_application.iml +++ b/Bachelor_application.iml @@ -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 diff --git a/pom.xml b/pom.xml index e6c3063..3c4734f 100644 --- a/pom.xml +++ b/pom.xml @@ -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> diff --git a/src/main/java/com/application/DB/Account_handler.java b/src/main/java/com/application/DB/AccountHandler.java similarity index 80% rename from src/main/java/com/application/DB/Account_handler.java rename to src/main/java/com/application/DB/AccountHandler.java index e5a7cf0..fa9c06a 100644 --- a/src/main/java/com/application/DB/Account_handler.java +++ b/src/main/java/com/application/DB/AccountHandler.java @@ -8,9 +8,8 @@ import com.google.cloud.bigquery.TableResult; import static com.application.DB.Constants.*; import static com.application.DB.Settings.*; import static com.application.GUI.PopUpWindows.LoginPopup.getPasswordTextField; -import static java.lang.System.err; -public class Account_handler { +public class AccountHandler { public static void getAccountInformation(String username, String password) throws Exception { @@ -64,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 { diff --git a/src/main/java/com/application/DB/Constants.java b/src/main/java/com/application/DB/Constants.java index 75ae0f2..17b4ae5 100644 --- a/src/main/java/com/application/DB/Constants.java +++ b/src/main/java/com/application/DB/Constants.java @@ -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; diff --git a/src/main/java/com/application/DB/HelpingFunctions.java b/src/main/java/com/application/DB/HelpingFunctions.java index cdeeafa..4ab13f7 100644 --- a/src/main/java/com/application/DB/HelpingFunctions.java +++ b/src/main/java/com/application/DB/HelpingFunctions.java @@ -1,8 +1,10 @@ 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 { @@ -178,4 +182,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; +} + + + + + } diff --git a/src/main/java/com/application/DB/Settings.java b/src/main/java/com/application/DB/Settings.java index 57bc242..04028a6 100644 --- a/src/main/java/com/application/DB/Settings.java +++ b/src/main/java/com/application/DB/Settings.java @@ -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"; diff --git a/src/main/java/com/application/GUI/PopUpWindows/InputPopup.java b/src/main/java/com/application/GUI/PopUpWindows/InputPopup.java index 1259d27..e96015b 100644 --- a/src/main/java/com/application/GUI/PopUpWindows/InputPopup.java +++ b/src/main/java/com/application/GUI/PopUpWindows/InputPopup.java @@ -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; } diff --git a/src/main/java/com/application/GUI/PopUpWindows/LoginPopup.java b/src/main/java/com/application/GUI/PopUpWindows/LoginPopup.java index 878fba6..a2218c8 100644 --- a/src/main/java/com/application/GUI/PopUpWindows/LoginPopup.java +++ b/src/main/java/com/application/GUI/PopUpWindows/LoginPopup.java @@ -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.LogoBar.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(); } diff --git a/src/test/com/application/DB/AccountHandlerTest.java b/src/test/com/application/DB/AccountHandlerTest.java new file mode 100644 index 0000000..1c89004 --- /dev/null +++ b/src/test/com/application/DB/AccountHandlerTest.java @@ -0,0 +1,65 @@ +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 diff --git a/target/classes/com/application/DB/Account_handler.class b/target/classes/com/application/DB/Account_handler.class deleted file mode 100644 index c09f8ced6631474642158218a0c1f8833b6ff76f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4213 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 diff --git a/target/classes/com/application/DB/Constants.class b/target/classes/com/application/DB/Constants.class index f9229ec0ebccb95510e2f7694f75caeb87e56e94..b1d3fc3702ed1019a1d6296da0a1b093a81acaa1 100644 GIT binary patch delta 87 zcmZ1_uu5P<DJ!GS<T6$*R(%E*27}2<S*;n3CqHD>Vl`)AVX&Aiz-G;8J=up%i`AZi sg~4HRHJde~^W^PpTCDC2EDRo#pRrjpdQVnj*JAZ&U||TD9LRnX0C}Dh=Kufz delta 87 zcmZ1_uu5P<DJ!Gy<T6$*Rzn6B2BXPKS*;mOCqHD>Vzp#oVX&Gkz-G;8JK2X#i`9{V sg~4fZHJde~>*VchTCAQ7EDT<gpRrjp`c772*J2H1U||TF9LRnX0DdtP1ONa4 diff --git a/target/classes/com/application/DB/HelpingFunctions.class b/target/classes/com/application/DB/HelpingFunctions.class index 7166717be98c08b21717c8005665d8fe9bd7c817..20e3d6c5e0490d9ddbe6094ea05e11c3be6765fe 100644 GIT binary patch delta 2735 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 Mj|}e_ZZJp!00R{l5C8xG delta 2220 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 Zj4cdjSvVQ4G4NgiGoCR#VK~bm2>{qofgJz< diff --git a/target/classes/com/application/DB/Settings.class b/target/classes/com/application/DB/Settings.class index 3cc7d0b40907c69485096f5fd430ff9206db126c..c10b0728d7fa140d9da7a00434929e80fbf5f2ea 100644 GIT binary patch delta 2165 zcmcbtcTcbW)W2Q(7#J8#7_M<K7&1&@XPC;xzyzYFaWUvIOy^=?VVD6DnF(Ue0ui%0 z80LUP=7Ko$I2h)G=mi`M3pp4TaWE|AU|7Pzu#|&g83)614u%z63@aH{aWb$ltma@? z!@;nYgJB&9!+H*e4Ir_NTs{me44Xg(Yz7fqI2g8aFl^&s*v`SQ1EgRl2g5E9y&FXA z0TFvS81{ka{p<_}*clFTF&ttz%*CL~aD<)V=)}XljK?MiGHNj%pIpPJGI=p$G2@BN z;!H1?7*B3uoz2Re&5$#B9+!#5DTdQL43!MUJPc<T&hjvHfLOH*#f%J`VTn1psU?}o z#XJn>7|!!BG=M~zy~{Ir7+M*MCv$Oka$n$KIK^<0har$5X!1O6d!Y!1ARdM;kP+P= zqK~0?@_X(m?IeaEMh4EH)Wn>y#GKMp9)>iKIwJ;S9tINzV@3wn(&E&jVjc!32J6Y` zJUZN$co;4-T;XBJX1F?e9*^_pmpoRC^@a=#3>pla3`Pvb3=9mMAe{^h43Z3{3}y_B z4CV|B3``6b43Z314AyYI4TB_uErT(fZ^t0XV2>p4z#z%sh{P9Q-~>4WY_2nsxD<nA zJ%bC9fHZ?7gDVnWmO+xi4T<m0Aj#l?X0a!dJU@dZgBKECfI*VM8;LK-Aj#l^#1~?y zmt^oo5)fgKWbi}ci!w+u_#;^uz#s{V6$VCzU~tHUFi0|lBB_^RkYor$;)6UCj>HFf zD1spfp}(F%k|7ewf+z+_hG--WN(_<=F-Ux621$lkBtFPTaY%e221$l^B)$rRBtrrc zUzI_UArZ;GdXSHjkX^(e$&iesL7hR8Aq9yK@=+=hALOGnH2vvF@)-=044Ft4W-;(H zFfn8^<S;NY<T5bWgQXZ57#LW!wlgqp1cz!K0|Nsn|1&V~Ft9N2G2}CVSYSmA1q_AY zbXvqv%)rEuJNc=AnJ-Aa5CaPX14AkU2SXZzC__4fGD8Mj9|wahLkUAE0|P@D)Fg;V zIRgVU9xE8QK)DrcVuqkKl8Jc?91Qsk5)1_l8VrR<CMq#hp_vF0sfL?a!@$W<3w7fM zL0!hY$#O#CrZAsyFo<C22Z_|d_180Sfr<vOi~fjcO`am8#F#gEyO1)H8O98aXl?+B zAe+I-(8SOTHiKVSR2CFYYz&}qY=`>0g@FrH>VQ=^3Y*n~REROKGB7Z7GjK5UFbFdA zGDtD>F(@-kMDn{VLmQgCAQ4o1+adNcFfhn~ZDe3z*~B2Xfq{X6kpW~2#2r(S+|j{M z%mQ}EFJa^en9ab!Fo!{cVJ?FP!#pHMC^2-RIRYet8UbDK2#}aOOGK10Z}J8aQX`=o zYQ`TCAI7}No}#D`(1Yd%V}>3E)PU%P1jOWpqR0`j1<B)mP#YYDB__WXm1E4C%q1pW zk4P%A4E<=ffJ9JjnE<f`HMlj<gZm)dRt|=Vuq?=Mh=Gj(1SYX=X3!L{+039Nq`kSG zL1#CEZY1ko2E9mTjvWlF!I3NiY#@3EgZ_2~gUt*Q2zdcxkVGVlfCY$#DUd@_APAC( zWDyVo(J%#SND72O5|JzdV0s6Gz9rZW4N!pqNicE@><kPHf($GSA`F}i3JiP<W(;}^ Vb`1UuAq)i!(F}|XlfZ??WB~hhF$n+w delta 2164 zcmcbocUiCg)W2Q(7#J8#7_M+J=rc@aXPCmpzyzYFaxv&IOygo;VVDjQnE_(W1QD}1 z7-oY+=72bJIT+@F==mHB3pf}Saxg67U|7t-u!MtQDF?$c4u<7i3@aE`ax$<mtm0r; z&B3sSgJCTP!#WOz^&qhgTrLbO3>!fPYyuIRIT*HZFl^;u*v7%I9i(6f2g6Pfy$eL_ z1`&JM8TPU>?BinC&v1Z?L7U+qJHw%gr+XO>PmW~NVmvarg;9l>gW>4p6^zA<$2Q9_ zy<lQIzL}MEHY;-$L-ypwTqYJL7*6sqR4^3rFq~pI&BM?RV%0DdF*0z5CFbO&mSiRu z^DvxYILpIO4-#eeF3;d$XkjRt%+KA)eU69W1jBhAh5&}Z$&0z|g~AyEc^EoDMs$IQ zUWTH{U$~>>5*Y#+890Md6LZ26b4pWr7*av%3>XY~7>pPUCs*?5a9`kIxX5scharpM z^5hLX&TOou#i>Qbn?Lf{FxKlcFfeE^a55M$7&0(0aDwzOFfd3m7&DkKFfy1jFfcGN zm@!B)STI<^`Bn^)4Au;WaJ~(LB!exIyd8rigFO;ofI*VM0g3O(Aj#ka;n#yLkYbQz zaE1tg`O*xM3@%7~Sq4c4S0uh0gCv7HngcwL<oOvS89b5rAP0CM@dX(q8N9*#dWa8& z7$g~dzyc7y2!kYpFA`srL6X4_$wGeyNl?5nFfs&z9UROc$q<619^|1=BtFPPVMu(C zhr$^G85rx442VFoAd*3nAqq)@5`!c|G!kE#L6RW`i4XEoED|5&p*SSI3WFp=JQ81( zL6RYX!H}UI7RMkTC4yXp<e(%Z4eAV%49Q4*kdIQ3_#hvpqUldVl22!lWXM4BU?u}U z0~14*J3}@DBSQ`Y1A{RGBLgD?0|Tqpb_T|c;84wFU|;}ce+C8~1{MZBhCBuk3#^DC zpP>MpUJDtD7?>DxCO;Q2W6Yf_Cn#<TQ^mm`%TUZv!oa{#3e^V@DPv%O`mvmW3zR#- z`m+SBeL?mKF|aT&Fyt|CFyu2xFcdIoFciY=<zP@^s6;anBvJ)8v6_LCp$6)rPlCFP zxsw%ykX<B#p&ukt3)f%Azy&G_z%KeHqBVJ%kP>6=<efswNWL;=Xh3rVNCepoPKHK? zCa@WT!lJSuU$KFMwjJv4W(F=$DFasFEDQ>_Dq-n#<Zx?6vq6@jl>ya;Hi!)j3=A@0 zvl$pzHZjO;U|?WiWI)(B70JeSXt?|lMh@xO3>*w|7$g|xGH5W&LkZ~)G&d+QbTFWX zbSKor77<;fxLd@)!LXP?kYNdf6vI*^6G0)3ni@bN$iCuY=z^N~PsE2Yce1yray=qc zj2XJoTm%w9*3Ze%gDq6l&_iVlQmFJoY-C_yC}dy;hotIm2BygE49wnILXtw0--^mH z=1%4jlSXohEJGifOF$y1F6qbS5)E{h9E7`sgJA+ZEAC`qV*r6(*3Ar>0ydi&w01LS z*GIDMWzdOa=Gei&8XU<Yzy_jsFz9Y)(A&%)v712~DlcFRl89sxumI681#(CV1VIv! zECNCx8m2%ENr5m(B9cV_Ov4lyXn+a@NaB(LJ5Z2;g+YXYlfjHZlfjO`iy?#|n<1Kk LkzpdZ@R$Su0&y&5 diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class index 30bd0f2183c54ab6bccf4cc5eda99118dc7ac9f9..b21e073b2ce26efcaa49a9f1501d31ead5c17834 100644 GIT binary patch delta 8565 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 delta 8670 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 A>i_@% diff --git a/target/classes/com/application/GUI/PopUpWindows/InputPopup.class b/target/classes/com/application/GUI/PopUpWindows/InputPopup.class index 8d31307c5d5c7a14c5f4fb19efcad444cd5ba67f..347ac9d24189f21a827c7d1ad4ed22d1523084af 100644 GIT binary patch delta 3252 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 N?r@e5oE6S!3jis$%0d7D delta 3358 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 diff --git a/target/classes/com/application/GUI/PopUpWindows/LoginPopup.class b/target/classes/com/application/GUI/PopUpWindows/LoginPopup.class index d48a380678cdbcd7de915ccbd1bfb5ac516a2e67..c94b2f85d508e5f666aed9e7f81ececd4e584974 100644 GIT binary patch delta 4217 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 CD~%Tb delta 4138 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 R;Vg4F%L2~whO>ManE?wDPVN8z -- GitLab