From f53b8217d948f35f29721aba2acf2bd90e4de69d Mon Sep 17 00:00:00 2001
From: wulingxiao <1251605638@qqcom>
Date: Sat, 15 Oct 2022 10:24:21 +0800
Subject: [PATCH] test:test for TransHeadersTransfer
---
.../pom.xml | 6 -
.../core/TransHeadersTransferTest.java | 129 ++++++------------
.../support/DynamicEnvironmentVariable.java | 50 -------
.../support/DynamicEnvironmentVariables.java | 41 ------
...nmentVariablesSpringJUnit4ClassRunner.java | 64 ---------
spring-cloud-tencent-dependencies/pom.xml | 8 --
6 files changed, 45 insertions(+), 253 deletions(-)
delete mode 100644 spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/support/DynamicEnvironmentVariable.java
delete mode 100644 spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/support/DynamicEnvironmentVariables.java
delete mode 100644 spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/support/DynamicEnvironmentVariablesSpringJUnit4ClassRunner.java
diff --git a/spring-cloud-starter-tencent-metadata-transfer/pom.xml b/spring-cloud-starter-tencent-metadata-transfer/pom.xml
index e0aec90a1..642bbec1a 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/pom.xml
+++ b/spring-cloud-starter-tencent-metadata-transfer/pom.xml
@@ -50,12 +50,6 @@
spring-cloud-starter-loadbalancer
test
-
-
- com.github.stefanbirkner
- system-rules
- test
-
diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/TransHeadersTransferTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/TransHeadersTransferTest.java
index 9d1c4ef13..eb0c780f0 100644
--- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/TransHeadersTransferTest.java
+++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/TransHeadersTransferTest.java
@@ -18,108 +18,69 @@
package com.tencent.cloud.metadata.core;
+import java.util.Map;
+
+import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.util.JacksonUtils;
-import com.tencent.cloud.metadata.support.DynamicEnvironmentVariable;
-import com.tencent.cloud.metadata.support.DynamicEnvironmentVariablesSpringJUnit4ClassRunner;
-import org.junit.Before;
+import org.junit.AfterClass;
import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.cloud.openfeign.EnableFeignClients;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.http.MediaType;
-import org.springframework.mock.web.MockHttpServletResponse;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.web.reactive.server.FluxExchangeResult;
-import org.springframework.test.web.reactive.server.WebTestClient;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.MvcResult;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
-import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.context.WebApplicationContext;
-import org.springframework.web.server.WebHandler;
-import reactor.core.publisher.Flux;
-import java.util.Map;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.test.context.junit4.SpringRunner;
-import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.DEFINED_PORT;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
/**
* Test for {@link TransHeadersTransfer}.
*
* @author lingxiao.wlx
*/
-@RunWith(DynamicEnvironmentVariablesSpringJUnit4ClassRunner.class)
-@DynamicEnvironmentVariable(name = "SCT_TRAFFIC_CONTENT_RAW_TRANSHEADERS", value = "header1,header2,header3")
-@SpringBootTest(webEnvironment = DEFINED_PORT,
- classes = TransHeadersTransferTest.TestApplication.class,
- properties = {"server.port=8081", "spring.config.location = classpath:application-test.yml"})
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = RANDOM_PORT,
+ classes = DecodeTransferMetadataServletFilterTest.TestApplication.class,
+ properties = {"spring.config.location = classpath:application-test.yml"})
public class TransHeadersTransferTest {
-
- @Autowired
- private WebApplicationContext webContext;
-
- @Autowired
- private DecodeTransferMetadataServletFilter metadataServletFilter;
-
- private MockMvc mockMvc;
-
- private WebTestClient webTestClient;
-
- @Before
- public void setupMockMvc() throws Exception {
- mockMvc = MockMvcBuilders.webAppContextSetup(webContext).addFilter(metadataServletFilter).build();
- webTestClient = WebTestClient.bindToApplicationContext(webContext).build();
+ @AfterClass
+ public static void afterClass() {
+ MetadataContextHolder.remove();
}
@Test
- public void transferTest() throws Exception {
- MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/transHeaders")
- .header("header1", "1")
- .header("header2", "2")
- .header("header3", "3")
- .characterEncoding("UTF-8"))
- .andExpect(status().isOk())
- .andDo(MockMvcResultHandlers.print(System.err))
- .andReturn();
-
- MockHttpServletResponse response = mvcResult.getResponse();
- String contentAsString = response.getContentAsString();
- Map map = JacksonUtils.deserialize2Map(contentAsString);
- System.out.println(contentAsString);
+ public void transferServletTest() {
+ MetadataContext metadataContext = MetadataContextHolder.get();
+ metadataContext.setTransHeaders("header1,header2,header3", "");
+ MockHttpServletRequest request = new MockHttpServletRequest();
+ request.addHeader("header1", "1");
+ request.addHeader("header2", "2");
+ request.addHeader("header3", "3");
+ TransHeadersTransfer.transfer(request);
+ Map transHeadersKV = MetadataContextHolder.get().getTransHeadersKV();
+ Assertions.assertEquals(transHeadersKV.get("header1"), "1");
+ Assertions.assertEquals(transHeadersKV.get("header2"), "2");
+ Assertions.assertEquals(transHeadersKV.get("header3"), "3");
}
@Test
- public void transferReactiveTest(){
- FluxExchangeResult