Skip to content

Commit bea345c

Browse files
committed
refactor a bit dubbo tests
1 parent b039e7b commit bea345c

File tree

2 files changed

+109
-104
lines changed

2 files changed

+109
-104
lines changed

apm-agent-plugins/apm-dubbo-plugin/src/test/java/co/elastic/apm/agent/dubbo/AlibabaDubboInstrumentationTest.java

Lines changed: 54 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import co.elastic.apm.agent.impl.error.ErrorCapture;
2727
import co.elastic.apm.agent.impl.transaction.Span;
2828
import co.elastic.apm.agent.impl.transaction.Transaction;
29-
import co.elastic.apm.agent.testutils.TestPort;
3029
import com.alibaba.dubbo.config.ApplicationConfig;
3130
import com.alibaba.dubbo.config.MethodConfig;
3231
import com.alibaba.dubbo.config.ProtocolConfig;
@@ -45,70 +44,24 @@
4544

4645
public class AlibabaDubboInstrumentationTest extends AbstractDubboInstrumentationTest {
4746

48-
private ReferenceConfig<DubboTestApi> testApiReferenceConfig;
49-
50-
private ServiceConfig<DubboTestApi> testApiServiceConfig;
51-
52-
private ServiceConfig<AnotherApi> anotherApiServiceConfig;
53-
54-
private ReferenceConfig<AnotherApi> anotherApiReferenceConfig;
55-
5647
@Override
5748
protected DubboTestApi buildDubboTestApi() {
58-
RegistryConfig registryConfig = new RegistryConfig();
59-
registryConfig.setAddress("N/A");
49+
RegistryConfig registryConfig = createRegistryConfig();
50+
ApplicationConfig appConfig = createApplicationConfig();
6051

6152
//build AnotherApi provider
62-
ApplicationConfig anotherApiAppConfig = new ApplicationConfig();
63-
anotherApiAppConfig.setName("another-api-provider");
64-
65-
ProtocolConfig anotherApiProtocolConfig = new ProtocolConfig();
66-
anotherApiProtocolConfig.setName("dubbo");
67-
anotherApiProtocolConfig.setPort(getAnotherApiPort());
68-
anotherApiProtocolConfig.setThreads(10);
69-
70-
anotherApiServiceConfig = new ServiceConfig<>();
71-
anotherApiServiceConfig.setApplication(anotherApiAppConfig);
72-
anotherApiServiceConfig.setProtocol(anotherApiProtocolConfig);
73-
anotherApiServiceConfig.setInterface(AnotherApi.class);
74-
anotherApiServiceConfig.setRef(new AnotherApiImpl());
75-
anotherApiServiceConfig.setRegistry(registryConfig);
76-
anotherApiServiceConfig.export();
77-
78-
//build AnotherApi consumer
79-
ApplicationConfig providerAppConfig = new ApplicationConfig();
80-
providerAppConfig.setName("dubbo-provider");
53+
ProtocolConfig anotherApiProtocolConfig = createProtocolConfig(getAnotherApiPort());
54+
createAndExportServiceConfig(registryConfig, AnotherApi.class, new AnotherApiImpl(), appConfig, anotherApiProtocolConfig);
8155

8256
//build AnotherApi consumer
83-
anotherApiReferenceConfig = new ReferenceConfig<>();
84-
anotherApiReferenceConfig.setApplication(providerAppConfig);
85-
anotherApiReferenceConfig.setInterface(AnotherApi.class);
86-
anotherApiReferenceConfig.setUrl("dubbo://localhost:" + getAnotherApiPort());
87-
anotherApiReferenceConfig.setTimeout(3000);
57+
ReferenceConfig<AnotherApi> anotherApiReferenceConfig = createReferenceConfig(AnotherApi.class, appConfig, anotherApiProtocolConfig.getPort());
8858

89-
//build test api provider
90-
ProtocolConfig protocolConfig = new ProtocolConfig();
91-
protocolConfig.setName("dubbo");
92-
protocolConfig.setPort(getPort());
93-
protocolConfig.setThreads(10);
59+
// build DubboTestApi provider
60+
ProtocolConfig protocolConfig = createProtocolConfig(getPort());
61+
createAndExportServiceConfig(registryConfig, DubboTestApi.class, new DubboTestApiImpl(anotherApiReferenceConfig.get()), appConfig, protocolConfig);
9462

95-
testApiServiceConfig = new ServiceConfig<>();
96-
testApiServiceConfig.setApplication(providerAppConfig);
97-
testApiServiceConfig.setProtocol(protocolConfig);
98-
testApiServiceConfig.setInterface(DubboTestApi.class);
99-
testApiServiceConfig.setRef(new DubboTestApiImpl(anotherApiReferenceConfig.get()));
100-
testApiServiceConfig.setRegistry(registryConfig);
101-
testApiServiceConfig.export();
102-
103-
//build test api consumer
104-
ApplicationConfig consumerApp = new ApplicationConfig();
105-
consumerApp.setName("dubbo-consumer");
106-
107-
testApiReferenceConfig = new ReferenceConfig<>();
108-
testApiReferenceConfig.setApplication(consumerApp);
109-
testApiReferenceConfig.setInterface(DubboTestApi.class);
110-
testApiReferenceConfig.setUrl("dubbo://localhost:" + getPort());
111-
testApiReferenceConfig.setTimeout(3000);
63+
// build DubboTestApi consumer
64+
ReferenceConfig<DubboTestApi> testApiReferenceConfig = createReferenceConfig(DubboTestApi.class, appConfig, protocolConfig.getPort());
11265

11366
List<MethodConfig> methodConfigList = new LinkedList<>();
11467
testApiReferenceConfig.setMethods(methodConfigList);
@@ -126,6 +79,50 @@ protected DubboTestApi buildDubboTestApi() {
12679
return testApiReferenceConfig.get();
12780
}
12881

82+
private static RegistryConfig createRegistryConfig() {
83+
RegistryConfig registryConfig = new RegistryConfig();
84+
registryConfig.setAddress("N/A");
85+
return registryConfig;
86+
}
87+
88+
private static ApplicationConfig createApplicationConfig() {
89+
ApplicationConfig appConfig = new ApplicationConfig();
90+
appConfig.setName("all-in-one-app");
91+
return appConfig;
92+
}
93+
94+
private static ProtocolConfig createProtocolConfig(int port){
95+
ProtocolConfig protocolConfig = new ProtocolConfig();
96+
protocolConfig.setName("dubbo");
97+
protocolConfig.setPort(port);
98+
protocolConfig.setThreads(10);
99+
return protocolConfig;
100+
}
101+
102+
private static <T> void createAndExportServiceConfig(RegistryConfig registryConfig,
103+
Class<T> interfaceClass,
104+
T interfaceImpl,
105+
ApplicationConfig applicationConfig,
106+
ProtocolConfig protocolConfig) {
107+
108+
ServiceConfig<T> serviceConfig = new ServiceConfig<T>();
109+
serviceConfig.setApplication(applicationConfig);
110+
serviceConfig.setProtocol(protocolConfig);
111+
serviceConfig.setInterface(interfaceClass);
112+
serviceConfig.setRef(interfaceImpl);
113+
serviceConfig.setRegistry(registryConfig);
114+
serviceConfig.export();
115+
}
116+
117+
private static <T> ReferenceConfig<T> createReferenceConfig(Class<T> interfaceClass, ApplicationConfig applicationConfig, int port) {
118+
ReferenceConfig<T> referenceConfig = new ReferenceConfig<>();
119+
referenceConfig.setApplication(applicationConfig);
120+
referenceConfig.setInterface(interfaceClass);
121+
referenceConfig.setUrl(String.format("dubbo://localhost:%d", port));
122+
referenceConfig.setTimeout(3000);
123+
return referenceConfig;
124+
}
125+
129126
@Test
130127
public void testAsync() throws Exception {
131128
String arg = "hello";

apm-agent-plugins/apm-dubbo-plugin/src/test/java/co/elastic/apm/agent/dubbo/ApacheDubboInstrumentationTest.java

Lines changed: 55 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -44,61 +44,24 @@
4444

4545
public class ApacheDubboInstrumentationTest extends AbstractDubboInstrumentationTest {
4646

47-
private static ReferenceConfig<DubboTestApi> testApiReferenceConfig;
48-
49-
private static ServiceConfig<DubboTestApi> testApiServiceConfig;
50-
51-
private ServiceConfig<AnotherApi> anotherApiServiceConfig;
52-
53-
private ReferenceConfig<AnotherApi> anotherApiReferenceConfig;
54-
5547
@Override
5648
protected DubboTestApi buildDubboTestApi() {
57-
RegistryConfig registryConfig = new RegistryConfig();
58-
registryConfig.setAddress("N/A");
59-
60-
ApplicationConfig appConfig = new ApplicationConfig();
61-
appConfig.setName("all-in-one-app");
49+
RegistryConfig registryConfig = createRegistryConfig();
50+
ApplicationConfig appConfig = createApplicationConfig();
6251

6352
//build AnotherApi provider
64-
ProtocolConfig anotherApiProtocol = new ProtocolConfig();
65-
anotherApiProtocol.setName("dubbo");
66-
anotherApiProtocol.setPort(getAnotherApiPort());
67-
anotherApiProtocol.setThreads(10);
68-
69-
anotherApiServiceConfig = new ServiceConfig<>();
70-
anotherApiServiceConfig.setApplication(appConfig);
71-
anotherApiServiceConfig.setProtocol(anotherApiProtocol);
72-
anotherApiServiceConfig.setInterface(AnotherApi.class);
73-
anotherApiServiceConfig.setRef(new AnotherApiImpl());
74-
anotherApiServiceConfig.setRegistry(registryConfig);
75-
anotherApiServiceConfig.export();
53+
ProtocolConfig anotherApiProtocolConfig = createProtocolConfig(getAnotherApiPort());
54+
createAndExportServiceConfig(registryConfig, AnotherApi.class, new AnotherApiImpl(), appConfig, anotherApiProtocolConfig);
7655

7756
// build AnotherApi consumer
78-
anotherApiReferenceConfig = new ReferenceConfig<>();
79-
anotherApiReferenceConfig.setApplication(appConfig);
80-
anotherApiReferenceConfig.setInterface(AnotherApi.class);
81-
anotherApiReferenceConfig.setUrl("dubbo://localhost:" + getAnotherApiPort());
82-
anotherApiReferenceConfig.setTimeout(3000);
83-
84-
ProtocolConfig protocolConfig = new ProtocolConfig();
85-
protocolConfig.setName("dubbo");
86-
protocolConfig.setPort(getPort());
87-
protocolConfig.setThreads(10);
57+
ReferenceConfig<AnotherApi> anotherApiReferenceConfig = createReferenceConfig(AnotherApi.class, appConfig, anotherApiProtocolConfig.getPort());
8858

89-
testApiServiceConfig = new ServiceConfig<>();
90-
testApiServiceConfig.setApplication(appConfig);
91-
testApiServiceConfig.setProtocol(protocolConfig);
92-
testApiServiceConfig.setInterface(DubboTestApi.class);
93-
testApiServiceConfig.setRef(new DubboTestApiImpl(anotherApiReferenceConfig.get()));
94-
testApiServiceConfig.setRegistry(registryConfig);
95-
testApiServiceConfig.export();
59+
// build DubboTestApi provider
60+
ProtocolConfig protocolConfig = createProtocolConfig(getPort());
61+
createAndExportServiceConfig(registryConfig, DubboTestApi.class, new DubboTestApiImpl(anotherApiReferenceConfig.get()), appConfig, protocolConfig);
9662

97-
testApiReferenceConfig = new ReferenceConfig<>();
98-
testApiReferenceConfig.setApplication(appConfig);
99-
testApiReferenceConfig.setInterface(DubboTestApi.class);
100-
testApiReferenceConfig.setUrl("dubbo://localhost:" + getPort());
101-
testApiReferenceConfig.setTimeout(3000);
63+
// build DubboTestApi consumer
64+
ReferenceConfig<DubboTestApi> testApiReferenceConfig = createReferenceConfig(DubboTestApi.class, appConfig, protocolConfig.getPort());
10265

10366
List<MethodConfig> methodConfigList = new LinkedList<>();
10467
testApiReferenceConfig.setMethods(methodConfigList);
@@ -117,6 +80,51 @@ protected DubboTestApi buildDubboTestApi() {
11780
return testApiReferenceConfig.get();
11881
}
11982

83+
private static RegistryConfig createRegistryConfig() {
84+
RegistryConfig registryConfig = new RegistryConfig();
85+
registryConfig.setAddress("N/A");
86+
return registryConfig;
87+
}
88+
89+
private static ApplicationConfig createApplicationConfig() {
90+
ApplicationConfig appConfig = new ApplicationConfig();
91+
appConfig.setName("all-in-one-app");
92+
return appConfig;
93+
}
94+
95+
private static ProtocolConfig createProtocolConfig(int port) {
96+
ProtocolConfig protocolConfig = new ProtocolConfig();
97+
protocolConfig.setName("dubbo");
98+
protocolConfig.setPort(port);
99+
protocolConfig.setThreads(10);
100+
return protocolConfig;
101+
}
102+
103+
private static <T> void createAndExportServiceConfig(RegistryConfig registryConfig,
104+
Class<T> interfaceClass,
105+
T interfaceImpl,
106+
ApplicationConfig applicationConfig,
107+
ProtocolConfig protocolConfig) {
108+
109+
ServiceConfig<T> serviceConfig = new ServiceConfig<T>();
110+
serviceConfig.setApplication(applicationConfig);
111+
serviceConfig.setProtocol(protocolConfig);
112+
serviceConfig.setInterface(interfaceClass);
113+
serviceConfig.setRef(interfaceImpl);
114+
serviceConfig.setRegistry(registryConfig);
115+
serviceConfig.export();
116+
}
117+
118+
private static <T> ReferenceConfig<T> createReferenceConfig(Class<T> interfaceClass, ApplicationConfig applicationConfig, int port) {
119+
ReferenceConfig<T> referenceConfig = new ReferenceConfig<>();
120+
referenceConfig.setApplication(applicationConfig);
121+
referenceConfig.setInterface(interfaceClass);
122+
referenceConfig.setUrl(String.format("dubbo://localhost:%d", port));
123+
referenceConfig.setTimeout(3000);
124+
return referenceConfig;
125+
}
126+
127+
120128
@Test
121129
public void testAsync() throws Exception {
122130
String arg = "hello";

0 commit comments

Comments
 (0)