Validating Server Properties Configuration in Alibaba Arthas
This test suite validates the server properties configuration and system property binding functionality in Arthas, focusing on server settings and system property injection mechanisms.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
alibaba/arthas
core/src/test/java/com/taobao/arthas/core/config/ServerPropertiesTest.java
package com.taobao.arthas.core.config;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import org.junit.Assert;
import org.junit.Test;
import com.taobao.arthas.core.config.ErrorProperties.IncludeStacktrace;
import com.taobao.arthas.core.env.ArthasEnvironment;
import com.taobao.arthas.core.env.PropertiesPropertySource;
public class ServerPropertiesTest {
@Test
public void test() throws UnknownHostException {
Properties p = new Properties();
p.put("server.port", "8080");
p.put("server.address", "192.168.1.1");
p.put("server.ssl.enabled", "true");
p.put("server.ssl.protocol", "TLS");
p.put("server.ssl.ciphers", "abc, efg ,hij");
p.put("server.error.includeStacktrace", "ALWAYS");
ArthasEnvironment arthasEnvironment = new ArthasEnvironment();
arthasEnvironment.addLast(new PropertiesPropertySource("test1", p));
ServerProperties serverProperties = new ServerProperties();
BinderUtils.inject(arthasEnvironment, serverProperties);
Assert.assertEquals(serverProperties.getPort().intValue(), 8080);
Assert.assertEquals(serverProperties.getAddress(), InetAddress.getByName("192.168.1.1"));
Assert.assertEquals(serverProperties.getSsl().getProtocol(), "TLS");
Assert.assertTrue(serverProperties.getSsl().isEnabled());
Assert.assertArrayEquals(serverProperties.getSsl().getCiphers(), new String[] { "abc", "efg", "hij" });
Assert.assertEquals(serverProperties.getError().getIncludeStacktrace(), IncludeStacktrace.ALWAYS);
}
@Test
public void testSystemProperties() {
Properties p = new Properties();
p.put("system.test.systemKey", "kkk");
p.put("system.test.nonSystemKey", "xxxx");
p.put("system.test.systemIngeger", "123");
System.setProperty("system.test.systemKey", "ssss");
System.setProperty("system.test.systemIngeger", "110");
ArthasEnvironment arthasEnvironment = new ArthasEnvironment();
arthasEnvironment.addLast(new PropertiesPropertySource("test1", p));
SystemObject systemObject = new SystemObject();
BinderUtils.inject(arthasEnvironment, systemObject);
Assert.assertEquals(systemObject.getSystemKey(), "ssss");
Assert.assertEquals(systemObject.getNonSystemKey(), "xxxx");
Assert.assertEquals(systemObject.getSystemIngeger(), 110);
}
}