diff --git a/mallinkAdmin/src/test/java/com/iformall/service/test/WebTest.java b/mallinkAdmin/src/test/java/com/iformall/service/test/WebTest.java new file mode 100644 index 000000000..a4e0d3ff8 --- /dev/null +++ b/mallinkAdmin/src/test/java/com/iformall/service/test/WebTest.java @@ -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 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 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 respMap = mapper.readValue(responseStr, Map.class); + log.info("respMap -> {}", JSON.toJSONString(respMap)); + } + +}