diff --git a/spring-shell-autoconfigure/src/main/java/org/springframework/shell/boot/ShellRunnerAutoConfiguration.java b/spring-shell-autoconfigure/src/main/java/org/springframework/shell/boot/ShellRunnerAutoConfiguration.java index fad79720e..83d69fcde 100644 --- a/spring-shell-autoconfigure/src/main/java/org/springframework/shell/boot/ShellRunnerAutoConfiguration.java +++ b/spring-shell-autoconfigure/src/main/java/org/springframework/shell/boot/ShellRunnerAutoConfiguration.java @@ -61,7 +61,7 @@ public static class NonePrimaryCommandConfiguration { @Bean @ConditionalOnProperty(prefix = "spring.shell.interactive", value = "enabled", havingValue = "true", - matchIfMissing = false) + matchIfMissing = true) public InteractiveShellRunner interactiveApplicationRunner(LineReader lineReader, PromptProvider promptProvider, Shell shell, ShellContext shellContext) { return new InteractiveShellRunner(lineReader, promptProvider, shell, shellContext); @@ -69,7 +69,7 @@ public InteractiveShellRunner interactiveApplicationRunner(LineReader lineReader @Bean @ConditionalOnProperty(prefix = "spring.shell.noninteractive", value = "enabled", havingValue = "true", - matchIfMissing = true) + matchIfMissing = false) public NonInteractiveShellRunner nonInteractiveApplicationRunner(Shell shell, ShellContext shellContext, ObjectProvider customizer) { NonInteractiveShellRunner shellRunner = new NonInteractiveShellRunner(shell, shellContext); diff --git a/spring-shell-autoconfigure/src/test/java/org/springframework/shell/boot/ShellRunnerAutoConfigurationTests.java b/spring-shell-autoconfigure/src/test/java/org/springframework/shell/boot/ShellRunnerAutoConfigurationTests.java index 375eaca1c..af1b60d70 100644 --- a/spring-shell-autoconfigure/src/test/java/org/springframework/shell/boot/ShellRunnerAutoConfigurationTests.java +++ b/spring-shell-autoconfigure/src/test/java/org/springframework/shell/boot/ShellRunnerAutoConfigurationTests.java @@ -56,8 +56,8 @@ class ShellRunnerAutoConfigurationTests { class Interactive { @Test - void disabledByDefault() { - contextRunner.run(context -> assertThat(context).doesNotHaveBean(InteractiveShellRunner.class)); + void enabledByDefault() { + contextRunner.run(context -> assertThat(context).hasSingleBean(InteractiveShellRunner.class)); } @Test @@ -71,14 +71,9 @@ void disabledWhenPropertySet() { @Nested class NonInteractive { - @Test - void enabledByDefault() { - contextRunner.run(context -> assertThat(context).hasSingleBean(NonInteractiveShellRunner.class)); - } - @Test void primaryCommandNotSet() { - contextRunner.run(context -> { + contextRunner.withPropertyValues("spring.shell.noninteractive.enabled:true").run(context -> { assertThat(context).hasSingleBean(NonInteractiveShellRunner.class); NonInteractiveShellRunner runner = context.getBean(NonInteractiveShellRunner.class); String command = (String) ReflectionTestUtils.getField(runner, "primaryCommand"); @@ -86,6 +81,11 @@ void primaryCommandNotSet() { }); } + @Test + void disabledByDefault() { + contextRunner.run(context -> assertThat(context).doesNotHaveBean(NonInteractiveShellRunner.class)); + } + @Test void disabledWhenPropertySet() { contextRunner.withPropertyValues("spring.shell.noninteractive.enabled:false") @@ -95,10 +95,12 @@ void disabledWhenPropertySet() { @Test void canBeCustomized() { NonInteractiveShellRunnerCustomizer customizer = mock(NonInteractiveShellRunnerCustomizer.class); - contextRunner.withBean(NonInteractiveShellRunnerCustomizer.class, () -> customizer).run(context -> { - NonInteractiveShellRunner runner = context.getBean(NonInteractiveShellRunner.class); - verify(customizer).customize(runner); - }); + contextRunner.withPropertyValues("spring.shell.noninteractive.enabled:true") + .withBean(NonInteractiveShellRunnerCustomizer.class, () -> customizer) + .run(context -> { + NonInteractiveShellRunner runner = context.getBean(NonInteractiveShellRunner.class); + verify(customizer).customize(runner); + }); } }