diff --git a/CHANGELOG.md b/CHANGELOG.md
index 773807b3..4b5f4936 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,3 +6,4 @@
- [Optimize:optimize spring annotation.](https://github.com/Tencent/spring-cloud-tencent/pull/689)
- [docs:update PR template.](https://github.com/Tencent/spring-cloud-tencent/pull/692)
- [Code optimize & add junit tests.](https://github.com/Tencent/spring-cloud-tencent/pull/702)
+- [Test:support environment variable metadata test.](https://github.com/Tencent/spring-cloud-tencent/pull/711)
diff --git a/spring-cloud-tencent-commons/pom.xml b/spring-cloud-tencent-commons/pom.xml
index 495fc4a1..e8cbc5ec 100644
--- a/spring-cloud-tencent-commons/pom.xml
+++ b/spring-cloud-tencent-commons/pom.xml
@@ -105,6 +105,12 @@
spring-boot-actuator-autoconfigure
true
+
+
+ uk.org.webcompere
+ system-stubs-junit4
+ test
+
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java
index f14a4943..2cf15671 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java
@@ -13,7 +13,6 @@
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
- *
*/
package com.tencent.cloud.common.metadata;
@@ -109,8 +108,9 @@ public class StaticMetadataManager {
String value = entry.getValue();
if (StringUtils.isNotBlank(key)
&& (key.startsWith(ENV_METADATA_PREFIX) || key.equals(ENV_TRAFFIC_CONTENT_RAW_TRANSHEADERS))
- && !key.equals(ENV_METADATA_CONTENT_TRANSITIVE)) {
- String sourceKey;
+ && !key.equals(ENV_METADATA_CONTENT_TRANSITIVE)
+ && !key.equals(ENV_METADATA_CONTENT_DISPOSABLE)) {
+ String sourceKey = "";
if (key.equals(ENV_TRAFFIC_CONTENT_RAW_TRANSHEADERS)) {
sourceKey = key;
envNotReportMetadata.put(sourceKey, value);
diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java
index 35fb5ad2..cadc7b80 100644
--- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java
+++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/StaticMetadataManagerTest.java
@@ -27,10 +27,12 @@ import java.util.Set;
import com.tencent.cloud.common.metadata.config.MetadataLocalProperties;
import com.tencent.cloud.common.spi.InstanceMetadataProvider;
import org.junit.Assert;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import uk.org.webcompere.systemstubs.rules.EnvironmentVariablesRule;
import org.springframework.util.CollectionUtils;
@@ -47,6 +49,12 @@ public class StaticMetadataManagerTest {
@Mock
private MetadataLocalProperties metadataLocalProperties;
+ /**
+ * EnvironmentVariablesRule.
+ */
+ @Rule
+ public EnvironmentVariablesRule rule = new EnvironmentVariablesRule();
+
@Test
public void testParseConfigMetadata() {
Map content = new HashMap<>();
@@ -146,6 +154,32 @@ public class StaticMetadataManagerTest {
}
+ @Test
+ public void testEnvMetadata() {
+ // set env
+ rule.set("SCT_METADATA_CONTENT_TRANSITIVE", "transitiveKey");
+ rule.set("SCT_METADATA_CONTENT_DISPOSABLE", "disposableKey");
+ rule.set("SCT_METADATA_CONTENT_transitiveKey", "transitiveValue");
+ rule.set("SCT_METADATA_CONTENT_disposableKey", "disposableValue");
+ rule.set("SCT_TRAFFIC_CONTENT_RAW_TRANSHEADERS", "header1,header2,header3");
+
+ StaticMetadataManager metadataManager = new StaticMetadataManager(metadataLocalProperties, null);
+ Map allEnvMetadata = metadataManager.getAllEnvMetadata();
+ Assert.assertTrue(allEnvMetadata.containsKey("transitiveKey"));
+ Assert.assertTrue(allEnvMetadata.containsKey("disposableKey"));
+
+ Map envDisposableMetadata = metadataManager.getEnvDisposableMetadata();
+ Assert.assertTrue(envDisposableMetadata.containsKey("disposableKey"));
+ Assert.assertEquals(envDisposableMetadata.get("disposableKey"), "disposableValue");
+
+ Map envTransitiveMetadata = metadataManager.getEnvTransitiveMetadata();
+ Assert.assertTrue(envTransitiveMetadata.containsKey("transitiveKey"));
+ Assert.assertEquals(envTransitiveMetadata.get("transitiveKey"), "transitiveValue");
+
+ String transHeaderFromEnv = metadataManager.getTransHeaderFromEnv();
+ Assert.assertEquals(transHeaderFromEnv, "header1,header2,header3");
+ }
+
static class MockedMetadataProvider implements InstanceMetadataProvider {
@Override
diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml
index 6d8c0f41..c73659c4 100644
--- a/spring-cloud-tencent-dependencies/pom.xml
+++ b/spring-cloud-tencent-dependencies/pom.xml
@@ -79,6 +79,7 @@
3.16.1
1.69
31.0.1-jre
+ 2.0.1
3.2.0
@@ -265,6 +266,13 @@
byte-buddy
${byte-buddy.version}
+
+
+ uk.org.webcompere
+ system-stubs-junit4
+ ${system-stubs-junit4.version}
+ test
+