package com.tcm.training.admin.app.home.service; import com.tcm.training.admin.agent.mapper.ProvincialAgentMapper; import com.tcm.training.admin.app.home.vo.AppVzanLiveEntryVO; import com.tcm.training.admin.live.entity.Clinic; import com.tcm.training.admin.live.mapper.ClinicMapper; import com.tcm.training.admin.live.service.LiveRoomSettingService; import com.tcm.training.admin.live.vo.LiveRoomSettingVO; import com.tcm.training.admin.member.entity.AppUser; import com.tcm.training.admin.member.mapper.UserMapper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class AppVzanLiveEntryServiceTest { @Mock private LiveRoomSettingService liveRoomSettingService; @Mock private UserMapper userMapper; @Mock private ClinicMapper clinicMapper; @Mock private ProvincialAgentMapper provincialAgentMapper; private AppVzanLiveEntryService service; @BeforeEach void setUp() { service = new AppVzanLiveEntryService( liveRoomSettingService, userMapper, clinicMapper, provincialAgentMapper); } @Test void createEntryReturnsUrlAndUserAgentForNativePlugin() { LiveRoomSettingVO setting = new LiveRoomSettingVO(); setting.setLiveRoomUrl("https://example.com/live?old=1"); when(liveRoomSettingService.current()).thenReturn(setting); AppUser user = new AppUser(); user.setId(12L); user.setClinicId(34L); user.setDeleted(0); user.setStatus(1); user.setAvatar("https://example.com/avatar.png"); when(userMapper.selectById(12L)).thenReturn(user); Clinic clinic = new Clinic(); clinic.setContactPhone("13800000000"); when(clinicMapper.selectById(34L)).thenReturn(clinic); AppVzanLiveEntryVO result = service.createEntry(12L); assertTrue(result.getUrl().startsWith("https://example.com/live?old=1&data=")); assertEquals("webchatPay/wx074c1f0cf5a0ecf4 InAppPay", result.getUa()); } }