Skip to content

Commit 3cf6a8e

Browse files
committed
allow setting the prompt
1 parent 420482a commit 3cf6a8e

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package de.cotto.bitbook.cli;
2+
3+
public interface PromptChangeListener {
4+
void changePrompt(String newState);
5+
6+
void changePromptToDefault();
7+
}

cli/src/main/java/de/cotto/bitbook/cli/CustomPromptProvider.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,27 @@
66
import org.springframework.stereotype.Component;
77

88
@Component
9-
public class CustomPromptProvider implements PromptProvider {
9+
public class CustomPromptProvider implements PromptProvider, PromptChangeListener {
10+
private static final String DEFAULT_PROMPT = "BitBook$ ";
11+
12+
private String prompt = DEFAULT_PROMPT;
1013

1114
public CustomPromptProvider() {
1215
// default constructor
1316
}
1417

1518
@Override
1619
public AttributedString getPrompt() {
17-
return new AttributedString("BitBook$ ", AttributedStyle.DEFAULT.foreground(AttributedStyle.YELLOW));
20+
return new AttributedString(prompt, AttributedStyle.DEFAULT.foreground(AttributedStyle.YELLOW));
21+
}
22+
23+
@Override
24+
public void changePrompt(String newPrompt) {
25+
prompt = newPrompt;
1826
}
1927

28+
@Override
29+
public void changePromptToDefault() {
30+
changePrompt(DEFAULT_PROMPT);
31+
}
2032
}

cli/src/test/java/de/cotto/bitbook/cli/CustomPromptProviderTest.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,20 @@ class CustomPromptProviderTest {
99
private final CustomPromptProvider customPromptProvider = new CustomPromptProvider();
1010

1111
@Test
12-
void customPrompt_text() {
12+
void default_prompt() {
13+
assertThat(customPromptProvider.getPrompt()).hasToString("BitBook$ ");
14+
}
15+
16+
@Test
17+
void changePrompt() {
18+
customPromptProvider.changePrompt("foo");
19+
assertThat(customPromptProvider.getPrompt()).hasToString("foo");
20+
}
21+
22+
@Test
23+
void changePromptToDefault() {
24+
customPromptProvider.changePrompt("foo");
25+
customPromptProvider.changePromptToDefault();
1326
assertThat(customPromptProvider.getPrompt()).hasToString("BitBook$ ");
1427
}
1528
}

0 commit comments

Comments
 (0)