diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/CsvImportTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/CsvImportTest.java index 4b3fdd37..01c5b069 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/CsvImportTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/CsvImportTest.java @@ -203,7 +203,7 @@ void test_upload_emptyDatePattern_showValidationError() assertThat(driver.findElement(By.id("csv-file-name")).getText()).isEqualTo("three_entries.csv"); - fillColumnSettings(1, "", 2, 3, 2); + fillColumnSettings(1, "", 2, 3, ".", ",", 2); wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#datePattern.invalid"))); @@ -226,7 +226,7 @@ void test_upload_invalidColumnSettings_showValidationError() assertThat(driver.findElement(By.id("csv-file-name")).getText()).isEqualTo("three_entries.csv"); - fillColumnSettings(-3, "dd.MM.yyyy", 200, -12, 115); + fillColumnSettings(-3, "dd.MM.yyyy", 200, -12, ".", ",", 115); wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#columnDate.invalid"))); @@ -237,6 +237,52 @@ void test_upload_invalidColumnSettings_showValidationError() assertThat(driver.findElement(By.cssSelector("#columnDescription.invalid"))).isNotNull(); } + @Test + void test_upload_emptyDecimalSeparator_showValidationError() + { + driver.get(helper.getUrl() + "/transactionImport"); + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.textToBePresentInElementLocated(By.cssSelector(".headline"), "Import from bank CSV")); + + final String csvPath = new File(getClass().getClassLoader().getResource("csv/three_entries.csv").getFile()).getAbsolutePath(); + + uploadCsv(csvPath, ";", "UTF-8", "1"); + wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("button-cancel-csv-import"))); + + assertThat(driver.findElement(By.id("csv-file-name")).getText()).isEqualTo("three_entries.csv"); + + fillColumnSettings(1, "", 2, 3, "", ",",2); + + wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#decimalSeparator.invalid"))); + + assertThat(driver.findElement(By.cssSelector("#decimalSeparator.invalid"))).isNotNull(); + } + + @Test + void test_upload_emptyGroupingSeparator_showValidationError() + { + driver.get(helper.getUrl() + "/transactionImport"); + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.textToBePresentInElementLocated(By.cssSelector(".headline"), "Import from bank CSV")); + + final String csvPath = new File(getClass().getClassLoader().getResource("csv/three_entries.csv").getFile()).getAbsolutePath(); + + uploadCsv(csvPath, ";", "UTF-8", "1"); + wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("button-cancel-csv-import"))); + + assertThat(driver.findElement(By.id("csv-file-name")).getText()).isEqualTo("three_entries.csv"); + + fillColumnSettings(1, "", 2, 3, "", ",",2); + + wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#decimalSeparator.invalid"))); + + assertThat(driver.findElement(By.cssSelector("#decimalSeparator.invalid"))).isNotNull(); + } + @Test void test_upload_valid() { @@ -268,7 +314,7 @@ void test_upload_valid_parseErrors() assertThat(driver.findElement(By.id("csv-file-name")).getText()).isEqualTo("three_entries.csv"); - fillColumnSettings(1, "dd.MM.yyyy", 2, 3, 2); + fillColumnSettings(1, "dd.MM.yyyy", 2, 3, ".", ",",2); wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("button-confirm-csv-column-settings"))); @@ -494,7 +540,7 @@ private void uploadAndSetColumnSettings() assertThat(columns.get(1).getText()).isEqualTo("Lorem"); assertThat(columns.get(2).getText()).isEqualTo("50.00"); - fillColumnSettings(1, "dd.MM.yyyy", 2, 3, 2); + fillColumnSettings(1, "dd.MM.yyyy", 2, 3, ".", ",",2); wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("button-confirm-csv-column-settings"))); @@ -519,7 +565,7 @@ private void uploadCsv(String csvPath, String separator, String encoding, String driver.findElement(By.id("button-confirm-csv-import")).click(); } - private void fillColumnSettings(int columnDate, String datePattern, int columnName, int columnAmount, int columnDescription) + private void fillColumnSettings(int columnDate, String datePattern, int columnName, int columnAmount, String decimalSeparator, String groupingSeparator, int columnDescription) { final WebElement columnDateInput = driver.findElement(By.name("columnDate")); columnDateInput.clear(); @@ -537,6 +583,14 @@ private void fillColumnSettings(int columnDate, String datePattern, int columnNa columnAmountInput.clear(); columnAmountInput.sendKeys(String.valueOf(columnAmount)); + final WebElement decimalSeparatorInput = driver.findElement(By.name("decimalSeparator")); + decimalSeparatorInput.clear(); + decimalSeparatorInput.sendKeys(String.valueOf(decimalSeparator)); + + final WebElement groupingSeparatorInput = driver.findElement(By.name("groupingSeparator")); + groupingSeparatorInput.clear(); + groupingSeparatorInput.sendKeys(String.valueOf(groupingSeparator)); + final WebElement columnDescriptionInput = driver.findElement(By.name("columnDescription")); columnDescriptionInput.clear(); columnDescriptionInput.sendKeys(String.valueOf(columnDescription));