diff --git a/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigPropertiesServerAddressBothLevelTests.java b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigPropertiesServerAddressBothLevelTests.java new file mode 100644 index 000000000..55d2ae7a9 --- /dev/null +++ b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigPropertiesServerAddressBothLevelTests.java @@ -0,0 +1,125 @@ +/* + * Copyright 2013-2022 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed 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.alibaba.cloud.tests.nacos.config; + +import java.util.Properties; + +import com.alibaba.cloud.nacos.NacosConfigAutoConfiguration; +import com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration; +import com.alibaba.cloud.nacos.NacosConfigManager; +import com.alibaba.cloud.nacos.NacosConfigProperties; +import com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration; +import com.alibaba.cloud.testsupport.SpringCloudAlibaba; +import com.alibaba.cloud.testsupport.TestExtend; +import com.alibaba.nacos.api.PropertyKeyConst; +import com.alibaba.nacos.api.config.ConfigFactory; +import com.alibaba.nacos.api.config.ConfigService; +import com.alibaba.nacos.api.exception.NacosException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Configuration; + +import static com.alibaba.cloud.testsupport.Constant.TIME_OUT; +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; + +@SpringCloudAlibaba(composeFiles = "docker/nacos-compose-test.yml", serviceName = "nacos-standalone") +@TestExtend(time = 4 * TIME_OUT) +@SpringBootTest(classes = NacosConfigPropertiesServerAddressBothLevelTests.TestConfig.class, webEnvironment = RANDOM_PORT, properties = { + "spring.application.name=test-name", + "spring.cloud.nacos.config.server-addr=321,321,321,321:8848", + "spring.cloud.nacos.server-addr=123.123.123.123:8848", + "spring.cloud.nacos.config.username=nacos", + "spring.cloud.nacos.config.password=nacos", + "spring.cloud.nacos.config.file-extension=properties", + "spring.cloud.bootstrap.enabled=true"}) + +public class NacosConfigPropertiesServerAddressBothLevelTests { + + /** + * nacos upload conf file. + */ + public static final String YAML_CONTENT = "configdata:\n" + " user:\n" + + " age: 22\n" + " name: freeman1123\n" + " map:\n" + + " hobbies:\n" + " - art\n" + " - programming\n" + + " - movie\n" + " intro: Hello, I'm freeman\n" + + " extra: yo~\n" + " users:\n" + " - name: dad\n" + + " age: 20\n" + " - name: mom\n" + " age: 18"; + + @Autowired + private NacosConfigProperties nacosConfigProperties; + + private ConfigService remoteService; + + private NacosConfigManager nacosConfigManager; + + @BeforeAll + public static void setUp() { + + } + + @BeforeEach + public void prepare() throws NacosException { + Properties nacosSettings = new Properties(); + String serverAddress = "321,321,321,321:8848"; + nacosSettings.put(PropertyKeyConst.SERVER_ADDR, serverAddress); + nacosSettings.put(PropertyKeyConst.USERNAME, "nacos"); + nacosSettings.put(PropertyKeyConst.PASSWORD, "nacos"); + + remoteService = ConfigFactory.createConfigService(nacosSettings); + nacosConfigManager = new NacosConfigManager(nacosConfigProperties); + } + + @Test + public void contextLoads() throws NacosException { + ConfigService localService = nacosConfigManager.getConfigService(); + updateConfig(); + String localContent = fetchConfig(localService, "nacos-config-refresh.yml", + "DEFAULT_GROUP", TIME_OUT); + String remoteContent = fetchConfig(remoteService, "nacos-config-refresh.yml", + "DEFAULT_GROUP", TIME_OUT); + Assertions.assertEquals(localContent, remoteContent); + + assertThat(nacosConfigProperties.getServerAddr()).isEqualTo("321,321,321,321:8848"); + + } + + private String fetchConfig(ConfigService configService, String dataId, String group, long timeoutMs) throws NacosException { + return configService.getConfig(dataId, group, timeoutMs); + } + + private void updateConfig() throws NacosException { + remoteService.publishConfig("nacos-config-refresh.yml", "DEFAULT_GROUP", + YAML_CONTENT, "yaml"); + } + + @Configuration + @EnableAutoConfiguration + @ImportAutoConfiguration({NacosConfigEndpointAutoConfiguration.class, + NacosConfigAutoConfiguration.class, NacosConfigBootstrapConfiguration.class}) + public static class TestConfig { + + } +} + diff --git a/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigPropertiesServerAddressTopLevelTests.java b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigPropertiesServerAddressTopLevelTests.java new file mode 100644 index 000000000..24f83781f --- /dev/null +++ b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigPropertiesServerAddressTopLevelTests.java @@ -0,0 +1,124 @@ +/* + * Copyright 2013-2022 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed 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.alibaba.cloud.tests.nacos.config; + +import java.util.Properties; + +import com.alibaba.cloud.nacos.NacosConfigAutoConfiguration; +import com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration; +import com.alibaba.cloud.nacos.NacosConfigManager; +import com.alibaba.cloud.nacos.NacosConfigProperties; +import com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration; +import com.alibaba.cloud.testsupport.SpringCloudAlibaba; +import com.alibaba.cloud.testsupport.TestExtend; +import com.alibaba.nacos.api.PropertyKeyConst; +import com.alibaba.nacos.api.config.ConfigFactory; +import com.alibaba.nacos.api.config.ConfigService; +import com.alibaba.nacos.api.exception.NacosException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Configuration; + +import static com.alibaba.cloud.testsupport.Constant.TIME_OUT; +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; + +@SpringCloudAlibaba(composeFiles = "docker/nacos-compose-test.yml", serviceName = "nacos-standalone") +@TestExtend(time = 4 * TIME_OUT) +@SpringBootTest(classes = NacosConfigPropertiesServerAddressTopLevelTests.TestConfig.class, webEnvironment = RANDOM_PORT, properties = { + "spring.application.name=test-name", + "spring.cloud.nacos.server-addr=123.123.123.123:8848", + "spring.cloud.nacos.config.username=nacos", + "spring.cloud.nacos.config.password=nacos", + "spring.cloud.nacos.config.file-extension=properties", + "spring.cloud.bootstrap.enabled=true"}) + +public class NacosConfigPropertiesServerAddressTopLevelTests { + + /** + * nacos upload conf file. + */ + public static final String YAML_CONTENT = "configdata:\n" + " user:\n" + + " age: 22\n" + " name: freeman1123\n" + " map:\n" + + " hobbies:\n" + " - art\n" + " - programming\n" + + " - movie\n" + " intro: Hello, I'm freeman\n" + + " extra: yo~\n" + " users:\n" + " - name: dad\n" + + " age: 20\n" + " - name: mom\n" + " age: 18"; + + @Autowired + private NacosConfigProperties nacosConfigProperties; + + private ConfigService remoteService; + + private NacosConfigManager nacosConfigManager; + + @BeforeAll + public static void setUp() { + + } + + @BeforeEach + public void prepare() throws NacosException { + Properties nacosSettings = new Properties(); + String serverAddress = "123.123.123.123:8848"; + nacosSettings.put(PropertyKeyConst.SERVER_ADDR, serverAddress); + nacosSettings.put(PropertyKeyConst.USERNAME, "nacos"); + nacosSettings.put(PropertyKeyConst.PASSWORD, "nacos"); + + remoteService = ConfigFactory.createConfigService(nacosSettings); + nacosConfigManager = new NacosConfigManager(nacosConfigProperties); + } + + @Test + public void contextLoads() throws NacosException { + ConfigService localService = nacosConfigManager.getConfigService(); + updateConfig(); + String localContent = fetchConfig(localService, "nacos-config-refresh.yml", + "DEFAULT_GROUP", TIME_OUT); + String remoteContent = fetchConfig(remoteService, "nacos-config-refresh.yml", + "DEFAULT_GROUP", TIME_OUT); + Assertions.assertEquals(localContent, remoteContent); + + assertThat(nacosConfigProperties.getServerAddr()).isEqualTo("123.123.123.123:8848"); + + } + + private String fetchConfig(ConfigService configService, String dataId, String group, long timeoutMs) throws NacosException { + return configService.getConfig(dataId, group, timeoutMs); + } + + private void updateConfig() throws NacosException { + remoteService.publishConfig("nacos-config-refresh.yml", "DEFAULT_GROUP", + YAML_CONTENT, "yaml"); + } + + @Configuration + @EnableAutoConfiguration + @ImportAutoConfiguration({NacosConfigEndpointAutoConfiguration.class, + NacosConfigAutoConfiguration.class, NacosConfigBootstrapConfiguration.class}) + public static class TestConfig { + + } +} + diff --git a/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigurationTests.java b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigurationTests.java new file mode 100644 index 000000000..bdd3692d3 --- /dev/null +++ b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosConfigurationTests.java @@ -0,0 +1,175 @@ +/* + * Copyright 2013-2022 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed 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.alibaba.cloud.tests.nacos.config; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import com.alibaba.cloud.nacos.NacosConfigAutoConfiguration; +import com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration; +import com.alibaba.cloud.nacos.NacosConfigManager; +import com.alibaba.cloud.nacos.NacosConfigProperties; +import com.alibaba.cloud.nacos.endpoint.NacosConfigEndpoint; +import com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration; +import com.alibaba.cloud.nacos.refresh.NacosRefreshHistory; +import com.alibaba.cloud.testsupport.SpringCloudAlibaba; +import com.alibaba.cloud.testsupport.TestExtend; +import com.alibaba.nacos.api.PropertyKeyConst; +import com.alibaba.nacos.api.config.ConfigFactory; +import com.alibaba.nacos.api.config.ConfigService; +import com.alibaba.nacos.api.exception.NacosException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Configuration; + +import static com.alibaba.cloud.testsupport.Constant.TIME_OUT; +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.NONE; + +@SpringCloudAlibaba(composeFiles = "docker/nacos-compose-test.yml", serviceName = "nacos-standalone") +@TestExtend(time = 4 * TIME_OUT) +@SpringBootTest(classes = NacosConfigurationTests.TestConfig.class, webEnvironment = NONE, properties = { + "spring.application.name=myTestService1", + "spring.profiles.active=dev,test", + "spring.cloud.nacos.config.server-addr=127.0.0.1:8848", + "spring.cloud.nacos.config.username=nacos", + "spring.cloud.nacos.config.password=nacos", + "spring.cloud.nacos.config.encode=utf-8", + "spring.cloud.nacos.config.timeout=1000", + "spring.cloud.nacos.config.file-extension=properties", + "spring.cloud.nacos.config.extension-configs[0].data-id=ext-config-common01.properties", + "spring.cloud.nacos.config.extension-configs[1].data-id=ext-config-common02.properties", + "spring.cloud.nacos.config.extension-configs[1].group=GLOBAL_GROUP", + "spring.cloud.nacos.config.shared-dataids=common1.properties,common2.properties", + "spring.cloud.bootstrap.enabled=true"}) + +public class NacosConfigurationTests { + + /** + * nacos upload conf file. + */ + public static final String YAML_CONTENT = "configdata:\n" + " user:\n" + + " age: 22\n" + " name: freeman1123\n" + " map:\n" + + " hobbies:\n" + " - art\n" + " - programming\n" + + " - movie\n" + " intro: Hello, I'm freeman\n" + + " extra: yo~\n" + " users:\n" + " - name: dad\n" + + " age: 20\n" + " - name: mom\n" + " age: 18"; + + @Autowired + private NacosConfigProperties nacosConfigProperties; + + @Autowired + private NacosRefreshHistory refreshHistory; + + private ConfigService remoteService; + + private NacosConfigManager nacosConfigManager; + + @BeforeAll + public static void setUp() { + + } + + @BeforeEach + public void prepare() throws NacosException { + Properties nacosSettings = new Properties(); + String serverAddress = "127.0.0.1:8848"; + nacosSettings.put(PropertyKeyConst.SERVER_ADDR, serverAddress); + nacosSettings.put(PropertyKeyConst.USERNAME, "nacos"); + nacosSettings.put(PropertyKeyConst.PASSWORD, "nacos"); + + remoteService = ConfigFactory.createConfigService(nacosSettings); + nacosConfigManager = new NacosConfigManager(nacosConfigProperties); + } + + @Test + public void contextLoads() throws NacosException { + ConfigService localService = nacosConfigManager.getConfigService(); + updateConfig(); + String localContent = fetchConfig(localService, "nacos-config-refresh.yml", + "DEFAULT_GROUP", TIME_OUT); + String remoteContent = fetchConfig(remoteService, "nacos-config-refresh.yml", + "DEFAULT_GROUP", TIME_OUT); + Assertions.assertEquals(localContent, remoteContent); + List mockConfig = mockExtConfigs(); + List extConfig = nacosConfigProperties + .getExtensionConfigs(); + Assertions.assertArrayEquals(extConfig.toArray(), mockConfig.toArray()); + + assertThat(nacosConfigProperties.getServerAddr()).isEqualTo("127.0.0.1:8848"); + assertThat(nacosConfigProperties.getFileExtension()).isEqualTo("properties"); + assertThat(nacosConfigProperties.getTimeout()).isEqualTo(1000); + assertThat(nacosConfigProperties.getEncode()).isEqualTo("utf-8"); + assertThat(nacosConfigProperties.getUsername()).isEqualTo("nacos"); + assertThat(nacosConfigProperties.getSharedConfigs() != null); + assertThat(nacosConfigProperties.getSharedConfigs()).contains( + new NacosConfigProperties.Config("common1.properties"), + new NacosConfigProperties.Config("common2.properties")); + + checkoutEndpoint(); + + } + + private String fetchConfig(ConfigService configService, String dataId, String group, long timeoutMs) throws NacosException { + return configService.getConfig(dataId, group, timeoutMs); + } + + private void updateConfig() throws NacosException { + remoteService.publishConfig("nacos-config-refresh.yml", "DEFAULT_GROUP", + YAML_CONTENT, "yaml"); + } + + private void checkoutEndpoint() throws NacosException { + NacosConfigEndpoint nacosConfigEndpoint = new NacosConfigEndpoint(nacosConfigProperties, + refreshHistory); + Map map = nacosConfigEndpoint.invoke(); + assertThat(nacosConfigProperties).isEqualTo(map.get("NacosConfigProperties")); + assertThat(refreshHistory.getRecords()).isEqualTo(map.get("RefreshHistory")); + } + + public static List mockExtConfigs() { + List mockConfig = new ArrayList<>(); + NacosConfigProperties.Config config1 = new NacosConfigProperties.Config(); + config1.setDataId("ext-config-common01.properties"); + config1.setGroup("DEFAULT_GROUP"); + config1.setRefresh(false); + NacosConfigProperties.Config config2 = new NacosConfigProperties.Config(); + config2.setDataId("ext-config-common02.properties"); + config2.setGroup("GLOBAL_GROUP"); + config2.setRefresh(false); + mockConfig.add(config1); + mockConfig.add(config2); + return mockConfig; + } + + @Configuration + @EnableAutoConfiguration + @ImportAutoConfiguration({NacosConfigEndpointAutoConfiguration.class, + NacosConfigAutoConfiguration.class, NacosConfigBootstrapConfiguration.class}) + public static class TestConfig { + + } +} diff --git a/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosFileExtensionTest.java b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosFileExtensionTest.java new file mode 100644 index 000000000..8a34a7455 --- /dev/null +++ b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/java/com/alibaba/cloud/tests/nacos/config/NacosFileExtensionTest.java @@ -0,0 +1,125 @@ +/* + * Copyright 2013-2022 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed 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.alibaba.cloud.tests.nacos.config; + +import java.util.Properties; + +import com.alibaba.cloud.nacos.NacosConfigAutoConfiguration; +import com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration; +import com.alibaba.cloud.nacos.NacosConfigManager; +import com.alibaba.cloud.nacos.NacosConfigProperties; +import com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration; +import com.alibaba.cloud.testsupport.SpringCloudAlibaba; +import com.alibaba.cloud.testsupport.TestExtend; +import com.alibaba.nacos.api.PropertyKeyConst; +import com.alibaba.nacos.api.config.ConfigFactory; +import com.alibaba.nacos.api.config.ConfigService; +import com.alibaba.nacos.api.exception.NacosException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Configuration; + +import static com.alibaba.cloud.testsupport.Constant.TIME_OUT; +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.NONE; + +@SpringCloudAlibaba(composeFiles = "docker/nacos-compose-test.yml", serviceName = "nacos-standalone") +@TestExtend(time = 4 * TIME_OUT) +@SpringBootTest(classes = NacosFileExtensionTest.TestConfig.class, webEnvironment = NONE, properties = { + "spring.application.name=test-name", + "spring.cloud.nacos.config.server-addr=127.0.0.1:8848", + "spring.cloud.nacos.config.username=nacos", + "spring.cloud.nacos.config.password=nacos", + "spring.cloud.nacos.config.file-extension=properties", + "spring.cloud.bootstrap.enabled=true"}) + +public class NacosFileExtensionTest { + + /** + * nacos upload conf file. + */ + public static final String YAML_CONTENT = "configdata:\n" + " user:\n" + + " age: 22\n" + " name: freeman1123\n" + " map:\n" + + " hobbies:\n" + " - art\n" + " - programming\n" + + " - movie\n" + " intro: Hello, I'm freeman\n" + + " extra: yo~\n" + " users:\n" + " - name: dad\n" + + " age: 20\n" + " - name: mom\n" + " age: 18"; + + @Autowired + private NacosConfigProperties nacosConfigProperties; + + private ConfigService remoteService; + + private NacosConfigManager nacosConfigManager; + + @BeforeAll + public static void setUp() { + + } + + @BeforeEach + public void prepare() throws NacosException { + Properties nacosSettings = new Properties(); + String serverAddress = "127.0.0.1:8848"; + nacosSettings.put(PropertyKeyConst.SERVER_ADDR, serverAddress); + nacosSettings.put(PropertyKeyConst.USERNAME, "nacos"); + nacosSettings.put(PropertyKeyConst.PASSWORD, "nacos"); + + remoteService = ConfigFactory.createConfigService(nacosSettings); + nacosConfigManager = new NacosConfigManager(nacosConfigProperties); + } + + @Test + public void contextLoads() throws NacosException { + ConfigService localService = nacosConfigManager.getConfigService(); + updateConfig(); + String localContent = fetchConfig(localService, "nacos-config-refresh.yml", + "DEFAULT_GROUP", TIME_OUT); + String remoteContent = fetchConfig(remoteService, "nacos-config-refresh.yml", + "DEFAULT_GROUP", TIME_OUT); + Assertions.assertEquals(localContent, remoteContent); + + assertThat(nacosConfigProperties.getServerAddr()).isEqualTo("127.0.0.1:8848"); + assertThat(nacosConfigProperties.getFileExtension()).isEqualTo("properties"); + assertThat(nacosConfigProperties.getUsername()).isEqualTo("nacos"); + + } + + private String fetchConfig(ConfigService configService, String dataId, String group, long timeoutMs) throws NacosException { + return configService.getConfig(dataId, group, timeoutMs); + } + + private void updateConfig() throws NacosException { + remoteService.publishConfig("nacos-config-refresh.yml", "DEFAULT_GROUP", + YAML_CONTENT, "yaml"); + } + + @Configuration + @EnableAutoConfiguration + @ImportAutoConfiguration({NacosConfigEndpointAutoConfiguration.class, + NacosConfigAutoConfiguration.class, NacosConfigBootstrapConfiguration.class}) + public static class TestConfig { + + } +} diff --git a/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/resources/docker/nacos-compose-test.yml b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/resources/docker/nacos-compose-test.yml index 042749d3c..15c349ba9 100644 --- a/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/resources/docker/nacos-compose-test.yml +++ b/spring-cloud-alibaba-tests/nacos-tests/nacos-config-test/src/test/resources/docker/nacos-compose-test.yml @@ -9,4 +9,4 @@ services: - "8848:8848" healthcheck: test: "curl --fail http://127.0.0.1:8848/nacos/v1/console/health/liveness || exit 1" - interval: 5s \ No newline at end of file + interval: 5s