From a179eb1fb194591bb08932bfc23cb1cf9d2b161d Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Thu, 14 Jul 2022 19:44:14 +0200 Subject: [PATCH] #696 - added tests for BackupSettingsContainer update method --- .../BackupSettingsContainerTest.java | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) 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 index 9c596899a..c97cef487 100644 --- 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 @@ -2,10 +2,15 @@ package de.deadlocker8.budgetmaster.unit.settings.containers; import de.deadlocker8.budgetmaster.backup.AutoBackupStrategy; import de.deadlocker8.budgetmaster.backup.AutoBackupTime; +import de.deadlocker8.budgetmaster.settings.Settings; +import de.deadlocker8.budgetmaster.settings.SettingsController; +import de.deadlocker8.budgetmaster.settings.SettingsService; 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.mockito.Mock; +import org.mockito.Mockito; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.Errors; @@ -20,6 +25,9 @@ import static org.assertj.core.api.Assertions.assertThat; @LocalizedTest class BackupSettingsContainerTest { + @Mock + private SettingsService settingsService; + @Test void test_validate_valid() { @@ -121,4 +129,110 @@ class BackupSettingsContainerTest assertThat(finalErrors.get(0)) .hasFieldOrPropertyWithValue("field", "autoBackupGitToken"); } + + @Test + void test_updateSettings_backupReminderActivatedIsNull() + { + final Settings defaultSettings = Settings.getDefault(); + + Mockito.when(settingsService.getSettings()).thenReturn(defaultSettings); + + final BackupSettingsContainer container = new BackupSettingsContainer(null, AutoBackupStrategy.LOCAL.getName(), 1, AutoBackupTime.TIME_03.name(), 1, "", "", "", ""); + final Settings updatedSettings = container.updateSettings(settingsService); + + assertThat(updatedSettings.getBackupReminderActivated()).isFalse(); + } + + @Test + void test_updateSettings_autoBackupStrategyIsNull() + { + final Settings defaultSettings = Settings.getDefault(); + + Mockito.when(settingsService.getSettings()).thenReturn(defaultSettings); + + final BackupSettingsContainer container = new BackupSettingsContainer(false, null, 1, AutoBackupTime.TIME_03.name(), 1, "", "", "", ""); + final Settings updatedSettings = container.updateSettings(settingsService); + + assertThat(updatedSettings.getAutoBackupStrategy()).isEqualTo(AutoBackupStrategy.NONE); + } + + @Test + void test_updateSettings_gitRemote() + { + final Settings defaultSettings = Settings.getDefault(); + + Mockito.when(settingsService.getSettings()).thenReturn(defaultSettings); + + final BackupSettingsContainer container = new BackupSettingsContainer(true, AutoBackupStrategy.GIT_REMOTE.getName(), 2, AutoBackupTime.TIME_03.name(), 1, "https://myrepo.git", "master", "bm", "bm0815"); + final Settings updatedSettings = container.updateSettings(settingsService); + + assertThat(updatedSettings) + .hasFieldOrPropertyWithValue("backupReminderActivated", true) + .hasFieldOrPropertyWithValue("autoBackupStrategy", AutoBackupStrategy.GIT_REMOTE) + .hasFieldOrPropertyWithValue("autoBackupDays", 2) + .hasFieldOrPropertyWithValue("autoBackupTime", AutoBackupTime.TIME_03) + .hasFieldOrPropertyWithValue("autoBackupFilesToKeep", 1) + .hasFieldOrPropertyWithValue("autoBackupGitUrl", "https://myrepo.git") + .hasFieldOrPropertyWithValue("autoBackupGitBranchName", "master") + .hasFieldOrPropertyWithValue("autoBackupGitUserName", "bm") + .hasFieldOrPropertyWithValue("autoBackupGitToken", "bm0815"); + } + + @Test + void test_updateSettings_gitTokenIsPlaceholder_keepPasswordFromSavedSettings() + { + final Settings settings = Settings.getDefault(); + settings.setAutoBackupGitToken("SuperSecretDeluxe"); + + Mockito.when(settingsService.getSettings()).thenReturn(settings); + + final BackupSettingsContainer container = new BackupSettingsContainer(true, AutoBackupStrategy.GIT_REMOTE.getName(), 2, AutoBackupTime.TIME_03.name(), 1, "https://myrepo.git", "master", "bm", SettingsController.PASSWORD_PLACEHOLDER); + final Settings updatedSettings = container.updateSettings(settingsService); + + assertThat(updatedSettings.getAutoBackupGitToken()).isEqualTo("SuperSecretDeluxe"); + } + + @Test + void test_updateSettings_localFiles() + { + final Settings defaultSettings = Settings.getDefault(); + + Mockito.when(settingsService.getSettings()).thenReturn(defaultSettings); + + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.LOCAL.getName(), 2, AutoBackupTime.TIME_03.name(), 15, "", "", "", ""); + final Settings updatedSettings = container.updateSettings(settingsService); + + assertThat(updatedSettings) + .hasFieldOrPropertyWithValue("backupReminderActivated", false) + .hasFieldOrPropertyWithValue("autoBackupStrategy", AutoBackupStrategy.LOCAL) + .hasFieldOrPropertyWithValue("autoBackupDays", 2) + .hasFieldOrPropertyWithValue("autoBackupTime", AutoBackupTime.TIME_03) + .hasFieldOrPropertyWithValue("autoBackupFilesToKeep", 15) + .hasFieldOrPropertyWithValue("autoBackupGitUrl", "") + .hasFieldOrPropertyWithValue("autoBackupGitBranchName", "") + .hasFieldOrPropertyWithValue("autoBackupGitUserName", "") + .hasFieldOrPropertyWithValue("autoBackupGitToken", ""); + } + + @Test + void test_updateSettings_none_cleanFields() + { + final Settings defaultSettings = Settings.getDefault(); + + Mockito.when(settingsService.getSettings()).thenReturn(defaultSettings); + + final BackupSettingsContainer container = new BackupSettingsContainer(false, AutoBackupStrategy.NONE.getName(), 2, AutoBackupTime.TIME_03.name(), 1, "https://myrepo.git", "master", "bm", "bm0815"); + final Settings updatedSettings = container.updateSettings(settingsService); + + assertThat(updatedSettings) + .hasFieldOrPropertyWithValue("backupReminderActivated", false) + .hasFieldOrPropertyWithValue("autoBackupStrategy", AutoBackupStrategy.NONE) + .hasFieldOrPropertyWithValue("autoBackupDays", 1) + .hasFieldOrPropertyWithValue("autoBackupTime", AutoBackupTime.TIME_00) + .hasFieldOrPropertyWithValue("autoBackupFilesToKeep", 3) + .hasFieldOrPropertyWithValue("autoBackupGitUrl", "https://myrepo.git") + .hasFieldOrPropertyWithValue("autoBackupGitBranchName", "master") + .hasFieldOrPropertyWithValue("autoBackupGitUserName", "") + .hasFieldOrPropertyWithValue("autoBackupGitToken", ""); + } } -- GitLab