diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/settings/containers/BackupSettingsContainerTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/settings/containers/BackupSettingsContainerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..9c596899a35d4146fe5bbae3f39b0228bb45c9fd --- /dev/null +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/settings/containers/BackupSettingsContainerTest.java @@ -0,0 +1,124 @@ +package de.deadlocker8.budgetmaster.unit.settings.containers; + +import de.deadlocker8.budgetmaster.backup.AutoBackupStrategy; +import de.deadlocker8.budgetmaster.backup.AutoBackupTime; +import de.deadlocker8.budgetmaster.settings.containers.BackupSettingsContainer; +import de.deadlocker8.budgetmaster.unit.helpers.LocalizedTest; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.validation.BeanPropertyBindingResult; +import org.springframework.validation.Errors; +import org.springframework.validation.ObjectError; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + + +@ExtendWith(SpringExtension.class) +@LocalizedTest +class BackupSettingsContainerTest +{ + @Test + void test_validate_valid() + { + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.LOCAL.getName(), 5, AutoBackupTime.TIME_03.name(), 2, null, null, null, null); + + final Errors errors = new BeanPropertyBindingResult(container, "container"); + container.validate(errors); + + assertThat(errors.getAllErrors()) + .isEmpty(); + } + + @Test + void test_validate_daysIsNull() + { + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.LOCAL.getName(), null, AutoBackupTime.TIME_03.name(), 2, null, null, null, null); + + final Errors errors = new BeanPropertyBindingResult(container, "container"); + container.validate(errors); + + final List<ObjectError> finalErrors = errors.getAllErrors(); + assertThat(finalErrors) + .hasSize(1); + assertThat(finalErrors.get(0)) + .hasFieldOrPropertyWithValue("field", "autoBackupDays"); + } + + @Test + void test_validate_autoBackupFilesToKeepIsNull() + { + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.LOCAL.getName(), 5, AutoBackupTime.TIME_03.name(), null, null, null, null, null); + + final Errors errors = new BeanPropertyBindingResult(container, "container"); + container.validate(errors); + + final List<ObjectError> finalErrors = errors.getAllErrors(); + assertThat(finalErrors) + .hasSize(1); + assertThat(finalErrors.get(0)) + .hasFieldOrPropertyWithValue("field", "autoBackupFilesToKeep"); + } + + @Test + void test_validate_gitBackup_autoBackupGitUrlIsNull() + { + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.GIT_REMOTE.getName(), 5, AutoBackupTime.TIME_03.name(), null, null, "master", "me", "superSecret"); + + final Errors errors = new BeanPropertyBindingResult(container, "container"); + container.validate(errors); + + final List<ObjectError> finalErrors = errors.getAllErrors(); + assertThat(finalErrors) + .hasSize(1); + assertThat(finalErrors.get(0)) + .hasFieldOrPropertyWithValue("field", "autoBackupGitUrl"); + } + + @Test + void test_validate_gitBackup_autoBackupGitBranchNameIsNull() + { + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.GIT_REMOTE.getName(), 5, AutoBackupTime.TIME_03.name(), null, "http://repo:12345", null, "me", "superSecret"); + + final Errors errors = new BeanPropertyBindingResult(container, "container"); + container.validate(errors); + + final List<ObjectError> finalErrors = errors.getAllErrors(); + assertThat(finalErrors) + .hasSize(1); + assertThat(finalErrors.get(0)) + .hasFieldOrPropertyWithValue("field", "autoBackupGitBranchName"); + } + + @Test + void test_validate_gitBackup_autoBackupGitUserNameIsNull() + { + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.GIT_REMOTE.getName(), 5, AutoBackupTime.TIME_03.name(), null, "http://repo:12345", "master", null, "superSecret"); + + final Errors errors = new BeanPropertyBindingResult(container, "container"); + container.validate(errors); + + final List<ObjectError> finalErrors = errors.getAllErrors(); + assertThat(finalErrors) + .hasSize(1); + assertThat(finalErrors.get(0)) + .hasFieldOrPropertyWithValue("field", "autoBackupGitUserName"); + } + + @Test + void test_validate_gitBackup_autoBackupGitTokenIsNull() + { + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.GIT_REMOTE.getName(), 5, AutoBackupTime.TIME_03.name(), null, "http://repo:12345", "master", "me", null); + + final Errors errors = new BeanPropertyBindingResult(container, "container"); + container.validate(errors); + + final List<ObjectError> finalErrors = errors.getAllErrors(); + assertThat(finalErrors) + .hasSize(1); + assertThat(finalErrors.get(0)) + .hasFieldOrPropertyWithValue("field", "autoBackupGitToken"); + } +}