You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pocketcommunityserver/src/test/java/com/community/pocket/DemoApplicationTests.java

271 lines
8.0 KiB

package com.community.pocket;
import com.community.pocket.entity.po.Forum;
import com.community.pocket.entity.po.android.Garbage;
import com.community.pocket.entity.po.android.GarbageWastePrice;
import com.community.pocket.entity.po.android.MyInfo;
import com.community.pocket.entity.po.android.Token;
import com.community.pocket.entity.vo.android.GarbageCateGory;
import com.community.pocket.entity.vo.android.Info;
import com.community.pocket.entity.vo.android.QueryUserForm;
import com.community.pocket.entity.vo.android.VisitorForm;
import com.community.pocket.repository.android.*;
import com.community.pocket.util.MessageService;
import com.google.gson.Gson;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Random;
//SpringBoot1.4版本之前用的是SpringJUnit4ClassRunner.class
//@RunWith(SpringRunner.class)
//SpringBoot1.4版本之前用的是@SpringApplicationConfiguration(classes = Application.class)
@SpringBootTest
//测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的
@WebAppConfiguration
class DemoApplicationTests {
@Autowired
private UserDao userDao;
@Autowired
private VisitorPeopleDao visitorPeopleDao;
@Autowired
private GarbageDao garbageDao;
@Autowired
private GarbagePriceDao garbagePriceDao;
@Autowired
private MessageService messageService;
@Autowired
private WebApplicationContext webApplicationContext;
@Autowired
private TestTokenDao testTokenDao;
@Autowired
private VisitorDao visitorDao;
private MockMvc mockMvc;
@BeforeEach
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(
webApplicationContext).build();
}
private static final Logger LOG = LoggerFactory.getLogger(DemoApplicationTests.class);
@Test
void contextLoads() {
}
@Test
void queryUser() {
QueryUserForm queryUserForm = new QueryUserForm();
queryUserForm.setName("p");
userDao.queryUser(queryUserForm);
}
@Test
void showTime() {
List<String> s = visitorPeopleDao.getVisitorList();
LOG.info(String.join(",", s));
}
MockHttpServletRequestBuilder addToken(MockHttpServletRequestBuilder builders) {
Token token = testTokenDao.loadToken();
return builders.param("username", token.getUsername())
.param("token", token.getToken());
}
// 初始化垃圾数据
@Test
void loadData() throws FileNotFoundException {
Gson gson = new Gson();
MyGarbage g = gson.fromJson(new InputStreamReader(new FileInputStream("src/main/resources/garbage.json"), StandardCharsets.UTF_8), MyGarbage.class);
for (Garbage garbage : g.getList()) {
garbageDao.save(garbage);
}
}
//废品价格数据
@Test
void loadPriceData() {
for (int i = 0; i < 100; i++) {
GarbageWastePrice price = new GarbageWastePrice();
price.setName(RandomStringUtils.randomAlphabetic(6));
price.setPrice(new Random().nextInt(100) * 1F);
garbagePriceDao.save(price);
}
}
//废品数据名字自定义
@Test
void initPriceDataWithName() {
String[] nameList = new String[]{"废品1", "废品2", "废品2", "废品2", "废品2"};
for (String name : nameList) {
GarbageWastePrice price = new GarbageWastePrice();
price.setName(name);
price.setPrice(new Random().nextInt(100) * 1F);
garbagePriceDao.save(price);
}
}
@Test
void testMessage() {
LOG.info(messageService.getMessage(GarbageCateGory.type1));
}
@Test
//测试添加活动贴
void testActive() throws Exception {
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.post("/forum/sendActive")
.param("activeStartTime", "2020/01/01")
.param("activeEndTime", "2020/01/02")
.param("activeScore", "15")
.param("title", "666")
.param("content", "fuckfuckfuckfuckfuck")
.param("registrationDeadline", "2020/01/03")
.param("forumType", "active");
mockMvc.perform(addToken(builder)).andDo(MockMvcResultHandlers.print()).andReturn();
}
@Test
//测试添加投诉贴
void testComplain() throws Exception {
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.post("/forum/sendComplain")
.param("complain", "panqihua")
.param("title", "666")
.param("content", "pan9412")
.param("forumType", "complan");
mockMvc.perform(addToken(builder)).andDo(MockMvcResultHandlers.print()).andReturn();
}
//测试发送动态
@Test
void testTopic() throws Exception {
for (int i = 0; i < 20; i++) {
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.post("/forum/sendTopic")
.param("title", "title" + i)
.param("content", "fuckfuckfuckfuckfuck")
.param("forumType", "topic");
mockMvc.perform(addToken(builder)
).andDo(MockMvcResultHandlers.print()).andReturn();
}
}
//测试查询帖子
@Test
void queryForum() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/api/forum/posts")
.param("status", Forum.ForumStatus.ok.name())
.param("currentPage", "1")
).andDo(MockMvcResultHandlers.print()).andReturn();
}
//测试登陆
@Test
void login() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.post("/login")
.param("username", "panqihua")
.param("password", "123456")
).andDo(MockMvcResultHandlers.print()).andReturn();
}
//测试垃圾分类查询
@Test
void queryGarbage() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/garbage/sorting")
.param("name", "安")
).andDo(MockMvcResultHandlers.print()).andReturn();
}
//测试检索预约人
@Test
void queryPeople() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/visitor/people")
.param("name", "p")
.param("outPeople", String.valueOf(false))).andDo(MockMvcResultHandlers.print()).andReturn();
}
//加载访客信息
@Test
void queryVisitor() throws Exception {
MockHttpServletRequestBuilder builders = MockMvcRequestBuilders.get("/visitor/reservation")
.param("currentPage", String.valueOf(1));
mockMvc.perform(addToken(builders)).andDo(MockMvcResultHandlers.print()).andReturn();
}
//加载帖子信息
@Test
void queryForumContent() throws Exception {
MockHttpServletRequestBuilder builders = MockMvcRequestBuilders.get("/forum/content")
.param("forumId", "5e9bb813f62d4f19ca975ec0");
mockMvc.perform(addToken(builders))
.andDo(MockMvcResultHandlers.print()).andReturn();
}
//添加测试用户
@Test
void insertUser() {
for (int i = 0; i <= 20; i++) {
MyInfo myInfo = new MyInfo();
myInfo.setUsername("fff" + i);
userDao.save(myInfo);
}
}
//加载所有用户
@Test
void loadUser() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/api/users")
.param("currentPage", String.valueOf(1))
.param("username", "fff")
.param("like", String.valueOf(false))
).andDo(MockMvcResultHandlers.print()).andReturn().getResponse();
}
//查询用户信息
@Test
void findUser() {
Info myInfo = userDao.queryUser("panqihua");
}
//测试访客保存
@Test
void saveVisitor() {
for (int i = 0; i < 20; i++) {
VisitorForm visitorForm = new VisitorForm();
visitorForm.setAppointment("abc" + i);
visitorForm.setChooseDate("2020/04/01");
visitorForm.setChooseTime("11:00");
visitorForm.setNotes("备注");
visitorForm.setUsername("panqihua");
visitorDao.save(visitorForm);
}
}
}