beryx / text-io

A library for creating interactive console applications in Java
http://text-io.beryx.org/
Apache License 2.0
342 stars 45 forks source link

MockTextTerminal strips out new lines #35

Open cdprete opened 2 years ago

cdprete commented 2 years ago

On calling org.beryx.textio.mock.MockTextTerminal#getOutput the returned string has all the new lines and leading/trailing spaces removed because org.beryx.textio.mock.MockTextTerminal#stripAll is called on the stored string before returning it.

Given that the output is joined using the new line as separator, I assume this has been done in order to have a uniform and linear output. Unfortunately, this doesn't allow to test certain scenarios, like "Does the output ends with a new line?".

In my opinion, stripping should be an option that the consumer of the class can decide to use or not. A simple overload of getOutput() with a boolean flag would be enough :)