parent
1b73f87d8e
commit
0667a3d889
|
@ -0,0 +1,355 @@
|
|||
package com.dispose.test.controller;
|
||||
|
||||
import com.dispose.common.*;
|
||||
import com.dispose.mapper.DisposeDeviceMapper;
|
||||
import com.dispose.pojo.dto.protocol.base.IdArraysReq;
|
||||
import com.dispose.pojo.dto.protocol.base.ProtocolReqDTO;
|
||||
import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
|
||||
import com.dispose.pojo.dto.protocol.device.manager.*;
|
||||
import com.dispose.pojo.entity.DisposeDevice;
|
||||
import com.dispose.pojo.po.MulReturnType;
|
||||
import com.dispose.test.Global.InitTestEnvironment;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import jodd.net.HttpStatus;
|
||||
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.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 java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* The type Auth controller test.
|
||||
*
|
||||
* @author <huangxin@cmhi.chinamoblie.com>
|
||||
*/
|
||||
@AutoConfigureMockMvc
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||||
@Slf4j
|
||||
public class DisposeDeviceManagerControllerTest extends InitTestEnvironment {
|
||||
/**
|
||||
* The Mock mvc.
|
||||
*/
|
||||
@Resource
|
||||
private MockMvc mockMvc;
|
||||
/**
|
||||
* The Object mapper.
|
||||
*/
|
||||
@Resource
|
||||
private ObjectMapper objectMapper;
|
||||
/**
|
||||
* The dispose device mapper.
|
||||
*/
|
||||
@Resource
|
||||
private DisposeDeviceMapper disposeDeviceMapper;
|
||||
|
||||
/**
|
||||
* A 1 add dispose device.
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test
|
||||
public void a1_addDisposeDevice() throws Exception {
|
||||
AddDeviceReq addReq = AddDeviceReq.builder()
|
||||
.items(new ArrayList<>())
|
||||
.build();
|
||||
|
||||
List<AddCapacityInfo> newCapList = new ArrayList<>();
|
||||
|
||||
newCapList.add(AddCapacityInfo.builder()
|
||||
.capacityType(DisposeCapacityType.CLEANUP.getValue())
|
||||
.objectType(DisposeObjectType.IP.getValue())
|
||||
.ipType(IpAddrType.IPV4_IPV6.getValue())
|
||||
.protectIp("")
|
||||
.build());
|
||||
|
||||
newCapList.add(AddCapacityInfo.builder()
|
||||
.capacityType(DisposeCapacityType.BLOCKING.getValue())
|
||||
.objectType(DisposeObjectType.URL.getValue())
|
||||
.ipType(IpAddrType.IPV4_IPV6.getValue())
|
||||
.protectIp("")
|
||||
.build());
|
||||
|
||||
addReq.getItems().add(AddDeviceInfo.builder()
|
||||
.ipAddr("10.88.77.15")
|
||||
.ipPort("")
|
||||
.deviceType(DisposeDeviceType.DPTECH_UMC.getValue())
|
||||
.areaCode(0)
|
||||
.deviceName("中移杭研实验室迪普清洗设备")
|
||||
.manufacturer("DPTech")
|
||||
.model("UMC")
|
||||
.version("5.7.13")
|
||||
.userName("admin")
|
||||
.password("UMCAdministrator")
|
||||
.urlPath("UMC/service/AbnormalFlowCleaningService")
|
||||
.urlType(HttpType.HTTP.getValue())
|
||||
.readme("实验室测试设备")
|
||||
.capacity(newCapList)
|
||||
.build());
|
||||
|
||||
ProtocolReqDTO<AddDeviceReq> reqInfo = new ProtocolReqDTO<>();
|
||||
|
||||
reqInfo.setVer(ConstValue.Protocol.VERSION);
|
||||
reqInfo.setCryptoType(ProtoCryptoType.CRYPTO_NONE.getCode());
|
||||
reqInfo.setTimeStamp(System.currentTimeMillis());
|
||||
reqInfo.setMsgContent(addReq);
|
||||
|
||||
List<DisposeDevice> decsBef = disposeDeviceMapper.selectAll();
|
||||
|
||||
String ret = mockMvc.perform(MockMvcRequestBuilders
|
||||
.put("/manager/device")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", ConstValue.STRING_HTTP_AUTH_HEAD + getLoginToken())
|
||||
.content(objectMapper.writeValueAsString(reqInfo)))
|
||||
.andDo(print()).andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.code").value(HttpStatus.ok().status()))
|
||||
.andReturn()
|
||||
.getResponse()
|
||||
.getContentAsString();
|
||||
|
||||
ProtocolRespDTO<AddDeviceRsp> rspInfo = objectMapper.readValue(ret,
|
||||
new TypeReference<ProtocolRespDTO<AddDeviceRsp>>() {
|
||||
});
|
||||
|
||||
verifyRespProtocol(rspInfo);
|
||||
|
||||
log.debug(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(rspInfo));
|
||||
|
||||
List<DisposeDevice> decsAfter = disposeDeviceMapper.selectAll();
|
||||
|
||||
for (AddDeviceRet d : rspInfo.getMsgContent().getItems()
|
||||
) {
|
||||
//before: no device information after: device information exists
|
||||
boolean before = false;
|
||||
if (decsBef != null && decsBef.size() > 0) {
|
||||
for (DisposeDevice v : decsBef) {
|
||||
if (v.getIpAddr().equals(d.getIpAddr()) && v.getIpPort().equals(d.getIpPort())) {
|
||||
before = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean after = false;
|
||||
if (decsAfter != null && decsAfter.size() > 0) {
|
||||
for (DisposeDevice v : decsAfter) {
|
||||
if (v.getIpAddr().equals(d.getIpAddr()) && v.getIpPort().equals(d.getIpPort())) {
|
||||
after = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Assert.assertNotNull(d.getIpAddr());
|
||||
Assert.assertNotNull(d.getIpPort());
|
||||
Assert.assertNotNull(d.getStatus());
|
||||
Assert.assertNotNull(d.getMessage());
|
||||
|
||||
if ((!before) && after) {
|
||||
Assert.assertEquals(Long.valueOf(d.getStatus()), Long.valueOf(ErrorCode.ERR_OK.getCode()));
|
||||
} else {
|
||||
Assert.assertNotEquals(Long.valueOf(d.getStatus()), Long.valueOf(ErrorCode.ERR_OK.getCode()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* B 1 remove dispose device.
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test
|
||||
public void b1_removeDisposeDevice() throws Exception {
|
||||
IdArraysReq reqData = IdArraysReq.builder()
|
||||
.id(new String[]{"1", "2"})
|
||||
.build();
|
||||
|
||||
ProtocolReqDTO<IdArraysReq> reqInfo = new ProtocolReqDTO<>();
|
||||
|
||||
reqInfo.setVer(ConstValue.Protocol.VERSION);
|
||||
reqInfo.setCryptoType(ProtoCryptoType.CRYPTO_NONE.getCode());
|
||||
reqInfo.setTimeStamp(System.currentTimeMillis());
|
||||
reqInfo.setMsgContent(reqData);
|
||||
|
||||
List<DisposeDevice> decsBef = disposeDeviceMapper.selectAll();
|
||||
|
||||
String ret = mockMvc.perform(MockMvcRequestBuilders
|
||||
.delete("/manager/device")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", ConstValue.STRING_HTTP_AUTH_HEAD + getLoginToken())
|
||||
.content(objectMapper.writeValueAsString(reqInfo)))
|
||||
.andDo(print()).andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.code").value(HttpStatus.ok().status()))
|
||||
.andReturn()
|
||||
.getResponse()
|
||||
.getContentAsString();
|
||||
|
||||
ProtocolRespDTO<List<DeviceInfoRsp>> rspInfo = objectMapper.readValue(ret,
|
||||
new TypeReference<ProtocolRespDTO<List<DeviceInfoRsp>>>() {
|
||||
});
|
||||
|
||||
verifyRespProtocol(rspInfo);
|
||||
|
||||
log.debug(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(rspInfo));
|
||||
|
||||
List<DisposeDevice> decsAfter = disposeDeviceMapper.selectAll();
|
||||
|
||||
for (DeviceInfoRsp d : rspInfo.getMsgContent()
|
||||
) {
|
||||
//before: device information exists after: no device information
|
||||
boolean before = false;
|
||||
if (decsBef != null && decsBef.size() > 0) {
|
||||
for (DisposeDevice v : decsBef) {
|
||||
if (v.getId().equals(Long.valueOf(d.getId()))) {
|
||||
before = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean after = false;
|
||||
if (decsAfter != null && decsAfter.size() > 0) {
|
||||
for (DisposeDevice v : decsAfter) {
|
||||
if (v.getId().equals(Long.valueOf(d.getId())) && (v.getStatus() == ObjectStatus.DELETED)) {
|
||||
after = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Assert.assertNotNull(d.getId());
|
||||
Assert.assertNotNull(d.getStatus());
|
||||
Assert.assertNotNull(d.getMessage());
|
||||
|
||||
if (before && after) {
|
||||
Assert.assertEquals(Long.valueOf(d.getStatus()), Long.valueOf(ErrorCode.ERR_OK.getCode()));
|
||||
Assert.assertEquals(d.getDevStatus(), ObjectStatus.DELETED);
|
||||
} else {
|
||||
Assert.assertNotEquals(Long.valueOf(d.getStatus()), Long.valueOf(ErrorCode.ERR_OK.getCode()));
|
||||
Assert.assertNotEquals(d.getDevStatus(), ObjectStatus.DELETED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* C 1 upgrade dispose device.
|
||||
*
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Test
|
||||
public void c1_upgradeDisposeDevice() throws Exception {
|
||||
AddDeviceReq addReq = AddDeviceReq.builder()
|
||||
.items(new ArrayList<>())
|
||||
.build();
|
||||
|
||||
List<AddCapacityInfo> newCapList = new ArrayList<>();
|
||||
|
||||
List<MulReturnType<Long, String>> beforeRed = new ArrayList<>();
|
||||
|
||||
disposeDeviceMapper.selectAll().forEach(v -> {
|
||||
if (v.getDevCapacity().size() == 0) {
|
||||
newCapList.add(AddCapacityInfo.builder()
|
||||
.capacityType(DisposeCapacityType.CLEANUP.getValue())
|
||||
.objectType(DisposeObjectType.IP.getValue())
|
||||
.ipType(IpAddrType.IPV4_IPV6.getValue())
|
||||
.protectIp("")
|
||||
.build());
|
||||
}
|
||||
|
||||
beforeRed.add(new MulReturnType<>(v.getId(), v.getVersion()));
|
||||
|
||||
if (v.getVersion().equals("B5.2.27.7")) {
|
||||
v.setVersion("5.7.13");
|
||||
} else {
|
||||
v.setVersion("B5.2.27.7");
|
||||
}
|
||||
|
||||
addReq.getItems().add(AddDeviceInfo.builder()
|
||||
.ipAddr(v.getIpAddr())
|
||||
.ipPort(v.getIpPort())
|
||||
.deviceType(v.getDeviceType().getValue())
|
||||
.areaCode(v.getAreaCode())
|
||||
.deviceName(v.getDeviceName())
|
||||
.manufacturer(v.getManufacturer())
|
||||
.model(v.getModel())
|
||||
.version(v.getVersion())
|
||||
.userName(v.getUserName())
|
||||
.password(v.getPassword())
|
||||
.urlPath(v.getUrlPath())
|
||||
.urlType(v.getUrlType().getValue())
|
||||
.readme(v.getReadme())
|
||||
.capacity(newCapList)
|
||||
.build());
|
||||
});
|
||||
|
||||
ProtocolReqDTO<AddDeviceReq> reqInfo = new ProtocolReqDTO<>();
|
||||
|
||||
reqInfo.setVer(ConstValue.Protocol.VERSION);
|
||||
reqInfo.setCryptoType(ProtoCryptoType.CRYPTO_NONE.getCode());
|
||||
reqInfo.setTimeStamp(System.currentTimeMillis());
|
||||
reqInfo.setMsgContent(addReq);
|
||||
|
||||
String ret = mockMvc.perform(MockMvcRequestBuilders
|
||||
.post("/manager/upgrade")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.header("Authorization", ConstValue.STRING_HTTP_AUTH_HEAD + getLoginToken())
|
||||
.content(objectMapper.writeValueAsString(reqInfo)))
|
||||
.andDo(print()).andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$.code").value(HttpStatus.ok().status()))
|
||||
.andReturn()
|
||||
.getResponse()
|
||||
.getContentAsString();
|
||||
|
||||
ProtocolRespDTO<List<DeviceInfoRsp>> rspInfo = objectMapper.readValue(ret,
|
||||
new TypeReference<ProtocolRespDTO<List<DeviceInfoRsp>>>() {
|
||||
});
|
||||
|
||||
verifyRespProtocol(rspInfo);
|
||||
|
||||
log.debug(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(rspInfo));
|
||||
|
||||
for (DeviceInfoRsp deviceInfoRsp : rspInfo.getMsgContent()
|
||||
) {
|
||||
|
||||
List<MulReturnType<Long, String>> beforeDev = beforeRed.stream()
|
||||
.filter(k -> k.getFirstParam().equals(Long.valueOf(deviceInfoRsp.getId())))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
DisposeDevice afterDev = disposeDeviceMapper.getDeviceById(Long.valueOf(deviceInfoRsp.getId()));
|
||||
log.debug(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(afterDev));
|
||||
|
||||
if (deviceInfoRsp.getStatus() == ErrorCode.ERR_OK.getCode()) {
|
||||
log.info("+++++++++++++++++++++before{}", beforeDev.get(0).getSecondParam());
|
||||
log.info("+++++++++++++++++++++after{}", afterDev.getVersion());
|
||||
|
||||
Assert.assertNotNull(deviceInfoRsp);
|
||||
Assert.assertNotNull(deviceInfoRsp.getId());
|
||||
Assert.assertNotNull(deviceInfoRsp.getMessage());
|
||||
Assert.assertNotEquals(afterDev.getVersion(), beforeDev.get(0).getSecondParam());
|
||||
} else {
|
||||
Assert.assertEquals(afterDev.getVersion(), beforeDev.get(0).getSecondParam());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue