shinnosuke
2026-09-18 ac374e5100c8e600f1b74ceb228cde49ebb1272c
talent-card-server/src/test/java/com/talentcard/server/business/portal/PortalServiceTests.java
@@ -4,6 +4,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.lang.reflect.Method;
@@ -14,6 +15,7 @@
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.ArgumentCaptor;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -191,4 +193,31 @@
      assertThat(method.invoke(service, plain, "卓越人才卡", "LOCAL", true)).isNotNull();
      assertThat(method.invoke(service, plain, "卓越人才卡", "OUTSIDE", true)).isNotNull();
   }
   @Test
   void newsListSortsPinnedArticlesByModifiedTime() {
      when(jdbc.queryForObject(anyString(), eq(Long.class), any(Object[].class))).thenReturn(0L);
      when(jdbc.queryForList(anyString(), any(Object[].class))).thenReturn(List.of());
      service.news(1, 10);
      ArgumentCaptor<String> sql = ArgumentCaptor.forClass(String.class);
      verify(jdbc).queryForList(sql.capture(), any(Object[].class));
      assertThat(sql.getValue())
            .contains("from news_article")
            .contains("is_top desc")
            .contains("case when is_top = 1 then updated_at end desc");
   }
   @Test
   void premiumListTagComesFromMerchantConfigurationOnly() {
      // 商家权益里配了标签 → 用它;没配(新商家)→ 留空,不再兜底"人才专享"。
      assertThat(service.configuredMerchantTag(
            "[{\"level\":\"卓越人才卡\",\"enabled\":true,\"tag\":\"卓越人才卡\"}]", ""))
            .isEqualTo("卓越人才卡");
      assertThat(service.configuredMerchantTag("", "")).isEmpty();
      assertThat(service.configuredMerchantTag("[]", "")).isEmpty();
      // 权益里没写标签时退回商家服务标签。
      assertThat(service.configuredMerchantTag("[{\"level\":\"卓越人才卡\",\"enabled\":true}]", "专属服务")).isEqualTo("专属服务");
   }
}