tdd-java-demo
tdd java demo with micro-commits
git clone https://9o.is/git/tdd-java-demo.git
CreateBasketView.java
(957B)
1 package takehome.view;
2
3 import takehome.model.Basket;
4 import takehome.model.Item;
5
6 import java.io.PrintStream;
7 import java.util.HashMap;
8 import java.util.Map;
9 import java.util.Scanner;
10
11 public class CreateBasketView {
12 private final Scanner in;
13 private final PrintStream out;
14
15 public CreateBasketView(Scanner in, PrintStream out) {
16 this.in = in;
17 this.out = out;
18 }
19
20 public Basket apply(Item[] items) {
21 return new Basket(getItemAmounts(items));
22 }
23
24 private Map<Item, Integer> getItemAmounts(Item[] items) {
25 Map<Item, Integer> amounts = new HashMap<>();
26 for (Item item : items) {
27 int amount = getItemAmount(item);
28 amounts.put(item, amount);
29 }
30 return amounts;
31 }
32
33 private int getItemAmount(Item item) {
34 out.print("How much " + item.getName() + "? ");
35 int amount = in.nextInt();
36 out.println();
37 return amount;
38 }
39 }