package org.gcube.vremanagement; import static org.junit.jupiter.api.Assertions.*; import java.util.InputMismatchException; import java.util.Scanner; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /* * */ class CsvUpdateTest { private static Logger logger = LoggerFactory .getLogger(CsvUpdateTest.class); private String[] listVOs= {"D4Research","gCubeApps","FARM","ParthenosVO","OpenAIRE"}; private String scopeIn = "/d4science.research-infrastructures.eu"; int skipLines = 3; private String InCsvFile="VREDecommisioned-240326.csv"; //Used for Google APIs remote update private String vreSheet = "VREs"; private String missVreSheet="VREs-missing"; private String updateVreSheet = "VREs-extended-info"; //Used for GooGle APis; String spreadID="1-_24RYwFHG5DuR-rrcmHDSz9pOqVHApBLhXiFLub9JA"; @Test void QueryClientVREInfoTest(){ VREQueryService updaterCSV = new VREQueryService(InCsvFile,skipLines); String voIn="D4Research"; String vreName="FoodborneOutbreak"; updaterCSV.getVREInfoFromClient(scopeIn,voIn, vreName); } @Test void UpdateLocalCSVTest() { VREQueryService updaterCSV = new VREQueryService(InCsvFile,skipLines); logger.debug("Updating VREs in a LOCAL CSV file"); updaterCSV.updateCSVformCSVList(scopeIn); logger.debug("Update CSV done"); } @Test void MissingLocalCSVTest(){ VREQueryService updaterCSV = new VREQueryService(InCsvFile,skipLines); logger.debug("Getting missing VRE in a LOCAL CSV file"); updaterCSV.missingVREinCSV(scopeIn, listVOs); logger.debug("Missing CSV done"); } @Disabled @Test void UpdateEndTimeVRETest(){ String voTimeIn="D4Research"; String vreTimeName="FoodborneOutbreak"; int yearIn=2024; int monthIn=2; //Months start from zero int dayIn=21; VREQueryService updaterCSV = new VREQueryService(InCsvFile,skipLines); updaterCSV.updateEndTimeVRE(scopeIn, voTimeIn, vreTimeName, yearIn,monthIn, dayIn); } //Google remote APIs requires client_secret token @Disabled @Test void UpdateRemoteVREInfoSheet() { try { GoogleSheetsService.setup(spreadID); GoogleSheetsService.updateVresInfoSheet(vreSheet, updateVreSheet, "A1:G", scopeIn); }catch(Exception e) { e.printStackTrace(); } } @Disabled @Test void UpdateRemoteVREMissingSheet() { try { GoogleSheetsService.setup(spreadID); GoogleSheetsService.updateMissVREsGoogleSheet(scopeIn, listVOs, vreSheet, missVreSheet, "A1:Z"); }catch(Exception e) { e.printStackTrace(); } } @Disabled @Test void InteractiveTest() { Scanner scanner = new Scanner(System.in); int choice=0; do { VREQueryService updaterCSV = new VREQueryService(InCsvFile,skipLines); logger.debug("Menu:"); logger.debug("1. Update VREs in a LOCAL CSV file"); logger.debug("2. Get missing VRE in a LOCAL CSV file"); logger.debug("3. Get VRE info from Service"); logger.debug("4. Update VRE EndTime"); logger.debug("5. Update VRES in a Remore Google Sheet"); logger.debug("6. Update Missing VRES in a Remore Google Sheet"); logger.debug("7. Exit"); logger.debug("Choice:"); try { choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 1: logger.debug("Updating VREs in a LOCAL CSV file"); updaterCSV.updateCSVformCSVList(scopeIn); logger.debug("Update CSV done"); break; case 2: logger.debug("Getting missing VRE in a LOCAL CSV file"); updaterCSV.missingVREinCSV(scopeIn, listVOs); logger.debug("Missing CSV done"); break; case 3: logger.debug("Getting VRE info from Service"); logger.debug("Insert VRE name (ignore case): "); String vreName = scanner.nextLine(); logger.debug("Insert VO: "); String voIn = scanner.nextLine(); updaterCSV.getVREInfoFromClient(scopeIn,voIn, vreName); break; case 4: logger.debug("Updating VRE EndTime"); logger.debug("Insert VRE name (ignore case): "); String vreTimeName = scanner.nextLine(); logger.debug("Insert VO: "); String voTimeIn = scanner.nextLine(); if (updaterCSV.getVREInfoFromClient(scopeIn, voTimeIn, vreTimeName) >0) { logger.debug("Update year? (0=no, 1=yes)"); if (scanner.nextInt()>0) { logger.debug("Insert year: "); int yearIn = scanner.nextInt(); logger.debug("Insert month num: "); int monthIn = scanner.nextInt()-1; logger.debug("Insert day: "); int dayIn = scanner.nextInt(); updaterCSV.updateEndTimeVRE(scopeIn, voTimeIn, vreTimeName, yearIn,monthIn, dayIn); } } break; case 5: GoogleSheetsService.setup(spreadID); GoogleSheetsService.updateVresInfoSheet(vreSheet, updateVreSheet, "A1:G", scopeIn); break; case 6: GoogleSheetsService.setup(spreadID); GoogleSheetsService.updateMissVREsGoogleSheet(scopeIn, listVOs, vreSheet, missVreSheet, "A1:Z"); break; case 7: logger.debug("Exiting..."); break; default: logger.debug("Invalid choice - Try Again"); break; } }catch(InputMismatchException ime) { System.err.println("Input mismatch! Please use correct input type"); scanner.nextLine(); choice=0; }catch(Exception e) { e.printStackTrace(); } }while(choice !=7); //end do-while loop scanner.close(); } }