OCT
REM: 1. 增加Auth控制层单元测试 2. 增加Auth数据库单元测试 3. 增加数据库SQL XML配置文件
This commit is contained in:
parent
9d6bc45bb6
commit
a48e6dc93c
src
main
java/com/dispose
resources/mappers
test/java/com/dispose
TestSuit
controller
mapper
|
@ -24,7 +24,7 @@ import javax.annotation.Resource;
|
|||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "/handle")
|
||||
@RequestMapping(value = "/auth")
|
||||
@Slf4j
|
||||
@Api(value = "抗DDoS处置平台认证接口", tags = "抗DDoS处置平台认证接口")
|
||||
@Component
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package com.dispose.manager;
|
||||
|
||||
import com.dispose.common.ErrorCode;
|
||||
import com.dispose.pojo.entity.UserAccount;
|
||||
import com.dispose.pojo.po.UserAccountCache;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.dispose.mapper.UserAccountMapper">
|
||||
<!-- mapper xml文件中只编写复杂逻辑的SQL SQL单独拿出来写,与代码解耦,SQL的熟练编写是每个研发必备的技能 -->
|
||||
<select id="getUserByName" resultType="com.dispose.pojo.entity.UserAccount">
|
||||
SELECT * FROM user_account WHERE username = #{username}
|
||||
</select>
|
||||
<update id="lockUserAccount">
|
||||
UPDATE
|
||||
user_account
|
||||
SET
|
||||
status = 1,
|
||||
lockTime = CURRENT_TIMESTAMP
|
||||
WHERE
|
||||
username = #{username, jdbcType=VARCHAR}
|
||||
</update>
|
||||
<update id="unlockUserAccount">
|
||||
UPDATE
|
||||
user_account
|
||||
SET
|
||||
status = 0,
|
||||
lockTime = 0
|
||||
WHERE
|
||||
username = #{username, jdbcType=VARCHAR}
|
||||
</update>
|
||||
<update id="refreshLoginTime">
|
||||
UPDATE
|
||||
user_account
|
||||
SET
|
||||
lastLoginTime = CURRENT_TIMESTAMP
|
||||
WHERE
|
||||
username = #{username, jdbcType=VARCHAR}
|
||||
</update>
|
||||
</mapper>
|
|
@ -0,0 +1,17 @@
|
|||
package com.dispose.TestSuit;
|
||||
|
||||
|
||||
import com.dispose.controller.AuthControllerTest;
|
||||
import com.dispose.dptech.DPTechInterfaceTestCase;
|
||||
import com.dispose.mapper.UserAccountMapperTest;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
|
||||
@RunWith(Suite.class)
|
||||
@Suite.SuiteClasses({
|
||||
DPTechInterfaceTestCase.class,
|
||||
UserAccountMapperTest.class,
|
||||
AuthControllerTest.class
|
||||
})
|
||||
public class AllDisposePlatformTest {
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
package com.dispose.controller;
|
||||
|
||||
import com.dispose.common.ConstValue;
|
||||
import com.dispose.pojo.dto.ProtocolReqDTO;
|
||||
import com.dispose.pojo.dto.ProtocolRespDTO;
|
||||
import com.dispose.pojo.vo.auth.LoginReq;
|
||||
import com.dispose.pojo.vo.auth.LoginRsp;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@AutoConfigureMockMvc
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
@Slf4j
|
||||
public class AuthControllerTest {
|
||||
@Resource
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@Resource
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
static private String logToken = "";
|
||||
|
||||
@Test
|
||||
public void login1() throws Exception {
|
||||
LoginReq logReq = LoginReq.builder()
|
||||
.userName("admin")
|
||||
.password("c3855e6b6bb120450f160ba91134522868f89d36062f2061ebeefd80817e1d58")
|
||||
.build();
|
||||
|
||||
ProtocolReqDTO reqInfo = new ProtocolReqDTO();
|
||||
reqInfo.setVer(ConstValue.Protocol.VERSION);
|
||||
reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
|
||||
reqInfo.setTimeStamp(System.currentTimeMillis());
|
||||
reqInfo.setMsgContent(objectMapper.writeValueAsString(logReq));
|
||||
|
||||
String ret = mockMvc.perform(MockMvcRequestBuilders
|
||||
.post("/auth/login")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(objectMapper.writeValueAsString(reqInfo)))
|
||||
.andDo(print()).andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.code").value(200))
|
||||
.andReturn()
|
||||
.getResponse()
|
||||
.getContentAsString();
|
||||
|
||||
ProtocolRespDTO rspInfo = objectMapper.readValue(ret, ProtocolRespDTO.class);
|
||||
LoginRsp logRsp = objectMapper.readValue(rspInfo.getMsgContent(), LoginRsp.class);
|
||||
|
||||
logToken = logRsp.getToken();
|
||||
log.info("Login Token:" + logToken);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logout2() throws Exception {
|
||||
LoginReq logReq = LoginReq.builder()
|
||||
.userName("admin")
|
||||
.build();
|
||||
|
||||
ProtocolReqDTO reqInfo = new ProtocolReqDTO();
|
||||
reqInfo.setVer(ConstValue.Protocol.VERSION);
|
||||
reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
|
||||
reqInfo.setTimeStamp(System.currentTimeMillis());
|
||||
reqInfo.setMsgContent(objectMapper.writeValueAsString(logReq));
|
||||
|
||||
login1();
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders
|
||||
.post("/auth/logout")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", "Bearer " + logToken)
|
||||
.content(objectMapper.writeValueAsString(reqInfo)))
|
||||
.andDo(print()).andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.code").value(200))
|
||||
.andReturn()
|
||||
.getResponse()
|
||||
.getContentAsString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
package com.dispose.mapper;
|
||||
|
||||
import com.dispose.common.ConstValue;
|
||||
import com.dispose.pojo.entity.UserAccount;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.Assert;
|
||||
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.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest
|
||||
@Slf4j
|
||||
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||||
public class UserAccountMapperTest {
|
||||
@Autowired
|
||||
private ObjectMapper objMapper;
|
||||
|
||||
@Resource
|
||||
private UserAccountMapper userAccountMapper;
|
||||
|
||||
@Test
|
||||
public void getUserByName() throws JsonProcessingException {
|
||||
UserAccount user = userAccountMapper.getUserByName("admin");
|
||||
|
||||
log.info(objMapper.writerWithDefaultPrettyPrinter().writeValueAsString(user));
|
||||
|
||||
Assert.assertNotNull(user);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lockUser1() throws JsonProcessingException {
|
||||
userAccountMapper.lockUserAccount("admin");
|
||||
|
||||
UserAccount user = userAccountMapper.getUserByName("admin");
|
||||
Assert.assertEquals(new Long(user.getStatus()), new Long(ConstValue.UserAccountStatus.LOCKED));
|
||||
log.info(objMapper.writerWithDefaultPrettyPrinter().writeValueAsString(user));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unlockUser2() throws JsonProcessingException {
|
||||
userAccountMapper.unlockUserAccount("admin");
|
||||
|
||||
UserAccount user = userAccountMapper.getUserByName("admin");
|
||||
Assert.assertEquals(new Long(user.getStatus()), new Long(ConstValue.UserAccountStatus.NORMAL));
|
||||
log.info(objMapper.writerWithDefaultPrettyPrinter().writeValueAsString(user));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshLoginTime() throws JsonProcessingException {
|
||||
userAccountMapper.refreshLoginTime("admin");
|
||||
|
||||
UserAccount user = userAccountMapper.getUserByName("admin");
|
||||
Assert.assertNotNull(user);
|
||||
log.info(objMapper.writerWithDefaultPrettyPrinter().writeValueAsString(user));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue