@Override
    public int apply(
            final Integer price,
            final List<Coupon> percentageCoupons,
            final List<Coupon> discountCoupons
    ) {
        int afterPrice = price;

        for (Coupon discountCoupon : discountCoupons) {
            afterPrice = discountCoupon.discount(afterPrice);
        }

        for (Coupon percentageCoupon : percentageCoupons) {
            afterPrice = percentageCoupon.discount(afterPrice);
        }

        return afterPrice;
    }
@Test
    void 값을_쿠폰_금액만큼_할인_후_퍼센트_할인을_진행한다() {
        // given
        List<Coupon> percentageCoupons = List.of(쿠픈_생성_함께_사용_할인율_20_퍼센트());
        List<Coupon> discountCoupons = List.of(쿠픈_생성_함께_사용_할인금액_10000원());
        int price = 100000;

        // when
        int afterPrice = applyBasicPolicy.apply(price, percentageCoupons, discountCoupons);

        // then
        assertThat(afterPrice).isEqualTo(72000);
    }