Skip to content

Commit a295834

Browse files
committed
more refactoring removing of public methods; moving methods together as public, private
1 parent b2bff79 commit a295834

File tree

2 files changed

+65
-72
lines changed

2 files changed

+65
-72
lines changed

src/vending/VendingMachine.java

Lines changed: 53 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
public class VendingMachine {
77

8-
Double currentAmount = 0.0;
9-
Double coinReturnAmount = 0.0;
10-
ArrayList<String> returnSlotCoins = new ArrayList<String>();
11-
String display = "";
12-
ArrayList<String> itemBinList = new ArrayList<String>();
13-
ArrayList<String> coinList = new ArrayList<String>();
8+
private Double currentAmount = 0.0;
9+
private Double coinReturnAmount = 0.0;
10+
private ArrayList<String> returnSlotCoins = new ArrayList<String>();
11+
private String display = "";
12+
private ArrayList<String> itemBinList = new ArrayList<String>();
13+
private ArrayList<String> coinList = new ArrayList<String>();
1414
private VendingCalc coinCalc;
1515
private VendItem soda;
1616
private VendItem chips;
@@ -23,12 +23,18 @@ public VendingMachine() {
2323
candy = new Candy();
2424
}
2525

26+
public void update() {
27+
setCurrentAmount(coinCalc.calcTotalAmount());
28+
updateDisplay();
29+
}
30+
2631
public ArrayList<String> returnCoins() {
27-
setCoinReturnAmount(getCurrentAmount());
32+
returnSlotCoins.addAll(coinList);
33+
coinList.removeAll(coinList);
2834
setCurrentAmount(0.00);
35+
updateDisplay();
2936

30-
returnSlotCoins.addAll(coinList);
31-
return coinList;
37+
return returnSlotCoins;
3238
}
3339

3440
public void insertCoin(String coin, double coinAmount) {
@@ -39,91 +45,77 @@ public void insertCoin(String coin, double coinAmount) {
3945
}
4046
}
4147

42-
private void coinAdded(String coin, double coinAmount) {
43-
coinList.add(coin);
44-
coinCalc.insertCoin(coinAmount);
45-
}
46-
47-
private void pennyFallsToReturnSlot(String coin, double coinAmount) {
48-
returnSlotCoins.add(coin);
49-
setCoinReturnAmount(coinAmount);
50-
}
51-
52-
private boolean coinIsPenny(String coin) {
53-
return coin.equals("Penny");
54-
}
55-
56-
public void update() {
57-
setCurrentAmount(coinCalc.calcTotalAmount());
58-
updateDisplay();
59-
}
60-
6148
public void sodaButton() {
62-
itemBinList = soda.vend(itemBinList, getCurrentAmount());
49+
itemBinList = soda.vend(itemBinList, currentAmount);
6350
updateChangeAmount();
6451
}
6552

6653
public void chipsButton() {
67-
itemBinList = chips.vend(itemBinList, getCurrentAmount());
54+
itemBinList = chips.vend(itemBinList, currentAmount);
6855
updateChangeAmount();
6956
}
7057

7158
public void candyButton() {
72-
itemBinList = candy.vend(itemBinList, getCurrentAmount());
59+
itemBinList = candy.vend(itemBinList, currentAmount);
7360
updateChangeAmount();
7461
}
7562

76-
private void updateDisplay() {
77-
NumberFormat nf = NumberFormat.getInstance();
78-
nf.setMinimumFractionDigits(2);
79-
String stringConversion = nf.format(getCurrentAmount());
80-
setDisplay("$" + stringConversion);
81-
}
82-
83-
private void updateChangeAmount() {
84-
if (getCurrentAmount() >= 1.25) {
85-
setCurrentAmount(getCurrentAmount() - 1.25);
86-
}
87-
}
88-
8963
public Double getCoinReturnAmount() {
9064
return coinReturnAmount;
9165
}
9266

93-
public void setCoinReturnAmount(Double coinReturnAmount) {
94-
this.coinReturnAmount = coinReturnAmount;
95-
}
96-
9767
public ArrayList<String> getReturnSlotCoins() {
9868
return returnSlotCoins;
9969
}
10070

101-
public void setReturnSlotCoins(ArrayList<String> returnSlotCoins) {
102-
this.returnSlotCoins = returnSlotCoins;
103-
}
104-
10571
public String display() {
10672
return display;
10773
}
10874

109-
public void setDisplay(String display) {
110-
this.display = display;
111-
}
112-
11375
public ArrayList<String> getItemBinList() {
11476
return itemBinList;
11577
}
11678

117-
public void setItemBinList(ArrayList<String> itemBinList) {
118-
this.itemBinList = itemBinList;
79+
private void setDisplay(String display) {
80+
this.display = display;
11981
}
120-
82+
12183
private void setCurrentAmount(Double currentAmount) {
12284
this.currentAmount = currentAmount;
12385
}
12486

125-
private Double getCurrentAmount() {
126-
return currentAmount;
87+
private void updateDisplay() {
88+
NumberFormat nf = NumberFormat.getInstance();
89+
nf.setMinimumFractionDigits(2);
90+
String stringConversion = nf.format(currentAmount);
91+
setDisplay("$" + stringConversion);
92+
}
93+
94+
private void updateChangeAmount() {
95+
if (currentAmount >= 1.25) {
96+
setCurrentAmount(currentAmount - 1.25);
97+
coinList.remove(0);
98+
coinList.remove(1);
99+
coinList.remove(2);
100+
}
101+
}
102+
103+
private void setCoinReturnAmount(Double coinReturnAmount) {
104+
this.coinReturnAmount = coinReturnAmount;
127105
}
128106

107+
private void coinAdded(String coin, double coinAmount) {
108+
coinList.add(coin);
109+
coinCalc.insertCoin(coinAmount);
110+
}
111+
112+
private void pennyFallsToReturnSlot(String coin, double coinAmount) {
113+
returnSlotCoins.add(coin);
114+
setCoinReturnAmount(coinAmount);
115+
}
116+
117+
private boolean coinIsPenny(String coin) {
118+
return coin.equals("Penny");
119+
}
120+
129121
}

test/vending/VendingMachineTests.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.util.ArrayList;
66

77
import org.junit.Before;
8+
import org.junit.Ignore;
89
import org.junit.Test;
910

1011
public class VendingMachineTests {
@@ -28,16 +29,6 @@ public void shouldAcceptQuarter() {
2829
assertEquals("$0.25", vendingMachine.display());
2930
}
3031

31-
@Test
32-
public void shouldResetCurrentAmountEqualToZeroWhenReturnCoinsIsPressed() {
33-
insertQuarter();
34-
vendingMachine.update();
35-
36-
vendingMachine.returnCoins();
37-
38-
assertEquals("$0.25", vendingMachine.display());
39-
}
40-
4132
@Test
4233
public void shouldNotAcceptPenny() {
4334
insertQuarter();
@@ -64,6 +55,16 @@ public void shouldAcceptDime() {
6455
assertEquals("$0.10", vendingMachine.display());
6556
}
6657

58+
@Test
59+
public void shouldResetCurrentAmountEqualToZeroWhenReturnCoinsIsPressed() {
60+
insertQuarter();
61+
vendingMachine.update();
62+
63+
vendingMachine.returnCoins();
64+
65+
assertEquals("$0.00", vendingMachine.display());
66+
}
67+
6768
@Test
6869
public void pressingCoinReturnShouldReturnExactCoinsInserted() {
6970
insertFiftyCentsInQuarters();
@@ -217,7 +218,7 @@ public void machineShouldMakeChangeIfTooMuchMoneyPaidForSoda() {
217218
vendingMachine.sodaButton();
218219
vendingMachine.returnCoins();
219220

220-
assertEquals((Double) QUARTER, vendingMachine.getCoinReturnAmount());
221+
assertEquals((Double) QUARTER, vendingMachine.getReturnSlotCoins());
221222
}
222223

223224
private void insertDollarInQuarters() {

0 commit comments

Comments
 (0)