Skip to content

Commit

Permalink
Fix: DiscountPolicy NPE 문제 해결
Browse files Browse the repository at this point in the history
- DiscountPolicy가 존재하지 않는 상품의 인수 테스트 추가

Co-authored-by: “ku-kim” <kukim.dev@gmail.com>
  • Loading branch information
Louie-03 and ku-kim committed Apr 22, 2022
1 parent 5335f2e commit 68b6e96
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 10 deletions.
24 changes: 17 additions & 7 deletions BE/src/main/java/sidedish/com/repository/DomainEntityMapper.java
Expand Up @@ -18,16 +18,25 @@ public List<Product> toDomainFromProductsEntity(List<ProductEntity> productEntit
List<Product> products = new ArrayList<>();
for (ProductEntity productEntity : productEntities) {
Long discountPolicyId = productEntity.getDiscountPolicyId();
for (DiscountPolicyEntity discountPolicyEntity : discountPolicies) {
if (discountPolicyEntity.isEqualsId(discountPolicyId)) {
Product product = toDomainFromProductEntity(productEntity, discountPolicyEntity);
products.add(product);
}
}
DiscountPolicyEntity discountPolicyEntity = searchDiscountPolicyById(
discountPolicies, discountPolicyId);

Product product = toDomainFromProductEntity(productEntity, discountPolicyEntity);
products.add(product);
}
return products;
}

private DiscountPolicyEntity searchDiscountPolicyById(
List<DiscountPolicyEntity> discountPolicies, Long discountPolicyId) {
for (DiscountPolicyEntity discountPolicyEntity : discountPolicies) {
if (discountPolicyEntity.isEqualsId(discountPolicyId)) {
return discountPolicyEntity;
}
}
return new DiscountPolicyEntity(null, null, 0);
}

private Product toDomainFromProductEntity(ProductEntity productEntity,
DiscountPolicyEntity discountPolicyEntity) {
DiscountPolicy discountPolicy = toDomainFromDiscountPolicyEntity(discountPolicyEntity);
Expand All @@ -51,7 +60,8 @@ private List<Image> toDomainFromImageEntity(ProductEntity productEntity) {
.collect(Collectors.toList());
}

private DiscountPolicy toDomainFromDiscountPolicyEntity(DiscountPolicyEntity discountPolicyEntity) {
private DiscountPolicy toDomainFromDiscountPolicyEntity(
DiscountPolicyEntity discountPolicyEntity) {
return new DiscountPolicy(
discountPolicyEntity.getPolicyName(),
discountPolicyEntity.getDiscountRate());
Expand Down
Expand Up @@ -48,19 +48,22 @@ void setUp() {
given()
.accept(MediaType.APPLICATION_JSON_VALUE)

.when()
.when()
.get("/api/products?meal=soup")

.then()
.then()
.statusCode(HttpStatus.OK.value())
.assertThat()
.body("[0].id", equalTo(5))
.body("[0].image", containsString("s3"))
.body("[0].productName", equalTo("한돈 돼지 김치찌개"))
.body("[0].description", equalTo("김치찌개에는 역시 돼지고기"))
.body("[0].event", equalTo("이벤트특가"))
.body("[0].fixedPrice", equalTo(7440))
.body("[0].originalPrice", equalTo(9300))
.body("[0].event", equalTo("이벤트특가"));
.body("[3].productName", equalTo("동태찌개"))
.body("[3].originalPrice", equalTo(12000))
.body("[3].fixedPrice", equalTo(12000));
}

@Test
Expand Down

0 comments on commit 68b6e96

Please sign in to comment.