mirror of
https://github.com/didi/KnowStreaming.git
synced 2026-01-05 13:08:48 +08:00
部分controller接口集成测试
This commit is contained in:
@@ -0,0 +1,37 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.gateway;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class GatewayHeartbeatControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试连接信息上报")
|
||||||
|
public void getSecurityAcls() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/heartbeat/survive-user?clusterId=" + physicalClusterId
|
||||||
|
+ "&brokerId=" + configMap.get(ConfigConstant.ALIVE_BROKER_ID);
|
||||||
|
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
HttpEntity<JSONObject> httpEntity = new HttpEntity<>(jsonObject, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.gateway;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class GatewayReportControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询开启JMX采集的Topic")
|
||||||
|
public void getDiscoveryAddress() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/report/jmx/topics?clusterId=" + physicalClusterId;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<String> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.gateway;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.gateway.KafkaAclSearchDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.gateway.KafkaUserSearchDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class GatewaySecurityControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private KafkaAclSearchDTO getKafkaAclSearchDTO() {
|
||||||
|
KafkaAclSearchDTO kafkaAclSearchDTO = new KafkaAclSearchDTO();
|
||||||
|
kafkaAclSearchDTO.setClusterId(physicalClusterId);
|
||||||
|
kafkaAclSearchDTO.setStart(0L);
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
kafkaAclSearchDTO.setEnd(now);
|
||||||
|
return kafkaAclSearchDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
private KafkaUserSearchDTO getKafkaUserSearchDTO() {
|
||||||
|
KafkaUserSearchDTO kafkaUserSearchDTO = new KafkaUserSearchDTO();
|
||||||
|
kafkaUserSearchDTO.setStart(0L);
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
kafkaUserSearchDTO.setEnd(now);
|
||||||
|
return kafkaUserSearchDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询Kafka用户权限查询")
|
||||||
|
public void getSecurityAcls() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/security/acls";
|
||||||
|
HttpEntity<KafkaAclSearchDTO> httpEntity = new HttpEntity<>(getKafkaAclSearchDTO(), httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询Kafka用户查询")
|
||||||
|
public void getSecurityUsers() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/security/users";
|
||||||
|
HttpEntity<KafkaUserSearchDTO> httpEntity = new HttpEntity<>(getKafkaUserSearchDTO(), httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.gateway;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class GatewayServiceDiscoveryControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取指定集群服务地址")
|
||||||
|
public void getDiscoveryAddress() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/discovery/address?clusterId=" + physicalClusterId;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<String> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取最大App请求速率")
|
||||||
|
public void getDiscoveryAppIdRate() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/discovery/appId-rate?versionNumber=1";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取集群服务地址")
|
||||||
|
public void getDiscoveryInit() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/discovery/init";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取最大IP请求速率")
|
||||||
|
public void getDiscoveryIpRate() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/discovery/ip-rate?versionNumber=1";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取最大并发请求数")
|
||||||
|
public void getDiscoveryMaxRequestNum() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/discovery/max-request-num?versionNumber=1";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试最大SP请求速率")
|
||||||
|
public void getDiscoverySpLimit() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/discovery/sp-limit?versionNumber=1";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取集群服务地址")
|
||||||
|
public void getDiscoveryUpdate() {
|
||||||
|
String url = baseUrl + "/gateway/api/v1/discovery/update?versionNumber=1";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.normal;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class NormalAccountControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试账号搜索")
|
||||||
|
public void getAccountsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/accounts?keyWord=admin";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询角色")
|
||||||
|
public void getAccountTest() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/accounts/account";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,15 +3,19 @@ package com.xiaojukeji.kafka.manager.web.api.versionone.normal;
|
|||||||
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.dto.normal.AppDTO;
|
import com.xiaojukeji.kafka.manager.common.entity.dto.normal.AppDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicCreationDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicDeletionDTO;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.Constant;
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.HttpUtils;
|
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
|
||||||
import org.springframework.http.*;
|
import org.springframework.http.*;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,22 +23,82 @@ import java.util.Map;
|
|||||||
* @Date 2022/1/7
|
* @Date 2022/1/7
|
||||||
*/
|
*/
|
||||||
public class NormalAppControllerTest extends BaseTest {
|
public class NormalAppControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
// 成功创建Topic
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
createCommonTopic(url);
|
||||||
|
}
|
||||||
|
|
||||||
private final TestRestTemplate testRestTemplate = new TestRestTemplate();
|
@AfterClass
|
||||||
|
public void afterTest() {
|
||||||
|
// 删除Topic成功
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
deleteTopic(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TopicCreationDTO getTopicCreationDTO() {
|
||||||
|
// 在broker1上创建1分区,1副本的createTopicTest
|
||||||
|
TopicCreationDTO creationDTO = new TopicCreationDTO();
|
||||||
|
creationDTO.setAppId(configMap.get(ConfigConstant.APPID));
|
||||||
|
// 在broker1上创建
|
||||||
|
Integer brokerId = Integer.parseInt(configMap.get(ConfigConstant.ALIVE_BROKER_ID));
|
||||||
|
creationDTO.setBrokerIdList(Arrays.asList(brokerId));
|
||||||
|
creationDTO.setPartitionNum(1);
|
||||||
|
creationDTO.setReplicaNum(1);
|
||||||
|
creationDTO.setRetentionTime(1000L * 60 * 60 * 168);
|
||||||
|
creationDTO.setPeakBytesIn(10L * 1024 * 1024);
|
||||||
|
// 物理集群id
|
||||||
|
|
||||||
|
creationDTO.setClusterId(physicalClusterId);
|
||||||
|
creationDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
return creationDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCommonTopic(String url) {
|
||||||
|
// 创建Topic
|
||||||
|
TopicCreationDTO creationDTO = getTopicCreationDTO();
|
||||||
|
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteTopic(String url) {
|
||||||
|
// 删除创建的topic
|
||||||
|
TopicDeletionDTO topicDeletionDTO = getTopicDeletionDTO();
|
||||||
|
HttpEntity<List<TopicDeletionDTO>> httpEntity2 = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
||||||
|
ResponseEntity<Result> result2 = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity2, Result.class);
|
||||||
|
Assert.assertEquals(result2.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result2.getBody());
|
||||||
|
Assert.assertEquals(result2.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private TopicDeletionDTO getTopicDeletionDTO() {
|
||||||
|
TopicDeletionDTO deletionDTO = new TopicDeletionDTO();
|
||||||
|
|
||||||
|
deletionDTO.setClusterId(physicalClusterId);
|
||||||
|
deletionDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
deletionDTO.setUnForce(true);
|
||||||
|
return deletionDTO;
|
||||||
|
}
|
||||||
|
|
||||||
private AppDTO getAppDTO() {
|
private AppDTO getAppDTO() {
|
||||||
AppDTO appDTO = new AppDTO();
|
AppDTO appDTO = new AppDTO();
|
||||||
appDTO.setAppId(Constant.APPID_IN_MYSQL);
|
appDTO.setAppId(configMap.get(ConfigConstant.APPID));
|
||||||
appDTO.setName("KM管理员");
|
appDTO.setName("KM管理员");
|
||||||
appDTO.setPrincipals("admin");
|
appDTO.setPrincipals(configMap.get(ConfigConstant.ADMIN_USER));
|
||||||
appDTO.setDescription("KM管理员应用-谨慎对外提供");
|
appDTO.setDescription("KM管理员应用-谨慎对外提供");
|
||||||
return appDTO;
|
return appDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(description = "测试获取App列表")
|
@Test(description = "测试获取App列表")
|
||||||
public void getAppsTest() {
|
public void getAppsTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps";
|
String url = baseUrl + "/api/v1/normal/apps";
|
||||||
|
|
||||||
// 有headers登陆
|
// 有headers登陆
|
||||||
getAppsWithHeadersTest(url);
|
getAppsWithHeadersTest(url);
|
||||||
@@ -43,7 +107,6 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppsWithHeadersTest(String url) {
|
private void getAppsWithHeadersTest(String url) {
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -59,7 +122,7 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试由appId获取app")
|
@Test(description = "测试由appId获取app")
|
||||||
public void getAppBasicInfoTest() {
|
public void getAppBasicInfoTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps/{appId}/basic-info";
|
String url = baseUrl + "/api/v1/normal/apps/{appId}/basic-info";
|
||||||
|
|
||||||
// 查询结果不为空
|
// 查询结果不为空
|
||||||
getAppBasicInfo2ResultNotEmptyTest(url);
|
getAppBasicInfo2ResultNotEmptyTest(url);
|
||||||
@@ -68,9 +131,9 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppBasicInfo2ResultNotEmptyTest(String url) {
|
private void getAppBasicInfo2ResultNotEmptyTest(String url) {
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>("", HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
Map<String, String> urlVariables = new HashMap<>();
|
Map<String, String> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -80,9 +143,9 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppBasicInfo2ResultEmptyTest(String url) {
|
private void getAppBasicInfo2ResultEmptyTest(String url) {
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>("", HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
Map<String, String> urlVariables = new HashMap<>();
|
Map<String, String> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.INVALID_APPID);
|
urlVariables.put("appId", ConfigConstant.INVALID_STRING);
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -93,7 +156,7 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试修改app")
|
@Test(description = "测试修改app")
|
||||||
public void modifyApp() {
|
public void modifyApp() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps";
|
String url = baseUrl + "/api/v1/normal/apps";
|
||||||
// 修改成功
|
// 修改成功
|
||||||
modifyApp2SuccessTest(url);
|
modifyApp2SuccessTest(url);
|
||||||
// 传的dto为空, 修改不成功
|
// 传的dto为空, 修改不成功
|
||||||
@@ -102,7 +165,6 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void modifyApp2SuccessTest(String url) {
|
private void modifyApp2SuccessTest(String url) {
|
||||||
AppDTO appDTO = getAppDTO();
|
AppDTO appDTO = getAppDTO();
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<AppDTO> httpEntity =
|
HttpEntity<AppDTO> httpEntity =
|
||||||
new HttpEntity<>(appDTO, httpHeaders);
|
new HttpEntity<>(appDTO, httpHeaders);
|
||||||
@@ -115,7 +177,6 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void modifyApp2FailureTest(String url) {
|
private void modifyApp2FailureTest(String url) {
|
||||||
AppDTO appDTO = new AppDTO();
|
AppDTO appDTO = new AppDTO();
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<AppDTO> httpEntity =
|
HttpEntity<AppDTO> httpEntity =
|
||||||
new HttpEntity<>(appDTO, httpHeaders);
|
new HttpEntity<>(appDTO, httpHeaders);
|
||||||
@@ -128,7 +189,7 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试获取有权限的Topic信息")
|
@Test(description = "测试获取有权限的Topic信息")
|
||||||
public void getAppTopicsTest() {
|
public void getAppTopicsTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps/{appId}/topics";
|
String url = baseUrl + "/api/v1/normal/apps/{appId}/topics";
|
||||||
// 参数appId
|
// 参数appId
|
||||||
getAppTopics1Test(url);
|
getAppTopics1Test(url);
|
||||||
// 参数有appId,mine=true
|
// 参数有appId,mine=true
|
||||||
@@ -140,9 +201,9 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppTopics1Test(String url) {
|
private void getAppTopics1Test(String url) {
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, String> urlVariables = new HashMap<>();
|
Map<String, String> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -153,9 +214,9 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
private void getAppTopics2Test(String url) {
|
private void getAppTopics2Test(String url) {
|
||||||
url = url + "?mine=true";
|
url = url + "?mine=true";
|
||||||
|
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -165,9 +226,9 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void getAppTopics3Test(String url) {
|
private void getAppTopics3Test(String url) {
|
||||||
url = url + "?mine=false";
|
url = url + "?mine=false";
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, String> urlVariables = new HashMap<>();
|
Map<String, String> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -177,9 +238,9 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void getAppTopics4Test(String url) {
|
private void getAppTopics4Test(String url) {
|
||||||
url = url + "?mine=false";
|
url = url + "?mine=false";
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, String> urlVariables = new HashMap<>();
|
Map<String, String> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.INVALID_APPID);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -189,7 +250,7 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试Quota查询")
|
@Test(description = "测试Quota查询")
|
||||||
public void getAppIdQuotaTest() {
|
public void getAppIdQuotaTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps/{appId}/quotas";
|
String url = baseUrl + "/api/v1/normal/apps/{appId}/quotas";
|
||||||
// appId不为空,clusterId和topicName在数据库中真实存在,isPhysicalClusterId=true
|
// appId不为空,clusterId和topicName在数据库中真实存在,isPhysicalClusterId=true
|
||||||
getAppIdQuota1Test(url);
|
getAppIdQuota1Test(url);
|
||||||
// appId无效
|
// appId无效
|
||||||
@@ -201,11 +262,11 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppIdQuota1Test(String url) {
|
private void getAppIdQuota1Test(String url) {
|
||||||
url = url + "?clusterId=" + Constant.PHYSICAL_CLUSTER_ID_IN_MYSQL + "&topicName=" +
|
url = url + "?clusterId=" + physicalClusterId + "&topicName=" +
|
||||||
Constant.TOPIC_NAME_IN_MYSQL + "&isPhysicalClusterId=true";
|
configMap.get(ConfigConstant.TOPIC_NAME) + "&isPhysicalClusterId=true";
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -214,11 +275,11 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppIdQuota2Test(String url) {
|
private void getAppIdQuota2Test(String url) {
|
||||||
url = url + "?clusterId=" + Constant.PHYSICAL_CLUSTER_ID_IN_MYSQL + "&topicName=" +
|
url = url + "?clusterId=" + physicalClusterId + "&topicName=" +
|
||||||
Constant.TOPIC_NAME_IN_MYSQL + "&isPhysicalClusterId=true";
|
configMap.get(ConfigConstant.TOPIC_NAME) + "&isPhysicalClusterId=true";
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.INVALID_APPID);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -227,11 +288,11 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppIdQuota3Test(String url) {
|
private void getAppIdQuota3Test(String url) {
|
||||||
url = url + "?clusterId=" + Constant.PHYSICAL_CLUSTER_ID_IN_MYSQL + "&topicName=" +
|
url = url + "?clusterId=" + physicalClusterId + "&topicName=" +
|
||||||
Constant.INVALID_TOPIC_NAME + "&isPhysicalClusterId=true";
|
ConfigConstant.INVALID_STRING + "&isPhysicalClusterId=true";
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -240,11 +301,11 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppIdQuota4Test(String url) {
|
private void getAppIdQuota4Test(String url) {
|
||||||
url = url + "?clusterId=" + Constant.INVALID_CLUSTER_ID_IN_MYSQL + "&topicName=" +
|
url = url + "?clusterId=" + ConfigConstant.INVALID_CLUSTER_ID + "&topicName=" +
|
||||||
Constant.TOPIC_NAME_IN_MYSQL + "&isPhysicalClusterId=false";
|
configMap.get(ConfigConstant.TOPIC_NAME) + "&isPhysicalClusterId=false";
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -254,7 +315,7 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试获取应用连接信息")
|
@Test(description = "测试获取应用连接信息")
|
||||||
public void getAppIdConnectionsTest() {
|
public void getAppIdConnectionsTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps/{appId}/connections";
|
String url = baseUrl + "/api/v1/normal/apps/{appId}/connections";
|
||||||
// appId存在数据库
|
// appId存在数据库
|
||||||
getAppIdConnections1Test(url);
|
getAppIdConnections1Test(url);
|
||||||
// appId不存在数据库
|
// appId不存在数据库
|
||||||
@@ -262,9 +323,9 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void getAppIdConnections1Test(String url) {
|
public void getAppIdConnections1Test(String url) {
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>("", HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
Map<String, String> urlVariables = new HashMap<>();
|
Map<String, String> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -274,9 +335,9 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void getAppIdConnections2Test(String url) {
|
public void getAppIdConnections2Test(String url) {
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>("", HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
Map<String, String> urlVariables = new HashMap<>();
|
Map<String, String> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.INVALID_APPID);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -298,12 +359,12 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppIdAuthority1Test() {
|
private void getAppIdAuthority1Test() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps/{appId}/authorities";
|
String url = baseUrl + "/api/v1/normal/apps/{appId}/authorities";
|
||||||
url = url + "?clusterId=" + Constant.LOGICAL_CLUSTER_ID_IN_MYSQL + "&topicName=" +
|
url = url + "?clusterId=" + configMap.get(ConfigConstant.LOGICAL_CLUSTER_ID) + "&topicName=" +
|
||||||
Constant.TOPIC_NAME_IN_MYSQL;
|
configMap.get(ConfigConstant.TOPIC_NAME);
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -312,12 +373,12 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppIdAuthority2Test() {
|
private void getAppIdAuthority2Test() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps/{appId}/authorities";
|
String url = baseUrl + "/api/v1/normal/apps/{appId}/authorities";
|
||||||
url = url + "?clusterId=" + Constant.LOGICAL_CLUSTER_ID_IN_MYSQL + "&topicName=" +
|
url = url + "?clusterId=" + configMap.get(ConfigConstant.LOGICAL_CLUSTER_ID) + "&topicName=" +
|
||||||
Constant.TOPIC_NAME_IN_MYSQL;
|
configMap.get(ConfigConstant.TOPIC_NAME);
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.INVALID_APPID);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -326,12 +387,12 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppIdAuthority3Test() {
|
private void getAppIdAuthority3Test() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps/{appId}/authorities";
|
String url = baseUrl + "/api/v1/normal/apps/{appId}/authorities";
|
||||||
url = url + "?clusterId=" + Constant.INVALID_CLUSTER_ID_IN_MYSQL + "&topicName=" +
|
url = url + "?clusterId=" +ConfigConstant.INVALID_CLUSTER_ID + "&topicName=" +
|
||||||
Constant.TOPIC_NAME_IN_MYSQL;
|
configMap.get(ConfigConstant.TOPIC_NAME);
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -340,12 +401,12 @@ public class NormalAppControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getAppIdAuthority4Test() {
|
private void getAppIdAuthority4Test() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/apps/{appId}/authorities";
|
String url = baseUrl + "/api/v1/normal/apps/{appId}/authorities";
|
||||||
url = url + "?clusterId=" + Constant.LOGICAL_CLUSTER_ID_IN_MYSQL + "&topicName=" +
|
url = url + "?clusterId=" + configMap.get(ConfigConstant.LOGICAL_CLUSTER_ID) + "&topicName=" +
|
||||||
Constant.INVALID_TOPIC_NAME;
|
ConfigConstant.INVALID_STRING;
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>(null, HttpUtils.getHttpHeaders());
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("appId", Constant.APPID_IN_MYSQL);
|
urlVariables.put("appId", configMap.get(ConfigConstant.APPID));
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.normal;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class NormalBillControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试用户账单概览")
|
||||||
|
public void getBillStaffSummaryTest() {
|
||||||
|
Long now = System.currentTimeMillis();
|
||||||
|
String url = baseUrl + "/api/v1/normal/bills/staff-summary?startTime=0&endTime=" + now;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试用户账单详情")
|
||||||
|
public void getBillStaffDetailTest() {
|
||||||
|
Long now = System.currentTimeMillis();
|
||||||
|
String url = baseUrl + "/api/v1/normal/bills/staff-detail?timestamp=0" + now;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,26 +3,37 @@ package com.xiaojukeji.kafka.manager.web.api.versionone.normal;
|
|||||||
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.Constant;
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.HttpUtils;
|
import org.springframework.http.HttpEntity;
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
import org.springframework.http.HttpMethod;
|
||||||
import org.springframework.http.*;
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xuguang
|
* @author xuguang
|
||||||
* @Date 2022/1/14
|
* @Date 2022/1/14
|
||||||
*/
|
*/
|
||||||
public class NormalClusterControllerTest extends BaseTest {
|
public class NormalClusterControllerTest extends BaseTest {
|
||||||
|
|
||||||
private final TestRestTemplate testRestTemplate = new TestRestTemplate();
|
private Long logicalClusterId;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
logicalClusterId = Long.parseLong(configMap.get(ConfigConstant.LOGICAL_CLUSTER_ID));
|
||||||
|
}
|
||||||
|
|
||||||
@Test(description = "测试获取集群列表")
|
@Test(description = "测试获取集群列表")
|
||||||
public void getLogicClusterVOListTest() {
|
public void getLogicClusterVOListTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/clusters/basic-info";
|
String url = baseUrl + "/api/v1/normal/clusters/basic-info";
|
||||||
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -33,11 +44,123 @@ public class NormalClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试由逻辑集群id获取集群")
|
@Test(description = "测试由逻辑集群id获取集群")
|
||||||
public void getLogicClusterVOByIdTest() {
|
public void getLogicClusterVOByIdTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/normal/clusters/{logicalClusterId}/basic-info";
|
// 获取成功
|
||||||
|
getLogicClusterVOById1();
|
||||||
|
// 集群不存在
|
||||||
|
getLogicClusterVOById2();
|
||||||
|
}
|
||||||
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
private void getLogicClusterVOById1() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/basic-info";
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", logicalClusterId);
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getLogicClusterVOById2() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/basic-info";
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", ConfigConstant.INVALID_CLUSTER_ID);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.CLUSTER_NOT_EXIST.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试由逻辑集群id获取集群元信息列表")
|
||||||
|
public void getBrokerMetadataTest() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/broker-metadata";
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", logicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试由逻辑集群id获取集群")
|
||||||
|
public void getBrokersTest() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/brokers";
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", logicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试由逻辑集群id获取集群实时流量")
|
||||||
|
public void getMetricsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/metrics";
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", logicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试由逻辑集群id获取集群历史流量")
|
||||||
|
public void getMetricsHistoryTest() {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/metrics-history?startTime=0&endTime=" + now;
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", logicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试由逻辑集群id获取集群限流信息")
|
||||||
|
public void getThrottlesTest() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/throttles";
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", logicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试由逻辑集群id获取集群topic元信息列表")
|
||||||
|
public void getTopicMetadataTest() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/topic-metadata";
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", logicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试由逻辑集群id获取集群列表")
|
||||||
|
public void getTopicsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/clusters/{logicalClusterId}/topics";
|
||||||
|
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("logicalClusterId", logicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
Assert.assertNotNull(result.getBody());
|
Assert.assertNotNull(result.getBody());
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.normal;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class NormalConfigControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取集群套餐")
|
||||||
|
public void getClusterCombos() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/configs/cluster-combos";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取集群套餐")
|
||||||
|
public void getClusterModes() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/configs/cluster-combos";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取数据中心")
|
||||||
|
public void getIdc() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/configs/idc";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取峰值状态")
|
||||||
|
public void getPeakFlowStatus() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/configs/peak-flow-status";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取峰值状态")
|
||||||
|
public void getTaskStatus() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/configs/task-status";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.normal;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class NormalOrderControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createOrderSuccess() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,274 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.normal;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.normal.TopicDataSampleDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicCreationDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicDeletionDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.CustomDataSource;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class NormalTopicControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
private String topicName;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
// 成功创建Topic
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
createCommonTopic(url);
|
||||||
|
|
||||||
|
topicName = configMap.get(ConfigConstant.TOPIC_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public void afterTest() {
|
||||||
|
// 删除Topic成功
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
deleteTopics(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCommonTopic(String url) {
|
||||||
|
// 创建Topic
|
||||||
|
|
||||||
|
TopicCreationDTO creationDTO = CustomDataSource.getTopicCreationDTO(configMap);
|
||||||
|
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteTopics(String url) {
|
||||||
|
// 删除创建的topic
|
||||||
|
TopicDeletionDTO topicDeletionDTO = CustomDataSource.getTopicDeletionDTO(configMap);
|
||||||
|
HttpEntity<List<TopicDeletionDTO>> httpEntity2 = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
||||||
|
ResponseEntity<Result> result2 = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity2, Result.class);
|
||||||
|
Assert.assertEquals(result2.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result2.getBody());
|
||||||
|
Assert.assertEquals(result2.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试Topic有权限的应用信息")
|
||||||
|
public void getApps() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/apps?isPhysicalClusterId=true";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic基本信息")
|
||||||
|
public void getBasicInfo() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/basic-info?isPhysicalClusterId=true";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic账单信息")
|
||||||
|
public void getTopicBills() {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/basic-info?" +
|
||||||
|
"isPhysicalClusterId=true&startTime=0&endTime=" + now;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic业务信息")
|
||||||
|
public void getBusiness() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/business?isPhysicalClusterId=true";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic连接信息")
|
||||||
|
public void getConnection() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/connections?isPhysicalClusterId=true" +
|
||||||
|
"&appId=" + configMap.get(ConfigConstant.APPID);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic实时流量信息")
|
||||||
|
public void getMetrics() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/metrics?isPhysicalClusterId=true";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic历史流量信息")
|
||||||
|
public void getMetricsHistory() {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/metrics-history?isPhysicalClusterId=true" +
|
||||||
|
"&startTime=0&endTime=" + now;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic历史流量信息")
|
||||||
|
public void getMyApps() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/my-apps?isPhysicalClusterId=true";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic分区信息")
|
||||||
|
public void getPartitions() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/partitions?isPhysicalClusterId=true";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic实时请求耗时信息")
|
||||||
|
public void getRequestTime() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/request-time?isPhysicalClusterId=true";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic历史流量信息")
|
||||||
|
public void getRequestTimeHistory() {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/request-time-history?isPhysicalClusterId=true" +
|
||||||
|
"&startTime=0&endTime=" + now;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic历史流量信息")
|
||||||
|
public void getSample() {
|
||||||
|
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/sample";
|
||||||
|
HttpEntity<TopicDataSampleDTO> httpEntity = new HttpEntity<>(getTopicDataSampleDTO(), httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private TopicDataSampleDTO getTopicDataSampleDTO() {
|
||||||
|
TopicDataSampleDTO topicDataSampleDTO = new TopicDataSampleDTO();
|
||||||
|
topicDataSampleDTO.setIsPhysicalClusterId(true);
|
||||||
|
topicDataSampleDTO.setOffset(0L);
|
||||||
|
topicDataSampleDTO.setTimeout(0);
|
||||||
|
topicDataSampleDTO.setMaxMsgNum(0);
|
||||||
|
topicDataSampleDTO.setTruncate(false);
|
||||||
|
topicDataSampleDTO.setPartitionId(0);
|
||||||
|
return topicDataSampleDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic流量统计信息")
|
||||||
|
public void getStatisticMetrics() {
|
||||||
|
String url = baseUrl + "/api/v1/normal/{clusterId}/topics/{topicName}/statistic-metrics?isPhysicalClusterId=true" +
|
||||||
|
"&latest-day=1";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", topicName);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,53 +2,89 @@ package com.xiaojukeji.kafka.manager.web.api.versionone.op;
|
|||||||
|
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicCreationDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicDeletionDTO;
|
||||||
import com.xiaojukeji.kafka.manager.openapi.common.dto.TopicAuthorityDTO;
|
import com.xiaojukeji.kafka.manager.openapi.common.dto.TopicAuthorityDTO;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.Constant;
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.HttpUtils;
|
import com.xiaojukeji.kafka.manager.web.config.CustomDataSource;
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||||
import org.springframework.http.*;
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xuguang
|
* @author xuguang
|
||||||
* @Date 2022/1/11
|
* @Date 2022/1/11
|
||||||
*/
|
*/
|
||||||
public class OpAuthorityControllerTest extends BaseTest {
|
public class OpAuthorityControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
// 成功创建Topic
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
createCommonTopic3Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public void afterTest() {
|
||||||
|
// 删除Topic成功
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
deleteTopics3Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCommonTopic3Test(String url) {
|
||||||
|
// 创建Topic
|
||||||
|
|
||||||
|
TopicCreationDTO creationDTO = CustomDataSource.getTopicCreationDTO(configMap);
|
||||||
|
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteTopics3Test(String url) {
|
||||||
|
// 删除创建的topic
|
||||||
|
TopicDeletionDTO topicDeletionDTO = CustomDataSource.getTopicDeletionDTO(configMap);
|
||||||
|
HttpEntity<List<TopicDeletionDTO>> httpEntity2 = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
||||||
|
ResponseEntity<Result> result2 = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity2, Result.class);
|
||||||
|
Assert.assertEquals(result2.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result2.getBody());
|
||||||
|
Assert.assertEquals(result2.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
private final TestRestTemplate testRestTemplate = new TestRestTemplate();
|
private final TestRestTemplate testRestTemplate = new TestRestTemplate();
|
||||||
|
|
||||||
private TopicAuthorityDTO getTopicAuthorityDTO() {
|
private TopicAuthorityDTO getTopicAuthorityDTO() {
|
||||||
TopicAuthorityDTO topicAuthorityDTO = new TopicAuthorityDTO();
|
TopicAuthorityDTO topicAuthorityDTO = new TopicAuthorityDTO();
|
||||||
topicAuthorityDTO.setClusterId(Constant.LOGICAL_CLUSTER_ID_IN_MYSQL);
|
long logicalClusterId = Long.parseLong(configMap.get(ConfigConstant.LOGICAL_CLUSTER_ID));
|
||||||
topicAuthorityDTO.setTopicName(Constant.TOPIC_NAME_IN_MYSQL);
|
topicAuthorityDTO.setClusterId(logicalClusterId);
|
||||||
topicAuthorityDTO.setAppId(Constant.APPID_IN_MYSQL);
|
topicAuthorityDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
topicAuthorityDTO.setAccess(Constant.ACCESS);
|
topicAuthorityDTO.setAppId(configMap.get(ConfigConstant.APPID));
|
||||||
|
topicAuthorityDTO.setAccess(ConfigConstant.ACCESS);
|
||||||
return topicAuthorityDTO;
|
return topicAuthorityDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(description = "测试权限调整")
|
@Test(description = "测试权限调整")
|
||||||
public void addAuthorityTest() {
|
public void addAuthorityTest() {
|
||||||
String url = Constant.BASE_URL + "/topic-authorities";
|
String url = baseUrl + "/topic-authorities";
|
||||||
|
|
||||||
addAuthority1Test(url);
|
addAuthority1Test(url);
|
||||||
// cluster not exist
|
|
||||||
addAuthority2Test(url);
|
|
||||||
// param illegal
|
|
||||||
addAuthority3Test(url);
|
|
||||||
// app not exist
|
|
||||||
addAuthority4Test(url);
|
|
||||||
// topic not exist
|
|
||||||
addAuthority5Test(url);
|
|
||||||
// mysqlError, 权限一致,无法插入
|
|
||||||
addAuthority6Test(url);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addAuthority1Test(String url) {
|
private void addAuthority1Test(String url) {
|
||||||
TopicAuthorityDTO topicAuthorityDTO = getTopicAuthorityDTO();
|
TopicAuthorityDTO topicAuthorityDTO = getTopicAuthorityDTO();
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
HttpEntity<TopicAuthorityDTO> httpEntity =
|
HttpEntity<TopicAuthorityDTO> httpEntity =
|
||||||
new HttpEntity<>(topicAuthorityDTO, httpHeaders);
|
new HttpEntity<>(topicAuthorityDTO, httpHeaders);
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
@@ -57,73 +93,4 @@ public class OpAuthorityControllerTest extends BaseTest {
|
|||||||
Assert.assertNotNull(result.getBody());
|
Assert.assertNotNull(result.getBody());
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addAuthority2Test(String url) {
|
|
||||||
TopicAuthorityDTO topicAuthorityDTO = getTopicAuthorityDTO();
|
|
||||||
topicAuthorityDTO.setClusterId(Constant.INVALID_CLUSTER_ID_IN_MYSQL);
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
HttpEntity<TopicAuthorityDTO> httpEntity =
|
|
||||||
new HttpEntity<>(topicAuthorityDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
|
||||||
url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.CLUSTER_NOT_EXIST.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addAuthority3Test(String url) {
|
|
||||||
TopicAuthorityDTO topicAuthorityDTO = getTopicAuthorityDTO();
|
|
||||||
topicAuthorityDTO.setClusterId(Constant.INVALID_ID);
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
HttpEntity<TopicAuthorityDTO> httpEntity =
|
|
||||||
new HttpEntity<>(topicAuthorityDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
|
||||||
url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addAuthority4Test(String url) {
|
|
||||||
TopicAuthorityDTO topicAuthorityDTO = getTopicAuthorityDTO();
|
|
||||||
topicAuthorityDTO.setAppId(Constant.INVALID_APPID);
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
HttpEntity<TopicAuthorityDTO> httpEntity =
|
|
||||||
new HttpEntity<>(topicAuthorityDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
|
||||||
url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.APP_NOT_EXIST.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addAuthority5Test(String url) {
|
|
||||||
TopicAuthorityDTO topicAuthorityDTO = getTopicAuthorityDTO();
|
|
||||||
topicAuthorityDTO.setTopicName(Constant.INVALID_TOPIC_NAME);
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
HttpEntity<TopicAuthorityDTO> httpEntity =
|
|
||||||
new HttpEntity<>(topicAuthorityDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
|
||||||
url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.TOPIC_NOT_EXIST.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addAuthority6Test(String url) {
|
|
||||||
TopicAuthorityDTO topicAuthorityDTO = getTopicAuthorityDTO();
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
HttpEntity<TopicAuthorityDTO> httpEntity =
|
|
||||||
new HttpEntity<>(topicAuthorityDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
|
||||||
url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.MYSQL_ERROR.getCode());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,13 +7,11 @@ import com.xiaojukeji.kafka.manager.common.entity.dto.op.ControllerPreferredCand
|
|||||||
import com.xiaojukeji.kafka.manager.common.entity.dto.rd.ClusterDTO;
|
import com.xiaojukeji.kafka.manager.common.entity.dto.rd.ClusterDTO;
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.vo.rd.cluster.ClusterDetailVO;
|
import com.xiaojukeji.kafka.manager.common.entity.vo.rd.cluster.ClusterDetailVO;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.Constant;
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
import com.xiaojukeji.kafka.manager.web.config.HttpUtils;
|
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
|
||||||
import org.springframework.http.*;
|
import org.springframework.http.*;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterClass;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeClass;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -27,26 +25,26 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public class OpClusterControllerTest extends BaseTest {
|
public class OpClusterControllerTest extends BaseTest {
|
||||||
|
|
||||||
private final TestRestTemplate testRestTemplate = new TestRestTemplate();
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
@BeforeMethod
|
String url = baseUrl + "/api/v1/op/clusters";
|
||||||
public void addNewCluster() {
|
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/clusters";
|
|
||||||
// 接入成功
|
// 接入成功
|
||||||
addnewCluster1Test(url);
|
addNewCluter1Test(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterMethod
|
@AfterClass
|
||||||
public void deleteCluster() {
|
public void deleteCluster() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/clusters";
|
String url = baseUrl + "/api/v1/op/clusters";
|
||||||
// 删除集群成功
|
// 删除集群成功
|
||||||
deleteCluster1Test(url);
|
deleteCluster1Test(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Long getPhysicalClusterId() {
|
private Long getPhysicalClusterId() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/rd/clusters/basic-info?need-detail=true";
|
String url = baseUrl + "/api/v1/rd/clusters/basic-info?need-detail=true";
|
||||||
|
String clusterName = configMap.get(ConfigConstant.CLUSTER_NAME);
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
@@ -54,7 +52,7 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
String s = JSON.toJSONString(result.getBody().getData());
|
String s = JSON.toJSONString(result.getBody().getData());
|
||||||
List<ClusterDetailVO> clusterDetailVOS = JSON.parseArray(s, ClusterDetailVO.class);
|
List<ClusterDetailVO> clusterDetailVOS = JSON.parseArray(s, ClusterDetailVO.class);
|
||||||
for (ClusterDetailVO clusterDetailVO : clusterDetailVOS) {
|
for (ClusterDetailVO clusterDetailVO : clusterDetailVOS) {
|
||||||
if (clusterDetailVO.getClusterName().equals(Constant.CLUSTER_NAME)) {
|
if (clusterDetailVO.getClusterName().equals(clusterName)) {
|
||||||
return clusterDetailVO.getClusterId();
|
return clusterDetailVO.getClusterId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,28 +63,27 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
ClusterDTO clusterDTO = new ClusterDTO();
|
ClusterDTO clusterDTO = new ClusterDTO();
|
||||||
Long physicalClusterId = getPhysicalClusterId();
|
Long physicalClusterId = getPhysicalClusterId();
|
||||||
clusterDTO.setClusterId(physicalClusterId);
|
clusterDTO.setClusterId(physicalClusterId);
|
||||||
clusterDTO.setClusterName(Constant.CLUSTER_NAME);
|
clusterDTO.setClusterName(configMap.get(ConfigConstant.CLUSTER_NAME));
|
||||||
clusterDTO.setZookeeper(Constant.ZK_ADDRESS);
|
clusterDTO.setZookeeper(configMap.get(ConfigConstant.ZOOKEEPER_ADDRESS));
|
||||||
clusterDTO.setBootstrapServers(Constant.BOOTSTRAP_SERVERS);
|
clusterDTO.setBootstrapServers(configMap.get(ConfigConstant.BOOTSTRAP_ADDRESS));
|
||||||
clusterDTO.setIdc(Constant.IDC);
|
clusterDTO.setIdc(ConfigConstant.IDC);
|
||||||
return clusterDTO;
|
return clusterDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(description = "测试接入集群")
|
@Test(description = "测试接入集群")
|
||||||
public void addNewClusterTest() {
|
public void addNewClusterTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/clusters";
|
String url = baseUrl + "/api/v1/op/clusters";
|
||||||
|
|
||||||
// 参数无效
|
// 参数无效
|
||||||
addnewCluster2Test(url);
|
addNewCluster2Test(url);
|
||||||
// 无效的zk地址
|
// 无效的zk地址
|
||||||
addnewCluster3Test(url);
|
addNewCluster3Test(url);
|
||||||
// 重复创建
|
// 重复创建
|
||||||
addnewCluster4Test(url);
|
addNewCluster4Test(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addnewCluster1Test(String url) {
|
private void addNewCluter1Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ClusterDTO> httpEntity =
|
HttpEntity<ClusterDTO> httpEntity =
|
||||||
new HttpEntity<>(clusterDTO, httpHeaders);
|
new HttpEntity<>(clusterDTO, httpHeaders);
|
||||||
@@ -97,10 +94,9 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addnewCluster2Test(String url) {
|
private void addNewCluster2Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
clusterDTO.setZookeeper(null);
|
clusterDTO.setZookeeper(null);
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ClusterDTO> httpEntity =
|
HttpEntity<ClusterDTO> httpEntity =
|
||||||
new HttpEntity<>(clusterDTO, httpHeaders);
|
new HttpEntity<>(clusterDTO, httpHeaders);
|
||||||
@@ -111,10 +107,9 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addnewCluster3Test(String url) {
|
private void addNewCluster3Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
clusterDTO.setZookeeper(Constant.INVALID);
|
clusterDTO.setZookeeper(ConfigConstant.INVALID_STRING);
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ClusterDTO> httpEntity =
|
HttpEntity<ClusterDTO> httpEntity =
|
||||||
new HttpEntity<>(clusterDTO, httpHeaders);
|
new HttpEntity<>(clusterDTO, httpHeaders);
|
||||||
@@ -125,9 +120,8 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.ZOOKEEPER_CONNECT_FAILED.getCode());
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.ZOOKEEPER_CONNECT_FAILED.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addnewCluster4Test(String url) {
|
private void addNewCluster4Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ClusterDTO> httpEntity =
|
HttpEntity<ClusterDTO> httpEntity =
|
||||||
new HttpEntity<>(clusterDTO, httpHeaders);
|
new HttpEntity<>(clusterDTO, httpHeaders);
|
||||||
@@ -140,7 +134,7 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试修改物理集群")
|
@Test(description = "测试修改物理集群")
|
||||||
public void modifyClusterTest() {
|
public void modifyClusterTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/clusters";
|
String url = baseUrl + "/api/v1/op/clusters";
|
||||||
// 修改成功
|
// 修改成功
|
||||||
modifyCluster1Test(url);
|
modifyCluster1Test(url);
|
||||||
// 参数错误
|
// 参数错误
|
||||||
@@ -153,7 +147,6 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void modifyCluster1Test(String url) {
|
private void modifyCluster1Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ClusterDTO> httpEntity =
|
HttpEntity<ClusterDTO> httpEntity =
|
||||||
new HttpEntity<>(clusterDTO, httpHeaders);
|
new HttpEntity<>(clusterDTO, httpHeaders);
|
||||||
@@ -167,7 +160,6 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
private void modifyCluster2Test(String url) {
|
private void modifyCluster2Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
clusterDTO.setClusterId(null);
|
clusterDTO.setClusterId(null);
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ClusterDTO> httpEntity =
|
HttpEntity<ClusterDTO> httpEntity =
|
||||||
new HttpEntity<>(clusterDTO, httpHeaders);
|
new HttpEntity<>(clusterDTO, httpHeaders);
|
||||||
@@ -180,8 +172,7 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void modifyCluster3Test(String url) {
|
private void modifyCluster3Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
clusterDTO.setClusterId(Constant.INVALID_CLUSTER_ID_IN_MYSQL);
|
clusterDTO.setClusterId(ConfigConstant.INVALID_CLUSTER_ID);
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ClusterDTO> httpEntity =
|
HttpEntity<ClusterDTO> httpEntity =
|
||||||
new HttpEntity<>(clusterDTO, httpHeaders);
|
new HttpEntity<>(clusterDTO, httpHeaders);
|
||||||
@@ -194,8 +185,7 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void modifyCluster4Test(String url) {
|
private void modifyCluster4Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
clusterDTO.setZookeeper(Constant.INVALID);
|
clusterDTO.setZookeeper(ConfigConstant.INVALID_STRING);
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ClusterDTO> httpEntity =
|
HttpEntity<ClusterDTO> httpEntity =
|
||||||
new HttpEntity<>(clusterDTO, httpHeaders);
|
new HttpEntity<>(clusterDTO, httpHeaders);
|
||||||
@@ -208,7 +198,7 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试开启|关闭集群监控")
|
@Test(description = "测试开启|关闭集群监控")
|
||||||
public void clusterMonitorTest() {
|
public void clusterMonitorTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/clusters/{clusterId}/monitor";
|
String url = baseUrl + "/api/v1/op/clusters/{clusterId}/monitor";
|
||||||
// 监控关闭成功
|
// 监控关闭成功
|
||||||
clusterMonitor1Test(url);
|
clusterMonitor1Test(url);
|
||||||
// 监控开启成功
|
// 监控开启成功
|
||||||
@@ -219,7 +209,6 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void clusterMonitor1Test(String url) {
|
private void clusterMonitor1Test(String url) {
|
||||||
url = url + "?status=0";
|
url = url + "?status=0";
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
HttpEntity<Long> httpEntity =
|
HttpEntity<Long> httpEntity =
|
||||||
new HttpEntity<>(null, httpHeaders);
|
new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
@@ -234,7 +223,6 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void clusterMonitor2Test(String url) {
|
private void clusterMonitor2Test(String url) {
|
||||||
url = url + "?status=1";
|
url = url + "?status=1";
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
HttpEntity<Long> httpEntity =
|
HttpEntity<Long> httpEntity =
|
||||||
new HttpEntity<>(null, httpHeaders);
|
new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
@@ -249,11 +237,10 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
private void clusterMonitor3Test(String url) {
|
private void clusterMonitor3Test(String url) {
|
||||||
url = url + "?status=1";
|
url = url + "?status=1";
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
HttpEntity<Long> httpEntity =
|
HttpEntity<Long> httpEntity =
|
||||||
new HttpEntity<>(null, httpHeaders);
|
new HttpEntity<>(null, httpHeaders);
|
||||||
Map<String, Object> urlVariables = new HashMap<>();
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
urlVariables.put("clusterId", Constant.INVALID_ID);
|
urlVariables.put("clusterId", ConfigConstant.INVALID_CLUSTER_ID);
|
||||||
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
url, HttpMethod.PUT, httpEntity, Result.class, urlVariables);
|
url, HttpMethod.PUT, httpEntity, Result.class, urlVariables);
|
||||||
@@ -264,21 +251,22 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试增加Controller优先候选的Broker")
|
@Test(description = "测试增加Controller优先候选的Broker")
|
||||||
public void addControllerPreferredCandidatesTest() {
|
public void addControllerPreferredCandidatesTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/cluster-controller/preferred-candidates";
|
String url = baseUrl + "/api/v1/op/cluster-controller/preferred-candidates";
|
||||||
|
Long physicalClusterId = Long.parseLong(configMap.get(ConfigConstant.PHYSICAL_CLUSTER_ID));
|
||||||
// 增加成功
|
// 增加成功
|
||||||
addControllerPreferredCandidates1Test(url);
|
addControllerPreferredCandidates1Test(url, physicalClusterId);
|
||||||
// broker不存在
|
// broker不存在
|
||||||
addControllerPreferredCandidates2Test(url);
|
addControllerPreferredCandidates2Test(url, physicalClusterId);
|
||||||
// 参数错误
|
// 参数错误
|
||||||
addControllerPreferredCandidates3Test(url);
|
addControllerPreferredCandidates3Test(url, physicalClusterId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addControllerPreferredCandidates1Test(String url) {
|
private void addControllerPreferredCandidates1Test(String url, Long physicalClusterId) {
|
||||||
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
||||||
dto.setClusterId(getPhysicalClusterId());
|
dto.setClusterId(physicalClusterId);
|
||||||
dto.setBrokerIdList(Arrays.asList(Constant.ALIVE_BROKER_ID));
|
String aliveBrokerId = configMap.get(ConfigConstant.ALIVE_BROKER_ID);
|
||||||
|
dto.setBrokerIdList(Arrays.asList(Integer.parseInt(aliveBrokerId)));
|
||||||
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
||||||
new HttpEntity<>(dto, httpHeaders);
|
new HttpEntity<>(dto, httpHeaders);
|
||||||
@@ -289,12 +277,11 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addControllerPreferredCandidates2Test(String url) {
|
private void addControllerPreferredCandidates2Test(String url, Long physicalClusterId) {
|
||||||
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
||||||
dto.setClusterId(getPhysicalClusterId());
|
dto.setClusterId(physicalClusterId);
|
||||||
dto.setBrokerIdList(Arrays.asList(-1));
|
dto.setBrokerIdList(Arrays.asList(ConfigConstant.INVALID_BROKER_ID));
|
||||||
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
||||||
new HttpEntity<>(dto, httpHeaders);
|
new HttpEntity<>(dto, httpHeaders);
|
||||||
@@ -305,11 +292,10 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.BROKER_NOT_EXIST.getCode());
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.BROKER_NOT_EXIST.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addControllerPreferredCandidates3Test(String url) {
|
private void addControllerPreferredCandidates3Test(String url, Long physicalClusterId) {
|
||||||
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
||||||
dto.setClusterId(getPhysicalClusterId());
|
dto.setClusterId(physicalClusterId);
|
||||||
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
||||||
new HttpEntity<>(dto, httpHeaders);
|
new HttpEntity<>(dto, httpHeaders);
|
||||||
@@ -323,19 +309,20 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试删除Controller优先候选的Broker")
|
@Test(description = "测试删除Controller优先候选的Broker")
|
||||||
public void deleteControllerPreferredCandidatesTest() {
|
public void deleteControllerPreferredCandidatesTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/cluster-controller/preferred-candidates";
|
String url = baseUrl + "/api/v1/op/cluster-controller/preferred-candidates";
|
||||||
|
Long physicalClusterId = Long.parseLong(configMap.get(ConfigConstant.PHYSICAL_CLUSTER_ID));
|
||||||
// 删除成功
|
// 删除成功
|
||||||
deleteControllerPreferredCandidates1Test(url);
|
deleteControllerPreferredCandidates1Test(url, physicalClusterId);
|
||||||
// 参数错误
|
// 参数错误
|
||||||
deleteControllerPreferredCandidates2Test(url);
|
deleteControllerPreferredCandidates2Test(url, physicalClusterId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteControllerPreferredCandidates1Test(String url) {
|
private void deleteControllerPreferredCandidates1Test(String url, Long physicalClusterId) {
|
||||||
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
||||||
dto.setClusterId(getPhysicalClusterId());
|
dto.setClusterId(physicalClusterId);
|
||||||
dto.setBrokerIdList(Arrays.asList(Constant.ALIVE_BROKER_ID));
|
String aliveBrokerId = configMap.get(ConfigConstant.ALIVE_BROKER_ID);
|
||||||
|
dto.setBrokerIdList(Arrays.asList(Integer.parseInt(aliveBrokerId)));
|
||||||
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
||||||
new HttpEntity<>(dto, httpHeaders);
|
new HttpEntity<>(dto, httpHeaders);
|
||||||
@@ -346,11 +333,10 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteControllerPreferredCandidates2Test(String url) {
|
private void deleteControllerPreferredCandidates2Test(String url, Long physicalClusterId) {
|
||||||
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
ControllerPreferredCandidateDTO dto = new ControllerPreferredCandidateDTO();
|
||||||
dto.setClusterId(getPhysicalClusterId());
|
dto.setClusterId(physicalClusterId);
|
||||||
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
HttpEntity<ControllerPreferredCandidateDTO> httpEntity =
|
||||||
new HttpEntity<>(dto, httpHeaders);
|
new HttpEntity<>(dto, httpHeaders);
|
||||||
@@ -363,7 +349,7 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
|
|
||||||
@Test(description = "测试删除物理集群")
|
@Test(description = "测试删除物理集群")
|
||||||
public void deleteClusterTest() {
|
public void deleteClusterTest() {
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/clusters";
|
String url = baseUrl + "/api/v1/op/clusters";
|
||||||
// 集群不存在
|
// 集群不存在
|
||||||
deleteCluster2Test(url);
|
deleteCluster2Test(url);
|
||||||
}
|
}
|
||||||
@@ -371,7 +357,6 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
private void deleteCluster1Test(String url) {
|
private void deleteCluster1Test(String url) {
|
||||||
ClusterDTO clusterDTO = getClusterDTO();
|
ClusterDTO clusterDTO = getClusterDTO();
|
||||||
url = url + "?clusterId=" + clusterDTO.getClusterId();
|
url = url + "?clusterId=" + clusterDTO.getClusterId();
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
HttpEntity<Long> httpEntity =
|
HttpEntity<Long> httpEntity =
|
||||||
new HttpEntity<>(null, httpHeaders);
|
new HttpEntity<>(null, httpHeaders);
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
@@ -382,8 +367,7 @@ public class OpClusterControllerTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void deleteCluster2Test(String url) {
|
private void deleteCluster2Test(String url) {
|
||||||
url = url + "?clusterId=" + Constant.INVALID_CLUSTER_ID_IN_MYSQL;
|
url = url + "?clusterId=" + ConfigConstant.INVALID_CLUSTER_ID;
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
HttpEntity<Long> httpEntity =
|
HttpEntity<Long> httpEntity =
|
||||||
new HttpEntity<>(null, httpHeaders);
|
new HttpEntity<>(null, httpHeaders);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.op;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class OpExpertControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询热点Topic")
|
||||||
|
public void getHotTopics() {
|
||||||
|
String url = baseUrl + "/api/v1/op/expert/regions/hot-topics";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试Topic流量异常诊断")
|
||||||
|
public void getAnomalyFlow() {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
String url = baseUrl + "/api/v1/op/expert/topics/anomaly-flow?timestamp=" + now;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取过期Topic")
|
||||||
|
public void getExpiredTopic() {
|
||||||
|
String url = baseUrl + "/api/v1/op/expert/topics/expired";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic分区不足")
|
||||||
|
public void getInsufficientPartitions() {
|
||||||
|
String url = baseUrl + "/api/v1/op/expert/topics/insufficient-partitions";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,276 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.op;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicCreationDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicDeletionDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicExpansionDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicModificationDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.CustomDataSource;
|
||||||
|
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||||
|
import org.springframework.http.*;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wyc
|
||||||
|
* @date 2022/1/20
|
||||||
|
*/
|
||||||
|
public class OpTopicControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Topic保存时间
|
||||||
|
*/
|
||||||
|
private static final Long RETENTION_TIME = 1000L * 60 * 60 * 168;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
// 成功创建Topic
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
createCommonTopic(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public void afterTest() {
|
||||||
|
// 删除Topic成功
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
deleteTopics(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TopicCreationDTO getTopicCreationDTO() {
|
||||||
|
// 在broker1上创建1分区,1副本的createTopicTest
|
||||||
|
TopicCreationDTO creationDTO = new TopicCreationDTO();
|
||||||
|
creationDTO.setAppId(configMap.get(ConfigConstant.APPID));
|
||||||
|
// 在broker1上创建
|
||||||
|
Integer brokerId = Integer.parseInt(configMap.get(ConfigConstant.ALIVE_BROKER_ID));
|
||||||
|
creationDTO.setBrokerIdList(Arrays.asList(brokerId));
|
||||||
|
creationDTO.setPartitionNum(1);
|
||||||
|
creationDTO.setReplicaNum(1);
|
||||||
|
creationDTO.setRetentionTime(RETENTION_TIME);
|
||||||
|
creationDTO.setPeakBytesIn(10L * 1024 * 1024);
|
||||||
|
// 物理集群id
|
||||||
|
creationDTO.setClusterId(physicalClusterId);
|
||||||
|
creationDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
return creationDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
private TopicDeletionDTO getTopicDeletionDTO() {
|
||||||
|
TopicDeletionDTO deletionDTO = new TopicDeletionDTO();
|
||||||
|
deletionDTO.setClusterId(physicalClusterId);
|
||||||
|
deletionDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
deletionDTO.setUnForce(true);
|
||||||
|
return deletionDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createCommonTopicTest() {
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
|
||||||
|
// PARAM_ILLEGAL
|
||||||
|
createCommonTopic1Test(url);
|
||||||
|
// CLUSTER_NOT_EXIST
|
||||||
|
createCommonTopic2Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCommonTopic1Test(String url) {
|
||||||
|
TopicCreationDTO creationDTO = getTopicCreationDTO();
|
||||||
|
creationDTO.setClusterId(null);
|
||||||
|
|
||||||
|
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCommonTopic2Test(String url) {
|
||||||
|
TopicCreationDTO creationDTO = getTopicCreationDTO();
|
||||||
|
creationDTO.setClusterId(-1L);
|
||||||
|
|
||||||
|
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.CLUSTER_NOT_EXIST.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCommonTopic(String url) {
|
||||||
|
// 创建Topic
|
||||||
|
|
||||||
|
TopicCreationDTO creationDTO = CustomDataSource.getTopicCreationDTO(configMap);
|
||||||
|
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void deleteTopicsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
// PARAM_ILLEGAL
|
||||||
|
deleteTopics1Test(url);
|
||||||
|
// OPERATION_FAILED
|
||||||
|
deleteTopics2Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteTopics1Test(String url) {
|
||||||
|
ArrayList<TopicDeletionDTO> deletionDTOArrayList = new ArrayList<>();
|
||||||
|
for (int i = 0; i < 11; i++) {
|
||||||
|
deletionDTOArrayList.add(getTopicDeletionDTO());
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpEntity<List<TopicDeletionDTO>> httpEntity = new HttpEntity<>(deletionDTOArrayList, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteTopics2Test(String url) {
|
||||||
|
TopicDeletionDTO topicDeletionDTO = getTopicDeletionDTO();
|
||||||
|
topicDeletionDTO.setClusterId(ConfigConstant.INVALID_CLUSTER_ID);
|
||||||
|
HttpEntity<List<TopicDeletionDTO>> httpEntity = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.OPERATION_FAILED.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteTopics(String url) {
|
||||||
|
// 删除创建的topic
|
||||||
|
TopicDeletionDTO topicDeletionDTO = CustomDataSource.getTopicDeletionDTO(configMap);
|
||||||
|
HttpEntity<List<TopicDeletionDTO>> httpEntity2 = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
||||||
|
ResponseEntity<Result> result2 = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity2, Result.class);
|
||||||
|
Assert.assertEquals(result2.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result2.getBody());
|
||||||
|
Assert.assertEquals(result2.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private TopicModificationDTO getTopicModificationDTO() {
|
||||||
|
TopicModificationDTO modificationDTO = new TopicModificationDTO();
|
||||||
|
modificationDTO.setAppId(configMap.get(ConfigConstant.APPID));
|
||||||
|
modificationDTO.setClusterId(physicalClusterId);
|
||||||
|
modificationDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
modificationDTO.setRetentionTime(RETENTION_TIME);
|
||||||
|
modificationDTO.setDescription("");
|
||||||
|
return modificationDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试修改Topic")
|
||||||
|
public void modifyTopicTest() {
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
|
||||||
|
// paramIllegal
|
||||||
|
modifyTopic1Test(url);
|
||||||
|
// cluster not exist
|
||||||
|
modifyTopic2Test(url);
|
||||||
|
// topic未知
|
||||||
|
modifyTopic3Test(url);
|
||||||
|
// 修改成功
|
||||||
|
modifyTopic4Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void modifyTopic1Test(String url) {
|
||||||
|
// 修改topic
|
||||||
|
TopicModificationDTO topicModificationDTO = getTopicModificationDTO();
|
||||||
|
topicModificationDTO.setTopicName(null);
|
||||||
|
HttpEntity<TopicModificationDTO> httpEntity = new HttpEntity<>(topicModificationDTO, httpHeaders);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void modifyTopic2Test(String url) {
|
||||||
|
// 修改topic
|
||||||
|
TopicModificationDTO topicModificationDTO = getTopicModificationDTO();
|
||||||
|
topicModificationDTO.setClusterId(ConfigConstant.INVALID_CLUSTER_ID);
|
||||||
|
HttpEntity<TopicModificationDTO> httpEntity = new HttpEntity<>(topicModificationDTO, httpHeaders);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.CLUSTER_NOT_EXIST.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void modifyTopic3Test(String url) {
|
||||||
|
// 修改topic
|
||||||
|
TopicModificationDTO topicModificationDTO = getTopicModificationDTO();
|
||||||
|
topicModificationDTO.setTopicName(ConfigConstant.INVALID_STRING);
|
||||||
|
HttpEntity<TopicModificationDTO> httpEntity = new HttpEntity<>(topicModificationDTO, httpHeaders);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.TOPIC_OPERATION_UNKNOWN_TOPIC_PARTITION.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void modifyTopic4Test(String url) {
|
||||||
|
// 修改topic
|
||||||
|
TopicModificationDTO topicModificationDTO = getTopicModificationDTO();
|
||||||
|
HttpEntity<TopicModificationDTO> httpEntity = new HttpEntity<>(topicModificationDTO, httpHeaders);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private TopicExpansionDTO getTopicExpansionDTO() {
|
||||||
|
TopicExpansionDTO topicExpansionDTO= new TopicExpansionDTO();
|
||||||
|
Long physicalClusterId = Long.parseLong(configMap.get(ConfigConstant.PHYSICAL_CLUSTER_ID));
|
||||||
|
topicExpansionDTO.setClusterId(physicalClusterId);
|
||||||
|
topicExpansionDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
topicExpansionDTO.setPartitionNum(2);
|
||||||
|
Integer brokerId = Integer.parseInt(configMap.get(ConfigConstant.ALIVE_BROKER_ID));
|
||||||
|
topicExpansionDTO.setBrokerIdList(Arrays.asList(brokerId));
|
||||||
|
return topicExpansionDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试Topic扩分区")
|
||||||
|
public void expandTopicPartitionTest() {
|
||||||
|
String url = baseUrl + "/api/v1/op/topics/expand-partitions";
|
||||||
|
|
||||||
|
// operation failed
|
||||||
|
expandTopicPartition1Test(url);
|
||||||
|
// success
|
||||||
|
expandTopicPartition2Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void expandTopicPartition1Test(String url) {
|
||||||
|
// topic扩分区
|
||||||
|
TopicExpansionDTO topicExpansionDTO = getTopicExpansionDTO();
|
||||||
|
topicExpansionDTO.setClusterId(null);
|
||||||
|
HttpEntity<List<TopicExpansionDTO>> httpEntity = new HttpEntity<>(Arrays.asList(topicExpansionDTO), httpHeaders);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.OPERATION_FAILED.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void expandTopicPartition2Test(String url) {
|
||||||
|
// topic扩分区
|
||||||
|
TopicExpansionDTO topicExpansionDTO = getTopicExpansionDTO();
|
||||||
|
HttpEntity<List<TopicExpansionDTO>> httpEntity = new HttpEntity<>(Arrays.asList(topicExpansionDTO), httpHeaders);
|
||||||
|
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,201 +0,0 @@
|
|||||||
package com.xiaojukeji.kafka.manager.web.api.versionone.op;
|
|
||||||
|
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicCreationDTO;
|
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicDeletionDTO;
|
|
||||||
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicModificationDTO;
|
|
||||||
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
|
||||||
import com.xiaojukeji.kafka.manager.web.config.Constant;
|
|
||||||
import com.xiaojukeji.kafka.manager.web.config.HttpUtils;
|
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
|
||||||
import org.springframework.http.*;
|
|
||||||
import org.testng.Assert;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author wyc
|
|
||||||
* @date 2022/1/20
|
|
||||||
*/
|
|
||||||
public class opTopicControllerTest extends BaseTest {
|
|
||||||
private final TestRestTemplate testRestTemplate = new TestRestTemplate();
|
|
||||||
|
|
||||||
|
|
||||||
private TopicCreationDTO getTopicCreationDTO() {
|
|
||||||
// 在broker1上创建1分区,1副本的createTopicTest
|
|
||||||
TopicCreationDTO creationDTO = new TopicCreationDTO();
|
|
||||||
creationDTO.setAppId(Constant.APPID_IN_MYSQL);
|
|
||||||
// 在broker1上创建
|
|
||||||
creationDTO.setBrokerIdList(Arrays.asList(1));
|
|
||||||
creationDTO.setPartitionNum(1);
|
|
||||||
creationDTO.setReplicaNum(1);
|
|
||||||
creationDTO.setRetentionTime(1000L * 60 * 60 * 168);
|
|
||||||
creationDTO.setPeakBytesIn(10L * 1024 * 1024);
|
|
||||||
// 物理集群id
|
|
||||||
creationDTO.setClusterId(Constant.PHYSICAL_CLUSTER_ID_IN_MYSQL);
|
|
||||||
creationDTO.setTopicName("createTopicTest");
|
|
||||||
return creationDTO;
|
|
||||||
}
|
|
||||||
|
|
||||||
private TopicDeletionDTO getTopicDeletionDTO() {
|
|
||||||
TopicDeletionDTO deletionDTO = new TopicDeletionDTO();
|
|
||||||
deletionDTO.setClusterId(1L);
|
|
||||||
deletionDTO.setTopicName("createTopicTest");
|
|
||||||
deletionDTO.setUnForce(true);
|
|
||||||
return deletionDTO;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void createCommonTopicTest() {
|
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/topics";
|
|
||||||
|
|
||||||
// PARAM_ILLEGAL
|
|
||||||
createCommonTopic1Test(url);
|
|
||||||
// CLUSTER_NOT_EXIST
|
|
||||||
createCommonTopic2Test(url);
|
|
||||||
// SUCCESS
|
|
||||||
createCommonTopic3Test(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createCommonTopic1Test(String url) {
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
TopicCreationDTO creationDTO = getTopicCreationDTO();
|
|
||||||
creationDTO.setClusterId(null);
|
|
||||||
|
|
||||||
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createCommonTopic2Test(String url) {
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
TopicCreationDTO creationDTO = getTopicCreationDTO();
|
|
||||||
creationDTO.setClusterId(-1L);
|
|
||||||
|
|
||||||
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.CLUSTER_NOT_EXIST.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createCommonTopic3Test(String url) {
|
|
||||||
// 创建Topic
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
|
|
||||||
TopicCreationDTO creationDTO = getTopicCreationDTO();
|
|
||||||
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
|
||||||
|
|
||||||
// 删除创建的topic
|
|
||||||
TopicDeletionDTO topicDeletionDTO = getTopicDeletionDTO();
|
|
||||||
HttpEntity<List<TopicDeletionDTO>> httpEntity2 = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
|
||||||
ResponseEntity<Result> result2 = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity2, Result.class);
|
|
||||||
Assert.assertEquals(result2.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result2.getBody());
|
|
||||||
Assert.assertEquals(result2.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void deleteTopicsTest() {
|
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/topics";
|
|
||||||
// PARAM_ILLEGAL
|
|
||||||
deleteTopics1Test(url);
|
|
||||||
// OPERATION_FAILED
|
|
||||||
deleteTopics2Test(url);
|
|
||||||
// SUCCESS
|
|
||||||
deleteTopics3Test(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void deleteTopics1Test(String url) {
|
|
||||||
ArrayList<TopicDeletionDTO> deletionDTOArrayList = new ArrayList<>();
|
|
||||||
for (int i = 0; i < 11; i++) {
|
|
||||||
deletionDTOArrayList.add(getTopicDeletionDTO());
|
|
||||||
}
|
|
||||||
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
HttpEntity<List<TopicDeletionDTO>> httpEntity = new HttpEntity<>(deletionDTOArrayList, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void deleteTopics2Test(String url) {
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
TopicDeletionDTO topicDeletionDTO = getTopicDeletionDTO();
|
|
||||||
topicDeletionDTO.setClusterId(-1L);
|
|
||||||
HttpEntity<List<TopicDeletionDTO>> httpEntity = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.OPERATION_FAILED.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void deleteTopics3Test(String url) {
|
|
||||||
// 创建Topic
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
|
|
||||||
TopicCreationDTO creationDTO = getTopicCreationDTO();
|
|
||||||
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
|
||||||
|
|
||||||
// 删除创建的topic
|
|
||||||
TopicDeletionDTO topicDeletionDTO = getTopicDeletionDTO();
|
|
||||||
HttpEntity<List<TopicDeletionDTO>> httpEntity2 = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
|
||||||
ResponseEntity<Result> result2 = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity2, Result.class);
|
|
||||||
Assert.assertEquals(result2.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result2.getBody());
|
|
||||||
Assert.assertEquals(result2.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private TopicModificationDTO getTopicModificationDTO() {
|
|
||||||
TopicModificationDTO modificationDTO = new TopicModificationDTO();
|
|
||||||
modificationDTO.setAppId(Constant.APPID_IN_MYSQL);
|
|
||||||
modificationDTO.setClusterId(Constant.PHYSICAL_CLUSTER_ID_IN_MYSQL);
|
|
||||||
modificationDTO.setTopicName("createTopicName");
|
|
||||||
return modificationDTO;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void modifyTopicTest() {
|
|
||||||
String url = Constant.BASE_URL + "/api/v1/op/topics";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void modifyTopic1Test(String url) {
|
|
||||||
// 创建Topic
|
|
||||||
HttpHeaders httpHeaders = HttpUtils.getHttpHeaders();
|
|
||||||
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
||||||
|
|
||||||
TopicCreationDTO creationDTO = getTopicCreationDTO();
|
|
||||||
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
|
||||||
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
|
||||||
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
|
||||||
Assert.assertNotNull(result.getBody());
|
|
||||||
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
|
||||||
|
|
||||||
// 修改topic
|
|
||||||
TopicModificationDTO topicModificationDTO = getTopicModificationDTO();
|
|
||||||
HttpEntity<TopicModificationDTO> httpEntity2 = new HttpEntity<>(topicModificationDTO, httpHeaders);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,129 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.rd;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.config.ConfigDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.CustomDataSource;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class RdConfigControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
// 创建config
|
||||||
|
createConfigSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public void destroy() {
|
||||||
|
// 删除config
|
||||||
|
deleteConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试新增配置")
|
||||||
|
public void createConfigTest() {
|
||||||
|
// 参数错误
|
||||||
|
createConfig1();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createConfig1() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/configs";
|
||||||
|
ConfigDTO configDTO = CustomDataSource.getConfigDTO();
|
||||||
|
configDTO.setConfigKey(null);
|
||||||
|
HttpEntity<ConfigDTO> httpEntity = new HttpEntity<>(configDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createConfigSuccess() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/configs";
|
||||||
|
ConfigDTO configDTO = CustomDataSource.getConfigDTO();
|
||||||
|
HttpEntity<ConfigDTO> httpEntity = new HttpEntity<>(configDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "删除配置")
|
||||||
|
public void deleteConfigTest() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteConfig() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/configs?config-key=" + ConfigConstant.CONFIG_KEY;
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>(null, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试修改配置")
|
||||||
|
public void modifyConfigTest() {
|
||||||
|
// 参数错误
|
||||||
|
modifyConfig1();
|
||||||
|
// 修改成功
|
||||||
|
modifyConfig2();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void modifyConfig1() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/configs";
|
||||||
|
ConfigDTO configDTO = CustomDataSource.getConfigDTO();
|
||||||
|
configDTO.setConfigKey(null);
|
||||||
|
HttpEntity<ConfigDTO> httpEntity = new HttpEntity<>(configDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void modifyConfig2() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/configs";
|
||||||
|
ConfigDTO configDTO = CustomDataSource.getConfigDTO();
|
||||||
|
HttpEntity<ConfigDTO> httpEntity = new HttpEntity<>(configDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取配置列表")
|
||||||
|
public void getConfigList() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/configs";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获Kafka的角色列表")
|
||||||
|
public void getKafkaRoles() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/configs/kafka-roles";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,207 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.rd;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.rd.LogicalClusterDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.rd.RegionDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.vo.rd.RegionVO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.vo.rd.cluster.LogicalClusterVO;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.CustomDataSource;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/17
|
||||||
|
*/
|
||||||
|
public class RdLogicalClusterControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
private Long regionId;
|
||||||
|
|
||||||
|
private Long logicalClusterId;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
// 创建region
|
||||||
|
createRegionSuccess();
|
||||||
|
// 获取regionId
|
||||||
|
regionId = getRegionId();
|
||||||
|
// 创建逻辑集群
|
||||||
|
createLogicalClusterSuccess();
|
||||||
|
logicalClusterId = getLogicalClusterId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public void destroy() {
|
||||||
|
deleteLogicalClusterSuccess();
|
||||||
|
deleteRegionSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试增加逻辑集群")
|
||||||
|
public void createLogicalClusterTest() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/logical-clusters";
|
||||||
|
// 参数错误
|
||||||
|
createLogicalCluster1(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createLogicalCluster1(String url) {
|
||||||
|
LogicalClusterDTO logicalClusterDTO = CustomDataSource.getLogicalClusterDTO(configMap);
|
||||||
|
logicalClusterDTO.setRegionIdList(null);
|
||||||
|
HttpEntity<LogicalClusterDTO> httpEntity = new HttpEntity<>(logicalClusterDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createLogicalClusterSuccess() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/logical-clusters";
|
||||||
|
LogicalClusterDTO logicalClusterDTO = CustomDataSource.getLogicalClusterDTO(configMap);
|
||||||
|
logicalClusterDTO.setRegionIdList(Arrays.asList(regionId));
|
||||||
|
HttpEntity<LogicalClusterDTO> httpEntity = new HttpEntity<>(logicalClusterDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createRegionSuccess() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/regions";
|
||||||
|
RegionDTO regionDTO = CustomDataSource.getRegionDTO(configMap);
|
||||||
|
HttpEntity<RegionDTO> httpEntity = new HttpEntity<>(regionDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Long getRegionId() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/{clusterId}/regions";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
String s = JSON.toJSONString(result.getBody().getData());
|
||||||
|
List<RegionVO> regions = JSON.parseArray(s, RegionVO.class);
|
||||||
|
for (RegionVO region : regions) {
|
||||||
|
if (region.getName().equals(configMap.get(ConfigConstant.REGION_NAME))) {
|
||||||
|
return region.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Long getLogicalClusterId() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/{physicalClusterId}/logical-clusters";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("physicalClusterId", physicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
String s = JSON.toJSONString(result.getBody().getData());
|
||||||
|
List<LogicalClusterVO> logicalClusters = JSON.parseArray(s, LogicalClusterVO.class);
|
||||||
|
for (LogicalClusterVO logicalCLuster : logicalClusters) {
|
||||||
|
if (logicalCLuster.getLogicalClusterName().equals(configMap.get(ConfigConstant.LOGICAL_CLUSTER_NAME))) {
|
||||||
|
return logicalCLuster.getLogicalClusterId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试修改逻辑集群")
|
||||||
|
public void modifyLogicalClusterTest() {
|
||||||
|
// 参数失败
|
||||||
|
modifyLogicalCluster1();
|
||||||
|
// 修改成功
|
||||||
|
modifyLogicalCluster2();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void modifyLogicalCluster1() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/logical-clusters";
|
||||||
|
LogicalClusterDTO logicalClusterDTO = CustomDataSource.getLogicalClusterDTO(configMap);
|
||||||
|
logicalClusterDTO.setRegionIdList(Arrays.asList(regionId));
|
||||||
|
logicalClusterDTO.setId(null);
|
||||||
|
HttpEntity<LogicalClusterDTO> httpEntity = new HttpEntity<>(logicalClusterDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void modifyLogicalCluster2() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/logical-clusters";
|
||||||
|
LogicalClusterDTO logicalClusterDTO = CustomDataSource.getLogicalClusterDTO(configMap);
|
||||||
|
logicalClusterDTO.setRegionIdList(Arrays.asList(regionId));
|
||||||
|
logicalClusterDTO.setId(getLogicalClusterId());
|
||||||
|
HttpEntity<LogicalClusterDTO> httpEntity = new HttpEntity<>(logicalClusterDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试删除逻辑集群")
|
||||||
|
public void deleteLogicalClusterTest() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteLogicalClusterSuccess() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/logical-clusters?id=" + logicalClusterId;
|
||||||
|
HttpEntity<Long> httpEntity =
|
||||||
|
new HttpEntity<>(null, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
|
url, HttpMethod.DELETE, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteRegionSuccess() {
|
||||||
|
Long regionId = getRegionId();
|
||||||
|
String url = baseUrl + "/api/v1/rd/regions?id=" + regionId;
|
||||||
|
HttpEntity<Long> httpEntity =
|
||||||
|
new HttpEntity<>(null, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
|
url, HttpMethod.DELETE, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取逻辑集群列表")
|
||||||
|
public void getLogicalClustersTest() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/{physicalClusterId}/logical-clusters";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("physicalClusterId", physicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试由逻辑集群Id获取逻辑集群")
|
||||||
|
public void getLogicalClusterTest() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/logical-clusters?id=" + getLogicalClusterId();
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.rd;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.rd.RegionDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.vo.rd.RegionVO;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.CustomDataSource;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class RdRegionControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
// 创建region
|
||||||
|
createRegionSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public void deleteRegion() {
|
||||||
|
// 删除region
|
||||||
|
deleteRegionSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Long getRegionId() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/{clusterId}/regions";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
String s = JSON.toJSONString(result.getBody().getData());
|
||||||
|
List<RegionVO> regions = JSON.parseArray(s, RegionVO.class);
|
||||||
|
for (RegionVO region : regions) {
|
||||||
|
if (region.getName().equals(configMap.get(ConfigConstant.REGION_NAME))) {
|
||||||
|
return region.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试创建region")
|
||||||
|
public void createRegion() {
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
// 参数错误
|
||||||
|
createRegion1Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createRegion1Test(String url) {
|
||||||
|
RegionDTO regionDTO = CustomDataSource.getRegionDTO(configMap);
|
||||||
|
regionDTO.setClusterId(null);
|
||||||
|
HttpEntity<RegionDTO> httpEntity = new HttpEntity<>(regionDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createRegionSuccess() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/regions";
|
||||||
|
RegionDTO regionDTO = CustomDataSource.getRegionDTO(configMap);
|
||||||
|
HttpEntity<RegionDTO> httpEntity = new HttpEntity<>(regionDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试删除region")
|
||||||
|
public void deleteRegionTest() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteRegionSuccess() {
|
||||||
|
Long regionId = getRegionId();
|
||||||
|
String url = baseUrl + "/api/v1/rd/regions?id=" + regionId;
|
||||||
|
HttpEntity<Long> httpEntity =
|
||||||
|
new HttpEntity<>(null, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(
|
||||||
|
url, HttpMethod.DELETE, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试修改region")
|
||||||
|
public void modifyRegionTest() {
|
||||||
|
String url = baseUrl + "/api/v1/rd/regions";
|
||||||
|
// 参数错误
|
||||||
|
modifyRegion1(url);
|
||||||
|
// 修改成功
|
||||||
|
modifyRegion2(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void modifyRegion1(String url) {
|
||||||
|
RegionDTO regionDTO = CustomDataSource.getRegionDTO(configMap);
|
||||||
|
regionDTO.setId(null);
|
||||||
|
HttpEntity<RegionDTO> httpEntity = new HttpEntity<>(regionDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.PARAM_ILLEGAL.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void modifyRegion2(String url) {
|
||||||
|
RegionDTO regionDTO = CustomDataSource.getRegionDTO(configMap);
|
||||||
|
regionDTO.setId(getRegionId());
|
||||||
|
HttpEntity<RegionDTO> httpEntity = new HttpEntity<>(regionDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.PUT, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "获取region列表")
|
||||||
|
public void getRegionListTest() {
|
||||||
|
|
||||||
|
String url = baseUrl + "/api/v1/rd/{clusterId}/regions";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.thirdpart;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ThirdPartAppControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询负责的应用")
|
||||||
|
public void getPrincipalAppsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/principal-apps/{principal}/basic-info?system-code=" + ConfigConstant.KAFKA_MANAGER;
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("principal", "admin");
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.thirdpart;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ThirdPartBrokerControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取BrokerRegion信息")
|
||||||
|
public void getBrokerRegionsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/op/broker-regions";
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Broker信息概览")
|
||||||
|
public void getBrokerOverviewTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/op/{clusterId}/brokers/{brokerId}/overview";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("brokerId", configMap.get(ConfigConstant.ALIVE_BROKER_ID));
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.thirdpart;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ThirdPartClusterControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试Broker信息概览")
|
||||||
|
public void getBrokerRegionsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/{clusterId}/broker-stabled?hostname=" + ConfigConstant.INVALID_STRING;
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.BROKER_NOT_EXIST.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.api.versionone.thirdpart;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.Result;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.ResultStatus;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicCreationDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicDeletionDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.BaseTest;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.ConfigConstant;
|
||||||
|
import com.xiaojukeji.kafka.manager.web.config.CustomDataSource;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpMethod;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.AfterClass;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/18
|
||||||
|
*/
|
||||||
|
public class ThirdPartTopicControllerTest extends BaseTest {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void init() {
|
||||||
|
super.init();
|
||||||
|
|
||||||
|
// 成功创建Topic
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
createCommonTopic3Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public void afterTest() {
|
||||||
|
// 删除Topic成功
|
||||||
|
String url = baseUrl + "/api/v1/op/topics";
|
||||||
|
deleteTopics3Test(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCommonTopic3Test(String url) {
|
||||||
|
// 创建Topic
|
||||||
|
|
||||||
|
TopicCreationDTO creationDTO = CustomDataSource.getTopicCreationDTO(configMap);
|
||||||
|
HttpEntity<TopicCreationDTO> httpEntity = new HttpEntity<>(creationDTO, httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.POST, httpEntity, Result.class);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteTopics3Test(String url) {
|
||||||
|
// 删除创建的topic
|
||||||
|
TopicDeletionDTO topicDeletionDTO = CustomDataSource.getTopicDeletionDTO(configMap);
|
||||||
|
HttpEntity<List<TopicDeletionDTO>> httpEntity2 = new HttpEntity<>(Arrays.asList(topicDeletionDTO), httpHeaders);
|
||||||
|
ResponseEntity<Result> result2 = testRestTemplate.exchange(url, HttpMethod.DELETE, httpEntity2, Result.class);
|
||||||
|
Assert.assertEquals(result2.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result2.getBody());
|
||||||
|
Assert.assertEquals(result2.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic元信息")
|
||||||
|
public void getTopicMetadataTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/clusters/{clusterId}/topics/{topicName}/metadata";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("clusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试获取Topic应用信息")
|
||||||
|
public void getTopicAppsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/{physicalClusterId}/topics/{topicName}/apps";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("physicalClusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询Topic的消费组列表")
|
||||||
|
public void getTopicConsumerGroupsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/{physicalClusterId}/topics/{topicName}/consumer-groups";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("physicalClusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询Topic实时流量信息")
|
||||||
|
public void getTopicMetricsTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/{physicalClusterId}/topics/{topicName}/metrics";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("physicalClusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询Topic是否有流量")
|
||||||
|
public void getTopicOffsetChangedTest() {
|
||||||
|
long now = System.currentTimeMillis();
|
||||||
|
String url = baseUrl + "/api/v1/third-part/{physicalClusterId}/topics/{topicName}/offset-changed?latest-time=" + now;
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("physicalClusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "测试查询Topic实时请求耗时信息")
|
||||||
|
public void getTopicRequestTimeTest() {
|
||||||
|
String url = baseUrl + "/api/v1/third-part/{physicalClusterId}/topics/{topicName}/request-time";
|
||||||
|
Map<String, Object> urlVariables = new HashMap<>();
|
||||||
|
urlVariables.put("physicalClusterId", physicalClusterId);
|
||||||
|
urlVariables.put("topicName", configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
HttpEntity<String> httpEntity = new HttpEntity<>("", httpHeaders);
|
||||||
|
ResponseEntity<Result> result = testRestTemplate.exchange(url, HttpMethod.GET, httpEntity, Result.class, urlVariables);
|
||||||
|
Assert.assertEquals(result.getStatusCodeValue(), HttpStatus.OK.value());
|
||||||
|
Assert.assertNotNull(result.getBody());
|
||||||
|
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +1,40 @@
|
|||||||
package com.xiaojukeji.kafka.manager.web.config;
|
package com.xiaojukeji.kafka.manager.web.config;
|
||||||
|
|
||||||
|
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
|
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class BaseTest extends AbstractTestNGSpringContextTests {
|
public class BaseTest extends AbstractTestNGSpringContextTests {
|
||||||
|
|
||||||
|
protected final TestRestTemplate testRestTemplate = new TestRestTemplate();
|
||||||
|
|
||||||
|
protected Map<String, String> configMap;
|
||||||
|
|
||||||
|
protected HttpHeaders httpHeaders;
|
||||||
|
|
||||||
|
protected String baseUrl = "http://localhost:8080";
|
||||||
|
|
||||||
|
// 默认物理集群Id为1
|
||||||
|
protected Long physicalClusterId = 1L;
|
||||||
|
|
||||||
|
public void init() {
|
||||||
|
// 加载本地配置
|
||||||
|
try {
|
||||||
|
configMap = CommonUtils.readSettings();
|
||||||
|
|
||||||
|
httpHeaders = CommonUtils.getHttpHeaders();
|
||||||
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
|
||||||
|
baseUrl = configMap.get(ConfigConstant.BASE_URL);
|
||||||
|
physicalClusterId = Long.parseLong(configMap.get(ConfigConstant.PHYSICAL_CLUSTER_ID));
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.config;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/1/11
|
||||||
|
*/
|
||||||
|
public class CommonUtils {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(CommonUtils.class.getName());
|
||||||
|
|
||||||
|
private static String settingsFile = "integrationTest-settings.properties";
|
||||||
|
|
||||||
|
public static HttpHeaders getHttpHeaders() {
|
||||||
|
// 需要在管控平台上配置,教程见docs -> user_guide -> call_api_bypass_login
|
||||||
|
HttpHeaders httpHeaders = new HttpHeaders();
|
||||||
|
httpHeaders.add(ConfigConstant.TRICK_LOGIN_SWITCH, ConfigConstant.OPEN_TRICK_LOGIN);
|
||||||
|
httpHeaders.add(ConfigConstant.TRICK_LOGIN_USER, ConfigConstant.ADMIN_USER);
|
||||||
|
return httpHeaders;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读取本地配置
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public static Map<String, String> readSettings() throws IOException {
|
||||||
|
InputStream is = CommonUtils.class.getClassLoader().getResourceAsStream(settingsFile);
|
||||||
|
Properties prop = new Properties();
|
||||||
|
try {
|
||||||
|
prop.load(is);
|
||||||
|
} catch (IOException e) {
|
||||||
|
LOGGER.error("CommonUtil error!", "load " + settingsFile + " error, {}", e.getMessage());
|
||||||
|
} finally {
|
||||||
|
is.close();
|
||||||
|
}
|
||||||
|
return new HashMap<String, String>((Map) prop);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 集成测试配置变量
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/1/11
|
||||||
|
*/
|
||||||
|
public interface ConfigConstant {
|
||||||
|
/**
|
||||||
|
* 本地配置属性
|
||||||
|
*/
|
||||||
|
String BASE_URL = "base-url";
|
||||||
|
|
||||||
|
String CLUSTER_NAME = "cluster.name";
|
||||||
|
|
||||||
|
String ZOOKEEPER_ADDRESS = "cluster.zookeeper.address";
|
||||||
|
|
||||||
|
String BOOTSTRAP_ADDRESS = "cluster.bootstrap.address";
|
||||||
|
|
||||||
|
String ALIVE_BROKER_ID = "alive-brokerId";
|
||||||
|
|
||||||
|
String PHYSICAL_CLUSTER_ID = "physicalCluster.id.in.mysql";
|
||||||
|
|
||||||
|
String LOGICAL_CLUSTER_ID = "logicalCluster.id.in.mysql";
|
||||||
|
|
||||||
|
String LOGICAL_CLUSTER_NAME = "logicalCluster.name";
|
||||||
|
|
||||||
|
String TOPIC_NAME = "topic.name";
|
||||||
|
|
||||||
|
String APPID = "appId";
|
||||||
|
|
||||||
|
String REGION_NAME = "region.name";
|
||||||
|
|
||||||
|
String GATEWAY_TYPE = "gateway.config.type";
|
||||||
|
|
||||||
|
String GATEWAY_NAME = "gateway.config.name";
|
||||||
|
|
||||||
|
String GATEWAY_VALUE = "gateway.config.value";
|
||||||
|
|
||||||
|
String GATEWAY_DESCRIPTION = "gateway.config.description";
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登陆参数
|
||||||
|
*/
|
||||||
|
String TRICK_LOGIN_SWITCH = "Trick-Login-Switch";
|
||||||
|
|
||||||
|
String TRICK_LOGIN_USER = "Trick-Login-User";
|
||||||
|
|
||||||
|
String OPEN_TRICK_LOGIN = "on";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 管理员用户
|
||||||
|
*/
|
||||||
|
String ADMIN_USER = "admin";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 无效字符串
|
||||||
|
*/
|
||||||
|
String INVALID_STRING = "%_";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 无效集群id
|
||||||
|
*/
|
||||||
|
Long INVALID_CLUSTER_ID = Long.MAX_VALUE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 无效broker id
|
||||||
|
*/
|
||||||
|
Integer INVALID_BROKER_ID = -1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据中心
|
||||||
|
*/
|
||||||
|
String IDC = "cn";
|
||||||
|
|
||||||
|
String CONFIG_KEY = "key";
|
||||||
|
|
||||||
|
String CONFIG_VALUE = "value";
|
||||||
|
|
||||||
|
String KAFKA_MANAGER = "kafka-manager";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作权限
|
||||||
|
*/
|
||||||
|
Integer ACCESS = 100;
|
||||||
|
}
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
package com.xiaojukeji.kafka.manager.web.config;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author xuguang
|
|
||||||
* @Date 2022/1/11
|
|
||||||
*/
|
|
||||||
public class Constant {
|
|
||||||
public static final String BASE_URL = "http://localhost:8080";
|
|
||||||
|
|
||||||
public static final String TRICK_LOGIN_SWITCH = "Trick-Login-Switch";
|
|
||||||
|
|
||||||
public static final String TRICK_LOGIN_USER = "Trick-Login-User";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* on表示开启trick_login
|
|
||||||
*/
|
|
||||||
public static final String ON = "on";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据库中实际存在的user
|
|
||||||
*/
|
|
||||||
public static final String USER_ADMIN = "admin";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据库中实际存在的APPID
|
|
||||||
*/
|
|
||||||
public static final String APPID_IN_MYSQL = "dkm_admin";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 无效字符串
|
|
||||||
*/
|
|
||||||
public static final String INVALID = "xxxx";
|
|
||||||
|
|
||||||
public static final String INVALID_APPID = INVALID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据库中实际存在的物理集群Id
|
|
||||||
*/
|
|
||||||
public static final Long PHYSICAL_CLUSTER_ID_IN_MYSQL = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据库中实际存在的逻辑集群Id
|
|
||||||
*/
|
|
||||||
public static final Long LOGICAL_CLUSTER_ID_IN_MYSQL = 7L;
|
|
||||||
|
|
||||||
public static final Integer ALIVE_BROKER_ID = 3;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 无效的集群Id
|
|
||||||
*/
|
|
||||||
public static final Long INVALID_CLUSTER_ID_IN_MYSQL = Long.MAX_VALUE;
|
|
||||||
|
|
||||||
public static final Long INVALID_ID = -1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 数据库中实际存在的TopicName
|
|
||||||
*/
|
|
||||||
public static final String TOPIC_NAME_IN_MYSQL = "moduleTest";
|
|
||||||
|
|
||||||
public static final String INVALID_TOPIC_NAME = INVALID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作权限
|
|
||||||
*/
|
|
||||||
public static final Integer ACCESS = 100;
|
|
||||||
|
|
||||||
public static final String ZK_ADDRESS = "10.190.46.198:2181,10.190.14.237:2181,10.190.50.65:2181/xg";
|
|
||||||
|
|
||||||
public static final String BOOTSTRAP_SERVERS = "10.190.46.198:9093,10.190.14.237:9093,10.190.50.65:9093";
|
|
||||||
|
|
||||||
public static final String CLUSTER_NAME = "clusterTest";
|
|
||||||
|
|
||||||
public static final String IDC = "China";
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
package com.xiaojukeji.kafka.manager.web.config;
|
||||||
|
|
||||||
|
import com.xiaojukeji.kafka.manager.bpm.common.entry.apply.gateway.OrderExtensionAddGatewayConfigDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.config.ConfigDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicCreationDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.op.topic.TopicDeletionDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.rd.LogicalClusterDTO;
|
||||||
|
import com.xiaojukeji.kafka.manager.common.entity.dto.rd.RegionDTO;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuguang
|
||||||
|
* @Date 2022/2/17
|
||||||
|
*/
|
||||||
|
public class CustomDataSource {
|
||||||
|
|
||||||
|
public static RegionDTO getRegionDTO(Map<String, String> configMap) {
|
||||||
|
RegionDTO regionDTO = new RegionDTO();
|
||||||
|
Long physicalClusterId = Long.parseLong(configMap.get(ConfigConstant.PHYSICAL_CLUSTER_ID));
|
||||||
|
regionDTO.setClusterId(physicalClusterId);
|
||||||
|
Integer brokerId = Integer.parseInt(configMap.get(ConfigConstant.ALIVE_BROKER_ID));
|
||||||
|
regionDTO.setBrokerIdList(Arrays.asList(brokerId));
|
||||||
|
regionDTO.setDescription("");
|
||||||
|
regionDTO.setName(configMap.get(ConfigConstant.REGION_NAME));
|
||||||
|
regionDTO.setStatus(0);
|
||||||
|
return regionDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LogicalClusterDTO getLogicalClusterDTO(Map<String, String> configMap) {
|
||||||
|
LogicalClusterDTO logicalClusterDTO = new LogicalClusterDTO();
|
||||||
|
Long physicalClusterId = Long.parseLong(configMap.get(ConfigConstant.PHYSICAL_CLUSTER_ID));
|
||||||
|
logicalClusterDTO.setClusterId(physicalClusterId);
|
||||||
|
logicalClusterDTO.setName(configMap.get(ConfigConstant.LOGICAL_CLUSTER_NAME));
|
||||||
|
logicalClusterDTO.setAppId(configMap.get(ConfigConstant.APPID));
|
||||||
|
logicalClusterDTO.setIdentification(configMap.get(ConfigConstant.LOGICAL_CLUSTER_NAME));
|
||||||
|
logicalClusterDTO.setDescription("");
|
||||||
|
logicalClusterDTO.setMode(0);
|
||||||
|
return logicalClusterDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ConfigDTO getConfigDTO() {
|
||||||
|
ConfigDTO configDTO = new ConfigDTO();
|
||||||
|
configDTO.setConfigKey(ConfigConstant.CONFIG_KEY);
|
||||||
|
configDTO.setConfigValue(ConfigConstant.CONFIG_VALUE);
|
||||||
|
configDTO.setConfigDescription("测试config");
|
||||||
|
return configDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TopicDeletionDTO getTopicDeletionDTO(Map<String, String> configMap) {
|
||||||
|
TopicDeletionDTO deletionDTO = new TopicDeletionDTO();
|
||||||
|
Long physicalClusterId = Long.parseLong(configMap.get(ConfigConstant.PHYSICAL_CLUSTER_ID));
|
||||||
|
deletionDTO.setClusterId(physicalClusterId);
|
||||||
|
deletionDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
deletionDTO.setUnForce(true);
|
||||||
|
return deletionDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TopicCreationDTO getTopicCreationDTO(Map<String, String> configMap) {
|
||||||
|
// 在broker1上创建1分区,1副本的createTopicTest
|
||||||
|
TopicCreationDTO creationDTO = new TopicCreationDTO();
|
||||||
|
creationDTO.setAppId(configMap.get(ConfigConstant.APPID));
|
||||||
|
// 在broker1上创建
|
||||||
|
Integer brokerId = Integer.parseInt(configMap.get(ConfigConstant.ALIVE_BROKER_ID));
|
||||||
|
creationDTO.setBrokerIdList(Arrays.asList(brokerId));
|
||||||
|
creationDTO.setPartitionNum(1);
|
||||||
|
creationDTO.setReplicaNum(1);
|
||||||
|
creationDTO.setRetentionTime(1000L * 60 * 60 * 168);
|
||||||
|
creationDTO.setPeakBytesIn(10L * 1024 * 1024);
|
||||||
|
// 物理集群id
|
||||||
|
Long physicalClusterId = Long.parseLong(configMap.get(ConfigConstant.PHYSICAL_CLUSTER_ID));
|
||||||
|
creationDTO.setClusterId(physicalClusterId);
|
||||||
|
creationDTO.setTopicName(configMap.get(ConfigConstant.TOPIC_NAME));
|
||||||
|
return creationDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OrderExtensionAddGatewayConfigDTO getOrderExtensionAddGatewayConfigDTO(Map<String, String> configMap) {
|
||||||
|
OrderExtensionAddGatewayConfigDTO orderExtensionAddGatewayConfigDTO = new OrderExtensionAddGatewayConfigDTO();
|
||||||
|
orderExtensionAddGatewayConfigDTO.setName(configMap.get(ConfigConstant.GATEWAY_NAME));
|
||||||
|
orderExtensionAddGatewayConfigDTO.setType(configMap.get(ConfigConstant.GATEWAY_TYPE));
|
||||||
|
orderExtensionAddGatewayConfigDTO.setValue(configMap.get(ConfigConstant.GATEWAY_VALUE));
|
||||||
|
orderExtensionAddGatewayConfigDTO.setValue(configMap.get(ConfigConstant.GATEWAY_DESCRIPTION));
|
||||||
|
return orderExtensionAddGatewayConfigDTO;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package com.xiaojukeji.kafka.manager.web.config;
|
|
||||||
|
|
||||||
import org.springframework.http.HttpHeaders;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author xuguang
|
|
||||||
* @Date 2022/1/11
|
|
||||||
*/
|
|
||||||
public class HttpUtils {
|
|
||||||
|
|
||||||
public static HttpHeaders getHttpHeaders() {
|
|
||||||
// 需要在管控平台上配置,教程见docs -> user_guide -> call_api_bypass_login
|
|
||||||
HttpHeaders httpHeaders = new HttpHeaders();
|
|
||||||
httpHeaders.add(Constant.TRICK_LOGIN_SWITCH, Constant.ON);
|
|
||||||
httpHeaders.add(Constant.TRICK_LOGIN_USER, Constant.USER_ADMIN);
|
|
||||||
return httpHeaders;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# 接口基本地址
|
||||||
|
base-url = http://localhost:8080
|
||||||
|
# appId
|
||||||
|
appId = dkm_admin
|
||||||
|
# 存活的brokerId
|
||||||
|
alive-brokerId = 1
|
||||||
|
|
||||||
|
# 集群名称
|
||||||
|
cluster.name = integrationTestCluster
|
||||||
|
# 集群地址
|
||||||
|
cluster.bootstrap.address = 10.190.46.198:9093,10.190.14.237:9093,10.190.50.65:9093
|
||||||
|
# zk地址
|
||||||
|
cluster.zookeeper.address = 10.190.46.198:2181,10.190.14.237:2181,10.190.50.65:2181/xg
|
||||||
|
# 物理集群在数据库中的Id
|
||||||
|
physicalCluster.id.in.mysql = 1
|
||||||
|
# 逻辑集群在数据库中的Id(新创建的逻辑集群并不能立即加载到缓存中,所以需要用已创建好的)
|
||||||
|
logicalCluster.id.in.mysql = 7
|
||||||
|
logicalCluster.name = integrationTestLogicalCluster
|
||||||
|
|
||||||
|
# 集成测试用的Topic
|
||||||
|
topic.name = integrationTestTopic
|
||||||
|
# 集成测试用的region
|
||||||
|
region.name = integrationTestRegion
|
||||||
|
|
||||||
|
# gateway相关配置
|
||||||
|
gateway.config.type = SD_CLUSTER_ID
|
||||||
|
gateway.config.name = integrationTest_SD
|
||||||
|
gateway.config.value = 127.0.0.1
|
||||||
|
gateway.config.description = integrationTest
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user