mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-06-17 16:40:46 +02:00
display error on startup, if previous version is older than 1.60
This commit is contained in:
@@ -50,6 +50,18 @@ class SingleViewTest {
|
||||
guiceFilter.destroy();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldCreateViewControllerForView() {
|
||||
ServletContextListener listener = SingleView.view("/my-template", 409);
|
||||
when(request.getContextPath()).thenReturn("/scm");
|
||||
|
||||
ViewController instance = findViewController(listener);
|
||||
assertThat(instance.getTemplate()).isEqualTo("/my-template");
|
||||
|
||||
View view = instance.createView(request);
|
||||
assertThat(view.getStatusCode()).isEqualTo(409);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldCreateViewControllerForError() {
|
||||
ServletContextListener listener = SingleView.error(new IOException("awesome io"));
|
||||
|
||||
86
scm-webapp/src/test/java/sonia/scm/boot/VersionsTest.java
Normal file
86
scm-webapp/src/test/java/sonia/scm/boot/VersionsTest.java
Normal file
@@ -0,0 +1,86 @@
|
||||
package sonia.scm.boot;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junitpioneer.jupiter.TempDirectory;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import sonia.scm.SCMContextProvider;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
|
||||
@ExtendWith({MockitoExtension.class, TempDirectory.class})
|
||||
class VersionsTest {
|
||||
|
||||
@Mock
|
||||
private SCMContextProvider contextProvider;
|
||||
|
||||
@InjectMocks
|
||||
private Versions versions;
|
||||
|
||||
@Test
|
||||
void shouldReturnTrueForVersionsPreviousTo160(@TempDirectory.TempDir Path directory) throws IOException {
|
||||
setVersion(directory, "1.59");
|
||||
assertThat(versions.isPreviousVersionToOld()).isTrue();
|
||||
|
||||
setVersion(directory, "1.12");
|
||||
assertThat(versions.isPreviousVersionToOld()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnFalseForVersion160(@TempDirectory.TempDir Path directory) throws IOException {
|
||||
setVersion(directory, "1.60");
|
||||
assertThat(versions.isPreviousVersionToOld()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldNotFailIfVersionContainsLineBreak(@TempDirectory.TempDir Path directory) throws IOException {
|
||||
setVersion(directory, "1.59\n");
|
||||
assertThat(versions.isPreviousVersionToOld()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnFalseForVersionsNewerAs160(@TempDirectory.TempDir Path directory) throws IOException {
|
||||
setVersion(directory, "1.61");
|
||||
assertThat(versions.isPreviousVersionToOld()).isFalse();
|
||||
|
||||
setVersion(directory, "1.82");
|
||||
assertThat(versions.isPreviousVersionToOld()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnFalseForNonExistingVersionFile(@TempDirectory.TempDir Path directory) {
|
||||
setVersionFile(directory.resolve("version.txt"));
|
||||
assertThat(versions.isPreviousVersionToOld()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldWriteNewVersion(@TempDirectory.TempDir Path directory) {
|
||||
Path config = directory.resolve("config");
|
||||
doReturn(config).when(contextProvider).resolve(Paths.get("config"));
|
||||
doReturn("2.0.0").when(contextProvider).getVersion();
|
||||
|
||||
versions.writeNewVersion();
|
||||
|
||||
Path versionFile = config.resolve("version.txt");
|
||||
assertThat(versionFile).exists().hasContent("2.0.0");
|
||||
}
|
||||
|
||||
private void setVersion(Path directory, String version) throws IOException {
|
||||
Path file = directory.resolve("version.txt");
|
||||
Files.write(file, version.getBytes(StandardCharsets.UTF_8));
|
||||
setVersionFile(file);
|
||||
}
|
||||
|
||||
private void setVersionFile(Path file) {
|
||||
doReturn(file).when(contextProvider).resolve(Paths.get("config", "version.txt"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user