Don't print a newline before asking i/o questions
This commit is contained in:
parent
10ac4eef29
commit
36cac2f3da
@ -67,7 +67,7 @@ unsigned int IOStreamConsole::ask(const string &question, const vector<string> &
|
||||
if(options.size() == 0) {
|
||||
throw std::invalid_argument("options should have at least one entry");
|
||||
}
|
||||
_output << "\n" << question << "\n";
|
||||
_output << question << "\n";
|
||||
for (unsigned int i = 0; i < options.size(); ++i) {
|
||||
_output << " [" << (i+1) << "] " << options[i] << "\n";
|
||||
}
|
||||
@ -90,7 +90,7 @@ function<optional<bool>(const string &input)> parseYesNo() {
|
||||
}
|
||||
|
||||
bool IOStreamConsole::askYesNo(const string &question) {
|
||||
_output << "\n" << question << "\n";
|
||||
_output << question << "\n";
|
||||
return _askForChoice("Your choice [y/n]: ", parseYesNo());
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,6 @@ TEST_F(ConsoleTest_Ask, CrashesWithoutOptions) {
|
||||
TEST_F(ConsoleTest_Ask, OneOption) {
|
||||
auto chosen = ask("My Question?", {"First Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] First Option"
|
||||
});
|
||||
@ -32,7 +31,6 @@ TEST_F(ConsoleTest_Ask, OneOption) {
|
||||
TEST_F(ConsoleTest_Ask, TwoOptions_ChooseFirst) {
|
||||
auto chosen = ask("My Question?", {"First Option", "Second Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] First Option",
|
||||
" [2] Second Option"
|
||||
@ -45,7 +43,6 @@ TEST_F(ConsoleTest_Ask, TwoOptions_ChooseFirst) {
|
||||
TEST_F(ConsoleTest_Ask, TwoOptions_ChooseSecond) {
|
||||
auto chosen = ask("My Question?", {"First Option", "Second Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] First Option",
|
||||
" [2] Second Option"
|
||||
@ -58,7 +55,6 @@ TEST_F(ConsoleTest_Ask, TwoOptions_ChooseSecond) {
|
||||
TEST_F(ConsoleTest_Ask, ThreeOptions_ChooseFirst) {
|
||||
auto chosen = ask("My Other Question?", {"1st Option", "2nd Option", "3rd Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Other Question?",
|
||||
" [1] 1st Option",
|
||||
" [2] 2nd Option",
|
||||
@ -72,7 +68,6 @@ TEST_F(ConsoleTest_Ask, ThreeOptions_ChooseFirst) {
|
||||
TEST_F(ConsoleTest_Ask, ThreeOptions_ChooseSecond) {
|
||||
auto chosen = ask("My Question?", {"1st Option", "2nd Option", "3rd Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] 1st Option",
|
||||
" [2] 2nd Option",
|
||||
@ -86,7 +81,6 @@ TEST_F(ConsoleTest_Ask, ThreeOptions_ChooseSecond) {
|
||||
TEST_F(ConsoleTest_Ask, ThreeOptions_ChooseThird) {
|
||||
auto chosen = ask("My Question?", {"1st Option", "2nd Option", "3rd Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] 1st Option",
|
||||
" [2] 2nd Option",
|
||||
@ -100,7 +94,6 @@ TEST_F(ConsoleTest_Ask, ThreeOptions_ChooseThird) {
|
||||
TEST_F(ConsoleTest_Ask, InputWithLeadingSpaces) {
|
||||
auto chosen = ask("My Question?", {"First Option", "Second Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] First Option",
|
||||
" [2] Second Option"
|
||||
@ -113,7 +106,6 @@ TEST_F(ConsoleTest_Ask, InputWithLeadingSpaces) {
|
||||
TEST_F(ConsoleTest_Ask, InputWithFollowingSpaces) {
|
||||
auto chosen = ask("My Question?", {"First Option", "Second Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] First Option",
|
||||
" [2] Second Option"
|
||||
@ -126,7 +118,6 @@ TEST_F(ConsoleTest_Ask, InputWithFollowingSpaces) {
|
||||
TEST_F(ConsoleTest_Ask, InputWithLeadingAndFollowingSpaces) {
|
||||
auto chosen = ask("My Question?", {"First Option", "Second Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] First Option",
|
||||
" [2] Second Option"
|
||||
@ -139,7 +130,6 @@ TEST_F(ConsoleTest_Ask, InputWithLeadingAndFollowingSpaces) {
|
||||
TEST_F(ConsoleTest_Ask, InputEmptyLine) {
|
||||
auto chosen = ask("My Question?", {"First Option", "Second Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] First Option",
|
||||
" [2] Second Option"
|
||||
@ -156,7 +146,6 @@ TEST_F(ConsoleTest_Ask, InputEmptyLine) {
|
||||
TEST_F(ConsoleTest_Ask, InputWrongNumbers) {
|
||||
auto chosen = ask("My Question?", {"1st Option", "2nd Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] 1st Option",
|
||||
" [2] 2nd Option",
|
||||
@ -179,7 +168,6 @@ TEST_F(ConsoleTest_Ask, InputWrongNumbers) {
|
||||
TEST_F(ConsoleTest_Ask, InputNonNumbers) {
|
||||
auto chosen = ask("My Question?", {"1st Option", "2nd Option"});
|
||||
EXPECT_OUTPUT_LINES({
|
||||
"",
|
||||
"My Question?",
|
||||
" [1] 1st Option",
|
||||
" [2] 2nd Option",
|
||||
|
@ -14,7 +14,7 @@ public:
|
||||
|
||||
void EXPECT_RESULT_ON_INPUT(const bool expected, const string &input) {
|
||||
auto chosen = askYesNo("Are you sure blablub?");
|
||||
EXPECT_OUTPUT_LINES({"", "Are you sure blablub?"});
|
||||
EXPECT_OUTPUT_LINES({"Are you sure blablub?"});
|
||||
EXPECT_OUTPUT_LINE("Your choice [y/n]", ':', " ");
|
||||
sendInputLine(input);
|
||||
EXPECT_EQ(expected, chosen.get());
|
||||
@ -67,7 +67,7 @@ TEST_F(ConsoleTest_AskYesNo, InputWithLeadingAndFollowingSpaces) {
|
||||
|
||||
TEST_F(ConsoleTest_AskYesNo, InputEmptyLine) {
|
||||
auto chosen = askYesNo("My Question?");
|
||||
EXPECT_OUTPUT_LINES({"", "My Question?"});
|
||||
EXPECT_OUTPUT_LINES({"My Question?"});
|
||||
EXPECT_OUTPUT_LINE("Your choice [y/n]", ':', " ");
|
||||
sendInputLine("");
|
||||
EXPECT_OUTPUT_LINE("Your choice [y/n]", ':', " ");
|
||||
@ -79,7 +79,7 @@ TEST_F(ConsoleTest_AskYesNo, InputEmptyLine) {
|
||||
|
||||
TEST_F(ConsoleTest_AskYesNo, WrongInput) {
|
||||
auto chosen = askYesNo("My Question?");
|
||||
EXPECT_OUTPUT_LINES({"", "My Question?"});
|
||||
EXPECT_OUTPUT_LINES({"My Question?"});
|
||||
EXPECT_OUTPUT_LINE("Your choice [y/n]", ':', " ");
|
||||
sendInputLine("0");
|
||||
EXPECT_OUTPUT_LINE("Your choice [y/n]", ':', " ");
|
||||
|
Loading…
Reference in New Issue
Block a user