fix(gift): 전달 완료 가능 액션의 수취인 조건을 반영한다
This commit is contained in:
+8
-4
@@ -137,7 +137,7 @@ class GiftAdminQueryService(
|
|||||||
),
|
),
|
||||||
status = gift.status,
|
status = gift.status,
|
||||||
statusName = gift.status.displayName,
|
statusName = gift.status.displayName,
|
||||||
availableActions = gift.status.availableActions()
|
availableActions = gift.status.availableActions(delivery)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,13 +153,17 @@ class GiftAdminQueryService(
|
|||||||
trackingNumber = context.delivery(this).trackingNumber,
|
trackingNumber = context.delivery(this).trackingNumber,
|
||||||
status = status,
|
status = status,
|
||||||
statusName = status.displayName,
|
statusName = status.displayName,
|
||||||
availableActions = status.availableActions()
|
availableActions = status.availableActions(context.delivery(this))
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun GiftStatus.availableActions() = when (this) {
|
private fun GiftStatus.availableActions(delivery: GiftDelivery) = when (this) {
|
||||||
GiftStatus.TRACKING_REGISTERED -> listOf("ARRIVE_MAILBOX", "MARK_UNDELIVERABLE")
|
GiftStatus.TRACKING_REGISTERED -> listOf("ARRIVE_MAILBOX", "MARK_UNDELIVERABLE")
|
||||||
GiftStatus.ARRIVED_AT_MAILBOX -> listOf("COMPLETE_INSPECTION", "MARK_UNDELIVERABLE")
|
GiftStatus.ARRIVED_AT_MAILBOX -> listOf("COMPLETE_INSPECTION", "MARK_UNDELIVERABLE")
|
||||||
GiftStatus.INSPECTION_COMPLETED -> listOf("COMPLETE_DELIVERY", "MARK_UNDELIVERABLE")
|
GiftStatus.INSPECTION_COMPLETED -> if (delivery.hasCompleteRecipientInformation()) {
|
||||||
|
listOf("COMPLETE_DELIVERY", "MARK_UNDELIVERABLE")
|
||||||
|
} else {
|
||||||
|
listOf("MARK_UNDELIVERABLE")
|
||||||
|
}
|
||||||
GiftStatus.RECEIVED, GiftStatus.DELIVERED, GiftStatus.UNDELIVERABLE, GiftStatus.CANCELED -> emptyList()
|
GiftStatus.RECEIVED, GiftStatus.DELIVERED, GiftStatus.UNDELIVERABLE, GiftStatus.CANCELED -> emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+32
-1
@@ -146,9 +146,13 @@ class GiftAdminQueryServiceTest @Autowired constructor(
|
|||||||
service.getGiftDetail("A-100260930102").availableActions
|
service.getGiftDetail("A-100260930102").availableActions
|
||||||
)
|
)
|
||||||
assertEquals(
|
assertEquals(
|
||||||
listOf("COMPLETE_DELIVERY", "MARK_UNDELIVERABLE"),
|
listOf("MARK_UNDELIVERABLE"),
|
||||||
service.getGiftDetail("A-100260930103").availableActions
|
service.getGiftDetail("A-100260930103").availableActions
|
||||||
)
|
)
|
||||||
|
assertEquals(
|
||||||
|
listOf("MARK_UNDELIVERABLE"),
|
||||||
|
service.getGifts(GiftStatus.INSPECTION_COMPLETED, null, null, 0, 20).items.single().availableActions
|
||||||
|
)
|
||||||
assertEquals(emptyList<String>(), service.getGiftDetail("A-100260930104").availableActions)
|
assertEquals(emptyList<String>(), service.getGiftDetail("A-100260930104").availableActions)
|
||||||
assertEquals(emptyList<String>(), service.getGiftDetail("A-100260930105").availableActions)
|
assertEquals(emptyList<String>(), service.getGiftDetail("A-100260930105").availableActions)
|
||||||
assertEquals(emptyList<String>(), service.getGiftDetail("A-100260930106").availableActions)
|
assertEquals(emptyList<String>(), service.getGiftDetail("A-100260930106").availableActions)
|
||||||
@@ -158,6 +162,33 @@ class GiftAdminQueryServiceTest @Autowired constructor(
|
|||||||
assertEquals("common.error.invalid_request", exception.messageKey)
|
assertEquals("common.error.invalid_request", exception.messageKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("수취인 정보가 입력된 검수 완료 선물만 전달 완료 액션을 반환한다")
|
||||||
|
fun shouldReturnCompleteDeliveryActionOnlyWithRecipientAddress() {
|
||||||
|
val sender = saveMember("fan-alpha")
|
||||||
|
val recipient = saveMember("creator-alpha")
|
||||||
|
val category = saveCategory()
|
||||||
|
val gift = saveGift(
|
||||||
|
applicationNo = "A-1002609300001",
|
||||||
|
sender = sender,
|
||||||
|
recipient = recipient,
|
||||||
|
category = category,
|
||||||
|
status = GiftStatus.INSPECTION_COMPLETED
|
||||||
|
)
|
||||||
|
requireNotNull(deliveryRepository.findByGiftId(requireNotNull(gift.id))).apply {
|
||||||
|
recipientName = "김소다"
|
||||||
|
recipientPhoneNumber = "01098765432"
|
||||||
|
recipientZipCode = "04524"
|
||||||
|
recipientAddress = "서울시 중구"
|
||||||
|
}
|
||||||
|
|
||||||
|
val detail = service().getGiftDetail(gift.applicationNo)
|
||||||
|
val listItem = service().getGifts(GiftStatus.INSPECTION_COMPLETED, null, null, 0, 20).items.single()
|
||||||
|
|
||||||
|
assertEquals(listOf("COMPLETE_DELIVERY", "MARK_UNDELIVERABLE"), detail.availableActions)
|
||||||
|
assertEquals(listOf("COMPLETE_DELIVERY", "MARK_UNDELIVERABLE"), listItem.availableActions)
|
||||||
|
}
|
||||||
|
|
||||||
private fun service() = GiftAdminQueryService(
|
private fun service() = GiftAdminQueryService(
|
||||||
giftRepository = giftRepository,
|
giftRepository = giftRepository,
|
||||||
deliveryRepository = deliveryRepository,
|
deliveryRepository = deliveryRepository,
|
||||||
|
|||||||
Reference in New Issue
Block a user