diff --git a/scm-webapp/src/test/java/sonia/scm/cli/VersionCommandTest.java b/scm-webapp/src/test/java/sonia/scm/cli/VersionCommandTest.java index b055a5fc64..1821146c1a 100644 --- a/scm-webapp/src/test/java/sonia/scm/cli/VersionCommandTest.java +++ b/scm-webapp/src/test/java/sonia/scm/cli/VersionCommandTest.java @@ -31,10 +31,10 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import sonia.scm.SCMContextProvider; -import java.io.PrintWriter; -import java.io.StringWriter; - import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) @@ -42,6 +42,8 @@ class VersionCommandTest { @Mock private CliContext context; + @Mock + private TemplateRenderer templateRenderer; @Mock private SCMContextProvider scmContextProvider; @@ -51,17 +53,18 @@ class VersionCommandTest { @Test void shouldPrintVersions() { - String userAgent = "scm-cli/1.0.0 (a1b2c3d; 2022-04-04T12:33:13Z)"; - StringWriter writer = new StringWriter(); - when(context.getStdout()).thenReturn(new PrintWriter(writer)); -// when(context.getUserAgent()).thenReturn(userAgent); + when(context.getClient()).thenReturn(new Client("scm-cli", "1.0.0")); when(scmContextProvider.getVersion()).thenReturn("2.33.0"); command.run(); - assertThat(writer.toString()).contains( - "Client version: 1.0.0\n" + - "Server version: 2.33.0" - ); + verify(templateRenderer).renderToStdout(anyString(), argThat(map -> { + assertThat(map.get("client")).isInstanceOf(Client.class); + assertThat(((Client)map.get("client")).getName()).isEqualTo("scm-cli"); + assertThat(((Client)map.get("client")).getVersion()).isEqualTo("1.0.0"); + assertThat(map.get("server")).isInstanceOf(VersionCommand.Server.class); + assertThat(((VersionCommand.Server)map.get("server")).getVersion()).isEqualTo("2.33.0"); + return true; + })); } }