yeg
2026-09-24 3dff4451ffe12e87d16792cdd8f744e1e29aad9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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));
    }
}