Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[자판기] 한재모 미션 제출합니다. #179

Open
wants to merge 44 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
cbbb052
docs(README): 기능목록 초안 작성
Hanjaemo Nov 22, 2023
108910d
feat(RandomNumberGenerator): 랜덤 숫자 생성 기능 구현
Hanjaemo Nov 22, 2023
bc0287e
feat(VendingMachine): 상품 추가 기능 구현
Hanjaemo Nov 22, 2023
fcd832c
feat(Product): 상품 수량 1개 감소 기능 구현
Hanjaemo Nov 22, 2023
aaa4f31
feat(InputAmount): 투입 금액 상품 가격만큼 감소 기능 구현
Hanjaemo Nov 22, 2023
e7fc6e7
feat(InputView): 자판기가 보유하고 있는 금액 입력 기능 구현
Hanjaemo Nov 22, 2023
2538f2b
feat(InputView): 자판기에 추가할 상품 입력 기능 구현
Hanjaemo Nov 22, 2023
fa3769c
feat(InputView): 투입 금액 입력 기능 구현
Hanjaemo Nov 22, 2023
b02888a
feat(InputView): 구매할 상품명 입력 기능 구현
Hanjaemo Nov 22, 2023
c831690
feat(OutputView): 자판기가 보유한 동전 출력 기능 구현
Hanjaemo Nov 22, 2023
32d9097
feat(OutputView): 남은 투입 금액 출력 기능 구현
Hanjaemo Nov 22, 2023
473978a
feat(OutputView): 잔돈 출력 기능 구현
Hanjaemo Nov 22, 2023
8c98537
docs(README): 기능 구체화
Hanjaemo Nov 22, 2023
4564904
feat(VendingMachine, Product): 남은 투입 금액이 상품의 최저 가격보다 적은지 확인하는 기능 구현
Hanjaemo Nov 22, 2023
9aa7b95
feat(VendingMachineTest): 남은 투입 금액이 상품의 최저 가격보다 적은지 확인하는 기능 단위 테스트
Hanjaemo Nov 22, 2023
a031dd7
feat(VendingMachine, Product): 모든 상품이 소진되었는지 확인하는 기능 구현
Hanjaemo Nov 22, 2023
25da272
feat(VendingMachineTest): 모든 상품이 소진되었는지 확인하는 기능 단위 테스트
Hanjaemo Nov 22, 2023
026a5d0
chore: domain 패키지 생성
Hanjaemo Nov 22, 2023
60f36e2
feat(Coin, VendingMachine, RandomNumberGenerator): 동전 생성 기능 구현
Hanjaemo Nov 22, 2023
673a842
feat(Controller, VendingMachine, OutputView): 자판기 동전 생성 및 출력 기능 구현
Hanjaemo Nov 22, 2023
60abfee
feat(Controller, InputView): 상품 추가 기능 구현
Hanjaemo Nov 22, 2023
46cb1b4
feat: 상품 구매 기능 구현
Hanjaemo Nov 22, 2023
6dac158
feat: 잔돈 반환 기능 구현
Hanjaemo Nov 22, 2023
04ce38c
docs(README): 기능 목록 최신화
Hanjaemo Nov 22, 2023
cb525af
feat(OutputView): 에러 메시지 출력 기능 구현
Hanjaemo Nov 22, 2023
a8e3879
feat(Product, Controller): 상품 가격 검증 기능 구현
Hanjaemo Nov 22, 2023
9629730
feat(VendingMachineAmount, Controller): 자판기 보유 금액 검증 기능 구현
Hanjaemo Nov 22, 2023
f7a19ba
docs(README): 기능 목록 미션 제목 수정
Hanjaemo Nov 22, 2023
506f681
refactor(VendingMachine): 메서드 분리
Hanjaemo Nov 22, 2023
ded3b44
feat(InputAmount, Controller): 투입 금액 검증 기능 구현
Hanjaemo Nov 22, 2023
6bcefd6
refactor(Controller): 반복 조건문의 의도가 명확하도록 수정
Hanjaemo Nov 22, 2023
b4d384b
refactor(Converter, Controller, InputView): Converter 클래스를 사용하여 정수로 변…
Hanjaemo Nov 22, 2023
d73a539
chore(RandomNumberGenerator, VendingMachine): RandomNumberGenerator 클…
Hanjaemo Nov 22, 2023
64bf973
refactor(Constants, InputAmount): 매직 리터럴 상수화 처리
Hanjaemo Nov 22, 2023
ddc1f52
refactor(Product): 매직 넘버 상수화
Hanjaemo Nov 22, 2023
5e5171e
refactor(VendingMachine, VendingMachineAmount, Controller): 캡슐화를 통해 유…
Hanjaemo Nov 22, 2023
5a7ac57
refactor(VendingMachineAmount): 상수화 및 불필요한 메서드 제거
Hanjaemo Nov 22, 2023
6aca1da
refactor: 에러 메시지 수정
Hanjaemo Nov 22, 2023
169b66b
test(InputAmountTest): 검증 기능 단위 테스트
Hanjaemo Nov 22, 2023
d42a7b4
test(ProductTest): 상품 가격 검증 기능 예외 처리
Hanjaemo Nov 22, 2023
7fad681
style: 불필요한 import문 제거
Hanjaemo Nov 22, 2023
45ec4bc
docs(README): 기능 목록 최신화
Hanjaemo Nov 22, 2023
6059b55
feat(InputView, Controller): 상품 입력 형식 검증 기능 구현
Hanjaemo Nov 22, 2023
28e0841
feat(Controller): 예외 처리
Hanjaemo Nov 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor(VendingMachineAmount): 상수화 및 불필요한 메서드 제거
  • Loading branch information
Hanjaemo committed Nov 22, 2023
commit 5a7ac570a1b0de6ead300a53aa4f5e596cf59fce
19 changes: 11 additions & 8 deletions src/main/java/vendingmachine/domain/VendingMachineAmount.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
package vendingmachine.domain;

import vendingmachine.constants.Constants;

public class VendingMachineAmount {

private static final int MIN_AMOUNT = 10;
private static final int AMOUNT_UNIT = 10;

private int amount;

public VendingMachineAmount(int amount) {
@@ -10,11 +15,13 @@ public VendingMachineAmount(int amount) {
}

private void validate(int amount) {
if (amount < 10) {
throw new IllegalArgumentException("[ERROR] 자판기가 보유 금액은 10원 이상이어야 합니다.");
if (amount < MIN_AMOUNT) {
throw new IllegalArgumentException(
String.format("%s 자판기가 보유 금액은 %d원 이상이어야 합니다.", Constants.ERROR_PREFIX, MIN_AMOUNT));
}
if (amount % 10 != 0) {
throw new IllegalArgumentException("[ERROR] 자판기 보유 금액은 10원 단위만 가능합니다.");
if (amount % AMOUNT_UNIT != 0) {
throw new IllegalArgumentException(
String.format("%s 자판기가 보유 금액은 %d원 단위만 가능합니다.", Constants.ERROR_PREFIX, MIN_AMOUNT));
}
}

@@ -29,8 +36,4 @@ public boolean isLessThan(int amount) {
public void decrease(int amount) {
this.amount -= amount;
}

public int getAmount() {
return amount;
}
}