Commit 79faaaef authored by Jonas Waeber's avatar Jonas Waeber

Add tests for valid and invalid excel import

parent a100263a
Pipeline #9245 passed with stages
in 6 minutes and 17 seconds
......@@ -23,7 +23,7 @@ data class TestParams(
val settingsFileName: String,
val inputFileName: String,
val inputKey: String,
val expectedOutputKey: String,
val expectedOutputKey: List<String>,
val expectedOutputDirectoryName: String,
val processReportOutput: String
)
......@@ -48,7 +48,8 @@ class Tests {
sftpServer.createDirectories(
"/memobase/test_institution_1/test_record_set_1",
"/memobase/test_institution_2/test_record_set_2",
"/memobase/test_institution_3/test_record_set_3"
"/memobase/test_institution_2/test_record_set_3",
"/memobase/test_institution_3/test_record_set_4"
)
sftpServer.putFile(
"/memobase/test_institution_1/test_record_set_1/brandt_metadaten.csv",
......@@ -59,9 +60,13 @@ class Tests {
FileInputStream("src/test/resources/sftp/mapping_baugazh.csv")
)
sftpServer.putFile(
"/memobase/test_institution_3/test_record_set_3/bauGAZH_metadaten.csv",
"/memobase/test_institution_3/test_record_set_3/excel_test_file.xlsx",
FileInputStream("src/test/resources/sftp/excel_test_file.xlsx")
)
sftpServer.putFile(
"/memobase/test_institution_4/test_record_set_4/excel_test_file2.xlsx",
FileInputStream("src/test/resources/sftp/excel_test_file2.xlsx")
)
}
@ParameterizedTest
......@@ -89,7 +94,7 @@ class Tests {
count += 1
assertThat(record)
.isNotNull
.hasFieldOrPropertyWithValue("key", params.expectedOutputKey)
.hasFieldOrPropertyWithValue("key", params.expectedOutputKey[count - 1])
.hasFieldOrPropertyWithValue("value", readFile(params.expectedOutputDirectoryName + "/$count.json"))
val reportedRecord = testDriver.readOutput(
......@@ -132,27 +137,36 @@ class Tests {
"test1.yml",
"error_filter_input.json",
"brandt_metadaten.csv",
"brandt_metadaten.csv",
listOf("brandt_metadaten.csv"),
"error_filter_output",
Klaxon().toJsonString(Report("brandt_metadaten.csv", "FAILURE", "No valid file found!"))
Klaxon().toJsonString(Report("brandt_metadaten.csv", "FAILURE", "Could not process file brandt_metadaten.csv, because the input file is invalid."))
),
TestParams(
"valid csv input",
"test1.yml",
"brandt_csv_import.json",
"brandt_metadaten.csv",
"AVGR13716",
listOf("AVGR13716"),
"brandt_output",
Klaxon().toJsonString(Report("brandt_metadaten.csv", "SUCCESS", "Transformed table data into 1 records."))
),
TestParams(
"valid xlsx input",
"invalid xlsx input",
"test3.yml",
"excel_test_input.json",
"excel_test_file.xlsx",
"AVGR13716",
listOf("excel_test_file.xlsx"),
"excel_output",
Klaxon().toJsonString(Report("", "FAILURE", "message"))
Klaxon().toJsonString(Report("excel_test_file.xlsx", "FAILURE", "Could not process file excel_test_file.xlsx, because The property in cell J3 contains one or more invalid characters: [., :, /, +]."))
),
TestParams(
"valid xlsx input",
"test3.yml",
"excel_test_input2.json",
"excel_test_file2.xlsx",
listOf("AVGR13716", "AVGR13717", ""),
"excel_output_valid",
Klaxon().toJsonString(Report("excel_test_file2.xlsx", "SUCCESS", "Transformed table data into 2 records."))
)
/*,
TestParams(
......
{
"id": "AVGR13716",
"status": "SUCCESS",
"message": "Successfully created record with identifier AVGR13716 from row 4!"
"message": "Successfully transformed row 4 into key-value map with identifier AVGR13716."
}
\ No newline at end of file
{"id" : "brandt_metadaten.csv", "message" : "Ignored message due to previous error.", "status" : "FAILURE"}
\ No newline at end of file
{"id" : "brandt_metadaten.csv", "message" : "Could not process file brandt_metadaten.csv, because the input file is invalid.", "status" : "FAILURE"}
\ No newline at end of file
{"Exemplar-AVGRNr":"AVGR13716","Permalink":"https://www.gr.ch/Exemplare/13716","Titel-Title":"Wintersport in Arosa","Titel-Beschreibung":"Pferdesport; Ski alpin; Skispringen; Eishochey; Tourismus","Titel-ProduktionsjahrdesOriginals":"1920, 1920-1929, genaues Datum nicht eruierbar","Titel-FilmPersonen":"Brandt, Carl","Titel-Funktionen":"Autor/in","Titel-Genre":"Dokumentarfilm; Amateurfilm","Titel-Drehort":"Arosa","Titel-Weiteres":"Eisfest: teilweise identische Aufnahmen in AVGR12097 \u201eAnkunft David Zogg\u201c ; Schanzenspringen auf Carmenna: teilweise identische Aufnahmen in AVGR12115 \u201eTouristen auf dem Tschuggen\u201c","Titel-Stream-Url":"https://s3-eu-west-1.amazonaws.com/streaming.av-portal.gr.ch/13716/AVGR13716.mov","Titel-Benutzerzugang":"Intranet","Medium-Materialbezeichnung":"Film","Medium-MedienFormat":"35-mm-Film, Negativ und Positiv, Nitrat","Medium-Ton":"stumm","Medium-Farbe":"s/w getönt","Medium-Dauer":"0:17:02","Medium-Bandlaenge":"Vorhandene Elemente: AVGR9942: Negativ, Nitrat (CS, Z 986-172.8); AVGR9943: Positiv Nitrat (CS, Z 986-172.7); AVGR12098: Interpositiv / Marron 2366, Kopie 2016 (KBG); AVGR13715: Internegativ 2234, Kopie 2016 (KBG); AVGR13716: Positivkopie Farbe 2383, Kopie 2016, eingefärbte Sequenzen (KBG)"}
\ No newline at end of file
{"message":"ERROR"}
\ No newline at end of file
{"id" : "brandt_metadaten.csv", "message" : "Ignored message due to previous error.", "status" : "FAILURE"}
\ No newline at end of file
{"id" : "excel_test_file.xlsx", "message" : "Invalid Input Error: The property in cell J3 contains one or more invalid characters: [., :, /, +]. for file excel_test_file.xlsx.", "status" : "FAILURE"}
\ No newline at end of file
{"Exemplar-AVGRNr":"AVGR13716","Permalink":"https://www.gr.ch/Exemplare/13716","Titel-Title":"Wintersport in Arosa","Titel-Beschreibung":"Pferderennen am Obersee bei strahlendem Sonnenschein, viel Publikum, Gedränge vor Wettbüro, Reiter in Armeeuniform, Fotografen, Skijöring \u2013 Eisfest mit kostümierten Teilnehmer/innen vor Hotel Altein bei Nacht \u2013 Pferderennen am Obersee \u2013 Eiskunstlauf \u2013 Pferderennen, diesmal winterlicher \u2013 Schanzenspringen im Skigelände und viel Volk um die Alpgebäude Carmenna \u2013 Skifahrer im Aufstieg, Winterwanderer und nochmals Sprünge auf der Schneeschanze, Gruppe Skifahrer in wilder Schussfahrt, Wartende um die Hütten \u2013 Eishockey-Match \u2013 Impressionen von einem Abfahrtsrennen und Rundsicht über Arosa und Umgebung","Titel-ProduktionsjahrdesOriginals":"1920, 1920-1929, genaues Datum nicht eruierbar","Titel-FilmPersonen":"Brandt, Carl","Titel-Funktionen":"Autor/in","Titel-Genre":"Dokumentarfilm; Amateurfilm","Titel-Genres":"Pferdesport; Ski alpin; Skispringen; Eishochey; Tourismus","Titel-Drehort":"Arosa","Titel-Weiteres":"Eisfest: teilweise identische Aufnahmen in AVGR12097 \u201eAnkunft David Zogg\u201c ; Schanzenspringen auf Carmenna: teilweise identische Aufnahmen in AVGR12115 \u201eTouristen auf dem Tschuggen\u201c","Titel-Stream-Url":"https://s3-eu-west-1.amazonaws.com/streaming.av-portal.gr.ch/13716/AVGR13716.mov","Titel-Benutzerzugang":"Intranet","Medium-Materialbezeichnung":"Film","Medium-MedienFormat":"35-mm-Film, Negativ und Positiv, Nitrat","Medium-Ton":"stumm","Medium-Farbe":"s/w getönt","Medium-Dauer":"0.0118287037037037","Medium-Bandlaenge":"Vorhandene Elemente: AVGR9942: Negativ, Nitrat (CS, Z 986-172.8); AVGR9943: Positiv Nitrat (CS, Z 986-172.7); AVGR12098: Interpositiv / Marron 2366, Kopie 2016 (KBG); AVGR13715: Internegativ 2234, Kopie 2016 (KBG); AVGR13716: Positivkopie Farbe 2383, Kopie 2016, eingefärbte Sequenzen (KBG)"}
\ No newline at end of file
{"Exemplar-AVGRNr":"AVGR13717","Permalink":"https://www.gr.ch/Exemplare/13717","Titel-Title":"Schwimmfest am Untersee","Titel-Beschreibung":"Viel Publikum in alter Badi am Untersee \u2013 Wettkämpfe in Wasserball, Schwimmen, Staffel und einzeln - Turmspringen","Titel-ProduktionsjahrdesOriginals":"1920, 1920-1929, genaues Datum nicht eruierbar","Titel-FilmPersonen":"Brandt, Carl","Titel-Funktionen":"Autor/in","Titel-Genre":"Dokumentarfilm; Amateurfilm","Titel-Genres":"Wassersport","Titel-Drehort":"Arosa","Titel-Stream-Url":"https://s3-eu-west-1.amazonaws.com/streaming.av-portal.gr.ch/13717/AVGR13717.mov","Titel-Benutzerzugang":"Intranet","Medium-Materialbezeichnung":"Film","Medium-MedienFormat":"35-mm-Film, Negativ und Positiv, Nitrat","Medium-Ton":"stumm","Medium-Farbe":"s/w getönt","Medium-Dauer":"0.00502314814814815","Medium-Bandlaenge":"Vorhandene Elemente: AVGR9973: Negativ, Nitrat (CS, Z 986-123.5); AVGR9974: Positiv Nitrat (CS, Z 986-122.3); AVGR12099: Internegativ 2234, Kopie 2016 (KBG); AVGR13717: Positivkopie Farbe 2383, Kopie 2016, eingefärbte Sequenzen (KBG)"}
\ No newline at end of file
{"id" : "AVGR13716", "message" : "Successfully transformed row 4 into key-value map with identifier AVGR13716.", "status" : "SUCCESS"}
\ No newline at end of file
{"id" : "AVGR13717", "message" : "Successfully transformed row 5 into key-value map with identifier AVGR13717.", "status" : "SUCCESS"}
\ No newline at end of file
{
"path": "/memobase/test_institution_4/test_record_set_4/excel_test_file2.xlsx",
"format": "XLSX"
}
\ No newline at end of file
......@@ -24,7 +24,7 @@
</Console>
</Appenders>
<Loggers>
<Root level="info">
<Root level="warn">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment