package com.izouma.walkchina.service; import com.izouma.walkchina.constant.AppConstants; import com.izouma.walkchina.domain.UserInfo; import com.izouma.walkchina.event.UpdatePriceEvent; import com.izouma.walkchina.repo.AuthorityRepository; import com.izouma.walkchina.repo.UserInfoRepository; import com.izouma.walkchina.security.Authority; import com.izouma.walkchina.security.AuthorityName; import com.izouma.walkchina.service.storage.StorageService; import com.izouma.walkchina.utils.ImageUtils; import org.apache.commons.lang3.RandomStringUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.ApplicationContext; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.test.context.junit4.SpringRunner; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc public class UserInfoServiceTest { @Autowired private UserInfoRepository userInfoRepository; @Autowired private StorageService storageService; @Autowired private UserInfoService userInfoService; @Autowired private AuthorityRepository authorityRepository; @Autowired private ApplicationContext applicationContext; @Test public void loadUserByUsername() { } @Test public void registerByUserPwd() { List authorities = new ArrayList<>(); authorities.add(authorityRepository.findByName(AuthorityName.ROLE_USER)); authorities.add(authorityRepository.findByName(AuthorityName.ROLE_ADMIN)); userInfoRepository.save(UserInfo.builder() .username("root") .password(new BCryptPasswordEncoder().encode("123456")) .nickname("用户" + RandomStringUtils.randomAlphabetic(6)) .avatar(AppConstants.DEFAULT_AVATAR) .isNew(true) .coin(BigDecimal.ZERO) .active(true) .authorities(authorities) .build()); } @Test public void loginMiniApp() { } @Test public void getMiniAppUserInfo() { } @Test public void addMarker() { List userInfoList = userInfoRepository.findAll(); for (UserInfo userInfo : userInfoList) { userInfoService.uploadUserMarker(userInfo); userInfoRepository.save(userInfo); } } @Test public void updateUserPrice() { applicationContext.publishEvent(new UpdatePriceEvent(this, userInfoRepository.findById(2232L).get().getId(), null)); } @Test public void testRole() { authorityRepository.save(Authority.builder().name(AuthorityName.ROLE_ADMIN).build()); authorityRepository.save(Authority.builder().name(AuthorityName.ROLE_USER).build()); } @Test public void testMarker() throws IOException, InterruptedException { UserInfo userInfo = userInfoRepository.findById(1111L).get(); Process process = new ProcessBuilder("open", ImageUtils.makeMarker("steal", userInfo.getAvatar())).start(); process.waitFor(); process = new ProcessBuilder("open", ImageUtils.makeMarker("user", userInfo.getAvatar())).start(); process.waitFor(); process = new ProcessBuilder("open", ImageUtils.makeMarker("location", userInfo.getAvatar())).start(); process.waitFor(); } @Test public void testUpdateUserPrice() { userInfoService.updateUserPrice(new UpdatePriceEvent(this, 2757L, null)); } }