tdd-java-demo

tdd java demo with micro-commits

git clone https://9o.is/git/tdd-java-demo.git

commit 15d826ef712154be07e35ca607f75db1349e2405
parent 9efc6c7e6833e227cd988d6ed90ffd751b62812e
Author: Jul <jul@9o.is>
Date:   Wed, 31 Mar 2021 15:40:38 +0800

outputs total of $0.65 for one soup

Diffstat:
Msrc/main/java/takehome/Runner.java | 9++++++++-
Msrc/test/java/takehome/RunnerTest.java | 16++++++++++++++--
2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/main/java/takehome/Runner.java b/src/main/java/takehome/Runner.java @@ -3,16 +3,23 @@ package takehome; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; +import java.text.DecimalFormat; +import java.util.Scanner; public class Runner { private final PrintStream out; + private final Scanner in; public Runner(InputStream in, OutputStream out) { this.out = new PrintStream(out); + this.in = new Scanner(in); } public void run() { out.println("How much soup?"); - out.println("Total: $0.00"); + double total = in.nextInt() * 0.65; + + DecimalFormat df = new DecimalFormat("0.00"); + out.println("Total: $" + df.format(total)); } } diff --git a/src/test/java/takehome/RunnerTest.java b/src/test/java/takehome/RunnerTest.java @@ -13,15 +13,27 @@ import static org.hamcrest.Matchers.contains; class RunnerTest { @Test - public void example() { + public void noItems() { assertThat(output(), contains( "How much soup?", "Total: $0.00" )); } + @Test + public void oneSoup() { + assertThat(output("1"), contains( + "How much soup?", + "Total: $0.65" + )); + } + private List<String> output() { - ByteArrayInputStream in = new ByteArrayInputStream("".getBytes()); + return output("0"); + } + + private List<String> output(String input) { + ByteArrayInputStream in = new ByteArrayInputStream(input.getBytes()); ByteArrayOutputStream out = new ByteArrayOutputStream(); new Runner(in, out).run(); return Arrays.asList(out.toString().split("\n"));