| @@ -0,0 +1,176 @@ | |||||
| package com.iformall.service.test; | |||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson.JSONObject; | |||||
| import com.fasterxml.jackson.databind.ObjectMapper; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.domain.po.*; | |||||
| import com.iformall.enums.EnumCouponSendSendType; | |||||
| import com.iformall.enums.EnumCouponSendStatus; | |||||
| import com.iformall.enums.EnumCouponSendType; | |||||
| import com.iformall.mapper.WxCouponMapper; | |||||
| import com.iformall.service.WxCouponSendService; | |||||
| import com.iformall.service.WxLevelConfigService; | |||||
| import com.iformall.service.WxScoreRulesService; | |||||
| import lombok.extern.slf4j.Slf4j; | |||||
| import org.apache.shiro.SecurityUtils; | |||||
| import org.apache.shiro.authc.UsernamePasswordToken; | |||||
| import org.apache.shiro.subject.Subject; | |||||
| import org.apache.shiro.util.ThreadContext; | |||||
| import org.apache.shiro.web.subject.WebSubject; | |||||
| import org.junit.Before; | |||||
| import org.junit.FixMethodOrder; | |||||
| import org.junit.Test; | |||||
| import org.junit.runner.RunWith; | |||||
| import org.junit.runners.MethodSorters; | |||||
| 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.http.MediaType; | |||||
| import org.springframework.mock.web.MockHttpServletRequest; | |||||
| import org.springframework.mock.web.MockHttpServletResponse; | |||||
| import org.springframework.mock.web.MockHttpSession; | |||||
| import org.springframework.test.context.ActiveProfiles; | |||||
| import org.springframework.test.context.junit4.SpringRunner; | |||||
| import org.springframework.test.web.servlet.MockMvc; | |||||
| import org.springframework.test.web.servlet.MvcResult; | |||||
| import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; | |||||
| import org.springframework.test.web.servlet.result.MockMvcResultHandlers; | |||||
| import org.springframework.test.web.servlet.result.MockMvcResultMatchers; | |||||
| import org.springframework.test.web.servlet.setup.MockMvcBuilders; | |||||
| import org.springframework.web.context.WebApplicationContext; | |||||
| import tk.mybatis.mapper.entity.Example; | |||||
| import javax.annotation.Resource; | |||||
| import java.util.Date; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| @Slf4j | |||||
| @AutoConfigureMockMvc | |||||
| @FixMethodOrder(MethodSorters.JVM) | |||||
| @ActiveProfiles("dev") | |||||
| @RunWith(SpringRunner.class) | |||||
| @SpringBootTest | |||||
| public class WebTest { | |||||
| private static final String TENANT_ID = "456"; | |||||
| @Resource | |||||
| private org.apache.shiro.mgt.SecurityManager securityManager; | |||||
| @Resource | |||||
| private WebApplicationContext webApplicationContext; | |||||
| private MockHttpServletRequest mockHttpServletRequest; | |||||
| private MockHttpServletResponse mockHttpServletResponse; | |||||
| @Autowired | |||||
| WxLevelConfigService levelConfigService; | |||||
| @Autowired | |||||
| WxCouponSendService wxCouponSendService; | |||||
| @Autowired | |||||
| WxScoreRulesService wxScoreRulesService ; | |||||
| private MockMvc mockMvc; | |||||
| @Autowired | |||||
| WxCouponMapper wxCouponMapper ; | |||||
| @Before | |||||
| public void setUp() { | |||||
| mockHttpServletRequest = new MockHttpServletRequest(webApplicationContext.getServletContext()); | |||||
| mockHttpServletResponse = new MockHttpServletResponse(); | |||||
| MockHttpSession mockHttpSession = new MockHttpSession(webApplicationContext.getServletContext()); | |||||
| mockHttpServletRequest.setSession(mockHttpSession); | |||||
| SecurityUtils.setSecurityManager(securityManager); | |||||
| mockMvc = MockMvcBuilders | |||||
| .webAppContextSetup(webApplicationContext) | |||||
| .build(); | |||||
| login("yftest", "123456zz"); | |||||
| } | |||||
| private void login(String username, String password) { | |||||
| Subject subject = new WebSubject.Builder(mockHttpServletRequest, mockHttpServletResponse) | |||||
| .buildWebSubject(); | |||||
| UsernamePasswordToken token = new UsernamePasswordToken(username, password, true); | |||||
| subject.login(token); | |||||
| ThreadContext.bind(subject); | |||||
| } | |||||
| @Test | |||||
| public void levelList() { | |||||
| WxLevelConfig wxLevelConfig = new WxLevelConfig(); | |||||
| wxLevelConfig.setTenantId(TENANT_ID); | |||||
| wxLevelConfig.setSortColumns(BaseEntity.SortField.Points_ASC); | |||||
| PageInfo<WxLevelConfig> data = levelConfigService.listAsPage(wxLevelConfig, 1, 999); | |||||
| log.debug("data:{}", JSON.toJSONString(data)); | |||||
| } | |||||
| /** | |||||
| * 投放列表 | |||||
| */ | |||||
| @Test | |||||
| public void list() { | |||||
| WxCouponSend query = new WxCouponSend(); | |||||
| query.setSendType(EnumCouponSendSendType.MERCHANT.getCode()); | |||||
| query.setStatus(EnumCouponSendStatus.VALID.getCode()); | |||||
| query.setSortColumns(BaseEntity.SortField.CreateDate_DESC); | |||||
| List pageInfo = wxCouponSendService.listAsPage(query, 0, 10).getList(); | |||||
| log.info("couponSend list = {}", JSON.toJSONString(pageInfo)); | |||||
| } | |||||
| /** | |||||
| * 商户注券,添加conditions: {limit:888} | |||||
| */ | |||||
| @Test | |||||
| public void listCouponSend() throws Exception { | |||||
| MvcResult result = mockMvc.perform( | |||||
| MockMvcRequestBuilders.get("/wxCouponSend/list") | |||||
| .param("pageNum", "1") | |||||
| .param("pageSize", "10") | |||||
| .param("sortColumn", "createDate") | |||||
| .param("sortOrder", "desc") | |||||
| .param("status", "1") | |||||
| //.param("expired", "1") | |||||
| .param("sendType", EnumCouponSendSendType.MERCHANT.getCode() + "") | |||||
| ) | |||||
| .andExpect(MockMvcResultMatchers.status().isOk()) | |||||
| .andDo(MockMvcResultHandlers.print()) | |||||
| .andReturn(); | |||||
| String responseStr = result.getResponse().getContentAsString(); | |||||
| ObjectMapper mapper = new ObjectMapper(); | |||||
| Map<String, String> respMap = mapper.readValue(responseStr, Map.class); | |||||
| log.info("respMap -> {}", JSON.toJSONString(respMap)); | |||||
| } | |||||
| /** | |||||
| * 商户注券,添加conditions: {limit:888} | |||||
| */ | |||||
| @Test | |||||
| public void addCouponSend() throws Exception { | |||||
| WxCouponSend wxCouponSend = new WxCouponSend(); | |||||
| wxCouponSend.setSendType(EnumCouponSendSendType.MERCHANT.getCode()); | |||||
| wxCouponSend.setCouponId(267460814401699840L); | |||||
| wxCouponSend.setTenantId(TENANT_ID); | |||||
| wxCouponSend.setTitle("口红666"); | |||||
| wxCouponSend.setCreateDate(new Date()); | |||||
| wxCouponSend.setUpdateDate(new Date()); | |||||
| JSONObject jo = new JSONObject(); | |||||
| jo.put(WxCouponSend.KEY_MERCHANT_LNVENTORY, 994); | |||||
| wxCouponSend.setConditions(jo.toJSONString()); | |||||
| MvcResult result = mockMvc.perform( | |||||
| MockMvcRequestBuilders.post("/wxCouponSend/add") | |||||
| .contentType(MediaType.APPLICATION_JSON) | |||||
| .content(JSON.toJSONString(wxCouponSend))) | |||||
| .andExpect(MockMvcResultMatchers.status().isOk()) | |||||
| .andDo(MockMvcResultHandlers.print()) | |||||
| .andReturn(); | |||||
| String responseStr = result.getResponse().getContentAsString(); | |||||
| ObjectMapper mapper = new ObjectMapper(); | |||||
| Map<String, String> respMap = mapper.readValue(responseStr, Map.class); | |||||
| log.info("respMap -> {}", JSON.toJSONString(respMap)); | |||||
| } | |||||
| } | |||||