package com.talentcard.server.business.merchant;
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import java.util.Map;
|
|
import org.junit.jupiter.api.Test;
|
|
class MerchantTypeCatalogTests {
|
|
@Test
|
void resolvesDisplayNamesCodesAndLegacyAliasesToOneCode() {
|
assertThat(MerchantTypeCatalog.canonicalCode("免费体检")).isEqualTo("medical");
|
assertThat(MerchantTypeCatalog.canonicalCode("medical")).isEqualTo("medical");
|
assertThat(MerchantTypeCatalog.canonicalCode("healthCheck")).isEqualTo("medical");
|
assertThat(MerchantTypeCatalog.canonicalCode("影院")).isEqualTo("cinema");
|
assertThat(MerchantTypeCatalog.canonicalCode("公寓租赁服务")).isEqualTo("apartment");
|
}
|
|
@Test
|
void exposesRoutingMetadataFromTheSameCatalog() {
|
MerchantTypeCatalog.MerchantType medical = MerchantTypeCatalog.find("免费体检").orElseThrow();
|
assertThat(medical.topicName()).isEqualTo("臻享礼遇");
|
assertThat(medical.detailType()).isEqualTo("MEDICAL");
|
assertThat(medical.premiumCategoryKey()).isEqualTo("medical");
|
assertThat(medical.premiumBusinessType()).isEqualTo("MEDICAL");
|
|
assertThat(MerchantTypeCatalog.codesForShoppingCategory("book")).containsExactly("culture");
|
assertThat(MerchantTypeCatalog.codesForShoppingCategory("telecom")).containsExactly("telecom");
|
assertThat(MerchantTypeCatalog.codesForShoppingCategory("dental")).containsExactly("dental");
|
assertThat(MerchantTypeCatalog.find("口腔治疗保健").orElseThrow().topicName()).isEqualTo("惠享好物");
|
assertThat(MerchantTypeCatalog.find("口腔治疗保健").orElseThrow().detailType()).isEqualTo("MERCHANT");
|
assertThat(MerchantTypeCatalog.find("酒店服务").orElseThrow().supportsMerchantAppLogin()).isTrue();
|
}
|
|
@Test
|
void unknownTypesHaveAnExplicitFallbackCode() {
|
assertThat(MerchantTypeCatalog.canonicalCode("未知类型")).isEqualTo("other");
|
assertThat(MerchantTypeCatalog.find("未知类型")).isEmpty();
|
}
|
|
@Test
|
void coversEveryMerchantTypeOfferedByTheAdmin() {
|
Map<String, String> adminTypes = Map.ofEntries(
|
Map.entry("免费体检", "medical"),
|
Map.entry("配偶推荐就业", "employment"),
|
Map.entry("金融服务", "finance"),
|
Map.entry("行政审批", "approval"),
|
Map.entry("子女托管", "children"),
|
Map.entry("餐饮服务", "food"),
|
Map.entry("酒店服务", "hotel"),
|
Map.entry("公寓租赁", "apartment"),
|
Map.entry("加油服务", "fuel"),
|
Map.entry("停车服务", "parking"),
|
Map.entry("自助洗车", "carWash"),
|
Map.entry("景区服务", "scenic"),
|
Map.entry("购房优惠", "housing"),
|
Map.entry("购车服务", "car"),
|
Map.entry("家电服务", "appliance"),
|
Map.entry("数码服务", "digital"),
|
Map.entry("文化服务", "culture"),
|
Map.entry("电信服务", "telecom"),
|
Map.entry("口腔治疗保健", "dental"),
|
Map.entry("观影服务", "cinema")
|
);
|
adminTypes.forEach((displayName, code) ->
|
assertThat(MerchantTypeCatalog.canonicalCode(displayName)).isEqualTo(code));
|
}
|
}
|