Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

새로운 할인 정책 개발 본문

인프런/[인프런] Spring 핵심원리 이해

새로운 할인 정책 개발

Seung__ 2021. 7. 25. 18:50
??? : 할인정책 10%할인으로 바꿔!!

 

1. RateDiscountPolicy class

  • DiscountPolicy interface의 구현체
  • member와 price정보를 받아 할인 금액 return
    public class RateDiscountPolicy implements DiscountPolicy{
    
        private int discountPercent = 10;
    
        @Override
        public int discount(Member member, int price) {
            if(member.getGrade() == Grade.VIP){
                return price * discountPercent / 100;
            }else {
                return 0;
            }
    
        }
    }​

2. 할인금액 Test

  • @DisplayName을 입력하면 test결과화면에 해당 내용을 띄울 수 있다.
  • Vip일 경우, Vip가 아닐 경우 나눠서 test.
class RateDiscountPolicyTest {

    RateDiscountPolicy rateDiscountPolicy = new RateDiscountPolicy();

    @Test
    @DisplayName("VIP는 10%할인이 적용 되어야 한다.")
    void vip_o() {
        //given
        Member member = new Member(1L, "memberVIP", Grade.VIP);

        //when
        int discountedPrice = rateDiscountPolicy.discount(member, 10000);

        //then
        Assertions.assertThat(discountedPrice).isEqualTo(1000);

    }

    @Test
    @DisplayName("VIP가 아닌 경우 할인 미적용")
    void vip_x(){
        //given
        Member member = new Member(2L, "memberBASIC", Grade.BASIC);

        //when
        int discountedPrice = rateDiscountPolicy.discount(member, 10000);

        //then
        Assertions.assertThat(discountedPrice).isEqualTo(0);
    }
}

 

할인 정책은 잘 돌아간다! 이제 정책을 바꿔서 돌려보자.

 

3. GitHub : 210725, RateDiscountPolicy


https://github.com/bsh6463/SpringCoreFunction

 

GitHub - bsh6463/SpringCoreFunction

Contribute to bsh6463/SpringCoreFunction development by creating an account on GitHub.

github.com

 

Comments