Test terminal can set dimensions
- ShellTest now has fields which can be used to change terminal default widht/height. - Backed by properties so can be used with `spring.shell.test.terminal-width` and `spring.shell.test.terminal-height`. - Fixes #656
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2022 the original author or authors.
|
||||
* Copyright 2022-2023 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.shell.test.autoconfigure.app.ExampleShellApplication;
|
||||
import org.springframework.shell.test.jediterm.terminal.ui.TerminalSession;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -30,15 +31,25 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
*
|
||||
* @author Janne Valkealahti
|
||||
*/
|
||||
@ShellTest(properties = "spring.profiles.active=test")
|
||||
@ShellTest(properties = { "spring.profiles.active=test", "spring.shell.test.terminal-width=81",
|
||||
"spring.shell.test.terminal-height=25" })
|
||||
@ContextConfiguration(classes = ExampleShellApplication.class)
|
||||
public class ShellTestPropertiesIntegrationTests {
|
||||
|
||||
@Autowired
|
||||
private Environment environment;
|
||||
|
||||
@Autowired
|
||||
private TerminalSession session;
|
||||
|
||||
@Test
|
||||
void environmentWithNewProfile() {
|
||||
assertThat(this.environment.getActiveProfiles()).containsExactly("test");
|
||||
}
|
||||
|
||||
@Test
|
||||
void dimensionsSet() {
|
||||
assertThat(session.getTerminal().getTerminalWidth()).isEqualTo(81);
|
||||
assertThat(session.getTerminal().getTerminalHeight()).isEqualTo(25);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2023 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.shell.test.autoconfigure;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.shell.test.autoconfigure.app.ExampleShellApplication;
|
||||
import org.springframework.shell.test.jediterm.terminal.ui.TerminalSession;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@ShellTest(terminalWidth = 81, terminalHeight = 25)
|
||||
@ContextConfiguration(classes = ExampleShellApplication.class)
|
||||
class ShellTestTerminalDimensionsIntegrationTests {
|
||||
|
||||
@Autowired
|
||||
private TerminalSession session;
|
||||
|
||||
@Test
|
||||
void dimensionsSet() {
|
||||
assertThat(session.getTerminal().getTerminalWidth()).isEqualTo(81);
|
||||
assertThat(session.getTerminal().getTerminalHeight()).isEqualTo(25);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright 2023 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.shell.test.autoconfigure;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class SpringShellTestPropertiesTests {
|
||||
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner();
|
||||
|
||||
@Test
|
||||
public void defaultNoPropertiesSet() {
|
||||
this.contextRunner
|
||||
.withUserConfiguration(Config1.class)
|
||||
.run((context) -> {
|
||||
SpringShellTestProperties properties = context.getBean(SpringShellTestProperties.class);
|
||||
assertThat(properties.getTerminalWidth()).isEqualTo(80);
|
||||
assertThat(properties.getTerminalHeight()).isEqualTo(24);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setProperties() {
|
||||
this.contextRunner
|
||||
.withPropertyValues("spring.shell.test.terminal-width=81")
|
||||
.withPropertyValues("spring.shell.test.terminal-height=25")
|
||||
.withUserConfiguration(Config1.class)
|
||||
.run((context) -> {
|
||||
SpringShellTestProperties properties = context.getBean(SpringShellTestProperties.class);
|
||||
assertThat(properties.getTerminalWidth()).isEqualTo(81);
|
||||
assertThat(properties.getTerminalHeight()).isEqualTo(25);
|
||||
});
|
||||
}
|
||||
|
||||
@EnableConfigurationProperties({ SpringShellTestProperties.class })
|
||||
private static class Config1 {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user