Skip to content
Snippets Groups Projects
Commit a179eb1f authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#696 - added tests for BackupSettingsContainer update method

parent c3e3ac4f
No related branches found
No related tags found
No related merge requests found
...@@ -2,10 +2,15 @@ package de.deadlocker8.budgetmaster.unit.settings.containers; ...@@ -2,10 +2,15 @@ package de.deadlocker8.budgetmaster.unit.settings.containers;
import de.deadlocker8.budgetmaster.backup.AutoBackupStrategy; import de.deadlocker8.budgetmaster.backup.AutoBackupStrategy;
import de.deadlocker8.budgetmaster.backup.AutoBackupTime; 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.settings.containers.BackupSettingsContainer;
import de.deadlocker8.budgetmaster.unit.helpers.LocalizedTest; import de.deadlocker8.budgetmaster.unit.helpers.LocalizedTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; 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.test.context.junit.jupiter.SpringExtension;
import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.Errors; import org.springframework.validation.Errors;
...@@ -20,6 +25,9 @@ import static org.assertj.core.api.Assertions.assertThat; ...@@ -20,6 +25,9 @@ import static org.assertj.core.api.Assertions.assertThat;
@LocalizedTest @LocalizedTest
class BackupSettingsContainerTest class BackupSettingsContainerTest
{ {
@Mock
private SettingsService settingsService;
@Test @Test
void test_validate_valid() void test_validate_valid()
{ {
...@@ -121,4 +129,110 @@ class BackupSettingsContainerTest ...@@ -121,4 +129,110 @@ class BackupSettingsContainerTest
assertThat(finalErrors.get(0)) assertThat(finalErrors.get(0))
.hasFieldOrPropertyWithValue("field", "autoBackupGitToken"); .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", "");
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment