Skip to content

Commit

Permalink
Fix: Product 객체 fixedPrice 계산 로직 수정
Browse files Browse the repository at this point in the history
- 기존 연산 괄호 실수 -> 올바르게 변경
- 테스트 코드 추가
  • Loading branch information
ku-kim committed Apr 21, 2022
1 parent 3b74382 commit db93682
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 3 deletions.
2 changes: 1 addition & 1 deletion BE/src/main/java/sidedish/com/domain/Product.java
Expand Up @@ -30,6 +30,6 @@ public Product(Long id, DiscountPolicy discountPolicy,
}

private long calculateFixedPrice() {
return (long) (originalPrice * (100 - discountPolicy.getDiscountRate() / 100));
return (long) (originalPrice * ((100 - discountPolicy.getDiscountRate()) / 100));
}
}
Expand Up @@ -41,7 +41,6 @@ void setUp() {
}


// 프로튼엔드가 특정 음식 타입 조회를 하게 해주세요
@Test
void 만약_meal_type_soup_경우_soup음식_타입_조회_성공() {
given()
Expand All @@ -57,7 +56,7 @@ void setUp() {
.body("[0].image", containsString("s3"))
.body("[0].productName", equalTo("한돈 돼지 김치찌개"))
.body("[0].description", equalTo("김치찌개에는 역시 돼지고기"))
.body("[0].fixedPrice", equalTo(8370))
.body("[0].fixedPrice", equalTo(7440))
.body("[0].originalPrice", equalTo(9300))
.body("[0].event", equalTo("이벤트특가"));
}
Expand Down
54 changes: 54 additions & 0 deletions BE/src/test/java/sidedish/com/domain/ProductTest.java
@@ -0,0 +1,54 @@
package sidedish.com.domain;

import static org.assertj.core.api.Assertions.assertThat;

import java.util.List;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

@DisplayName("ProductTest 클래스")
class ProductTest {


@Nested
@DisplayName("Product 생성자")
class Describe_constructor {

@Nested
@DisplayName("만약 이벤트특가 Discount Policy가 주어진다면")
class Context_with_event_discount_policy {

@Test
@DisplayName("20% 할인된 Product를 생성한다.")
void It_returns_a_Product() {
DiscountPolicy discountPolicy = new DiscountPolicy("이벤트특가", 20);
Image image = new Image("https://louie.com/test.jpg");

Product sut = new Product(1L, discountPolicy, List.of(image), "김치찌개", "맛있어요",
10000, "soup", "meat");

assertThat(sut.getDiscountPolicy().getPolicyName()).isEqualTo("이벤트특가");
assertThat(sut.getFixedPrice()).isEqualTo(8000);
}
}

@Nested
@DisplayName("만약 런칭특가 Discount Policy가 주어진다면")
class Context_with_launching_discount_policy {

@Test
@DisplayName("10% 할인된 Product를 생성한다.")
void It_returns_a_Product() {
DiscountPolicy discountPolicy = new DiscountPolicy("런칭특가", 10);
Image image = new Image("https://louie.com/test.jpg");

Product sut = new Product(1L, discountPolicy, List.of(image), "김치찌개", "맛있어요",
10000, "soup", "meat");

assertThat(sut.getDiscountPolicy().getPolicyName()).isEqualTo("런칭특가");
assertThat(sut.getFixedPrice()).isEqualTo(9000);
}
}
}
}

0 comments on commit db93682

Please sign in to comment.