package com.constellio.app.services.recovery;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import com.constellio.sdk.tests.ConstellioTest;
import com.sun.star.uno.RuntimeException;
public class UpgradeAppRecoveryConfigManagerAcceptanceTest extends ConstellioTest {
UpgradeAppRecoveryConfigManager upgradeAppRecoveryConfigManager;
@Before
public void setUp()
throws Exception {
upgradeAppRecoveryConfigManager = new UpgradeAppRecoveryConfigManager(getDataLayerFactory().getConfigManager());
}
@Test
public void whenOnVersionUploadedCorrectlyThenBehavesAsExpected() {
upgradeAppRecoveryConfigManager.onVersionUploadedCorrectly(new ConstellioVersionInfo("zeVersion", "zeVersionPath"), new ConstellioVersionInfo("", ""));
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersion()).isEqualTo("zeVersion");
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersionDirectoryPath()).isEqualTo("zeVersionPath");
assertThat(upgradeAppRecoveryConfigManager.getLastVersionCausingExceptionDirectoryPath()).isEqualTo("");
assertThat(upgradeAppRecoveryConfigManager.getUpgradeException()).isEqualTo("");
}
@Test
public void whenOnVersionMigratedCorrectlyThenBehavesAsExpected() {
upgradeAppRecoveryConfigManager.onVersionUploadedCorrectly(new ConstellioVersionInfo("", ""), new ConstellioVersionInfo("zeVersion", "zeVersionPath"));
upgradeAppRecoveryConfigManager.onVersionMigratedCorrectly();
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersion()).isEqualTo("zeVersion");
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersionDirectoryPath()).isEqualTo("zeVersionPath");
assertThat(upgradeAppRecoveryConfigManager.getLastVersionCausingExceptionDirectoryPath()).isEqualTo("");
assertThat(upgradeAppRecoveryConfigManager.getUpgradeException()).isEqualTo("");
}
@Test
public void whenOnVersionMigratedWithExceptionThenBehavesAsExpected() {
upgradeAppRecoveryConfigManager.onVersionMigratedWithException(new Throwable("aa"));
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersion()).isEqualTo("");
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersionDirectoryPath()).isEqualTo("");
assertThat(upgradeAppRecoveryConfigManager.getLastVersionCausingExceptionDirectoryPath()).isEqualTo("");
assertThat(upgradeAppRecoveryConfigManager.getUpgradeException()).contains("java.lang.Throwable: aa");
}
@Test
public void givenPreviousPropertiesOnVersionUploadedCorrectlyThenBehavesAsExpected() {
populateManagerProperties();
upgradeAppRecoveryConfigManager.onVersionUploadedCorrectly(new ConstellioVersionInfo("zeVersion", "zeVersionPath"), new ConstellioVersionInfo("", ""));
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersion()).isEqualTo("zeVersion");
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersionDirectoryPath()).isEqualTo("zeVersionPath");
assertThat(upgradeAppRecoveryConfigManager.getLastVersionCausingExceptionDirectoryPath()).isEqualTo("");
assertThat(upgradeAppRecoveryConfigManager.getUpgradeException()).isEqualTo("");
}
@Test
public void givenPreviousPropertiesOnVersionMigratedCorrectlyThenBehavesAsExpected() {
populateManagerProperties();
upgradeAppRecoveryConfigManager.onVersionUploadedCorrectly(new ConstellioVersionInfo("", ""), new ConstellioVersionInfo("zeVersion", "zeVersionPath"));
upgradeAppRecoveryConfigManager.onVersionMigratedCorrectly();
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersion()).isEqualTo("zeVersion");
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersionDirectoryPath()).isEqualTo("zeVersionPath");
assertThat(upgradeAppRecoveryConfigManager.getLastVersionCausingExceptionDirectoryPath()).isEqualTo("");
assertThat(upgradeAppRecoveryConfigManager.getUpgradeException()).isEqualTo("");
}
@Test
public void givenPreviousPropertiesOnVersionMigratedWithExceptionThenBehavesAsExpected() {
upgradeAppRecoveryConfigManager.onVersionUploadedCorrectly(new ConstellioVersionInfo("versionCorrect", "versionCorrectPath"), new ConstellioVersionInfo("zeVersion", "zeVersionPath"));
upgradeAppRecoveryConfigManager.onVersionMigratedWithException(new Throwable("aa"));
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersion()).isEqualTo("versionCorrect");
assertThat(upgradeAppRecoveryConfigManager.getLastValidVersionDirectoryPath()).isEqualTo("versionCorrectPath");
assertThat(upgradeAppRecoveryConfigManager.getLastVersionCausingExceptionDirectoryPath()).isEqualTo("zeVersionPath");
assertThat(upgradeAppRecoveryConfigManager.getUpgradeException()).contains("java.lang.Throwable: aa");
}
private void populateManagerProperties() {
upgradeAppRecoveryConfigManager.onVersionUploadedCorrectly(new ConstellioVersionInfo("versionCorrect", "versionCorrectPath"),
new ConstellioVersionInfo("", "versionBadPath"));
upgradeAppRecoveryConfigManager.onVersionMigratedCorrectly();
upgradeAppRecoveryConfigManager.onVersionMigratedWithException(new RuntimeException("badVersion"));
}
}