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 }