private void parseConfigMetadata(MetadataLocalProperties metadataLocalProperties) {
		Map<String, String> allMetadata = metadataLocalProperties.getContent();
		List<String> transitiveKeys = metadataLocalProperties.getTransitive();
		List<String> disposableKeys = metadataLocalProperties.getDisposable();
		List<String> headers = metadataLocalProperties.getHeaders();

		Map<String, String> transitiveResult = new HashMap<>();
		for (String key : transitiveKeys) {
			if (allMetadata.containsKey(key)) {
				transitiveResult.put(key, allMetadata.get(key));
			}
		}

		Map<String, String> disposableResult = new HashMap<>();
		for (String key : disposableKeys) {
			if (allMetadata.containsKey(key)) {
				disposableResult.put(key, allMetadata.get(key));
			}
		}

		configTransitiveMetadata = Collections.unmodifiableMap(transitiveResult);
		configDisposableMetadata = Collections.unmodifiableMap(disposableResult);
		configTransHeaders = CollectionUtils.isEmpty(headers) ? null : String.join(",", headers);
		configMetadata = Collections.unmodifiableMap(allMetadata);
	}
@Test
	public void testParseConfigMetadata() {
		Map<String, String> content = new HashMap<>();
		content.put("k1", "v1");
		content.put("k2", "v22");
		content.put("zone", "zone1");
		content.put("region", "region1");

		when(metadataLocalProperties.getContent()).thenReturn(content);
		when(metadataLocalProperties.getTransitive()).thenReturn(Collections.singletonList("k1"));
		when(metadataLocalProperties.getDisposable()).thenReturn(Collections.singletonList("k1"));
		when(metadataLocalProperties.getHeaders()).thenReturn(Arrays.asList("a", "d"));

		StaticMetadataManager metadataManager = new StaticMetadataManager(metadataLocalProperties, null);

		Map<String, String> metadata = metadataManager.getAllConfigMetadata();
		assertThat(metadata.size()).isEqualTo(4);
		assertThat(metadata.get("k1")).isEqualTo("v1");
		assertThat(metadata.get("k2")).isEqualTo("v22");

		Map<String, String> transitiveMetadata = metadataManager.getConfigTransitiveMetadata();
		assertThat(transitiveMetadata.size()).isEqualTo(1);
		assertThat(transitiveMetadata.get("k1")).isEqualTo("v1");

		Map<String, String> disposableMetadata = metadataManager.getConfigDisposableMetadata();
		assertThat(disposableMetadata.size()).isEqualTo(1);
		assertThat(disposableMetadata.get("k1")).isEqualTo("v1");

		assertThat(metadataManager.getZone()).isEqualTo("zone1");
		assertThat(metadataManager.getRegion()).isEqualTo("region1");

		Map<String, String> locationInfo = metadataManager.getLocationMetadata();
		assertThat(locationInfo.get("zone")).isEqualTo("zone1");
		assertThat(locationInfo.get("region")).isEqualTo("region1");

		String transHeaderFromConfig = metadataManager.getTransHeaderFromConfig();
		assertThat(transHeaderFromConfig).isEqualTo("a,d");
	}