Skip to content

Commit a2e3633

Browse files
authored
test: add iotdaserver testcase (#26)
1 parent 3a04537 commit a2e3633

File tree

4 files changed

+52
-7
lines changed

4 files changed

+52
-7
lines changed

mtconnect-client/src/main/java/io/github/protocol/mtconnect/client/MTConnectClient.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.github.openfacade.http.HttpClient;
44
import io.github.openfacade.http.HttpClientFactory;
55
import io.github.openfacade.http.HttpResponse;
6+
import io.github.protocol.mtconnect.api.MTConnectAssets;
67
import io.github.protocol.mtconnect.api.MTConnectDevices;
78
import io.github.protocol.mtconnect.common.XmlUtil;
89

@@ -21,8 +22,25 @@ public MTConnectClient(MTConnectClientConfiguration configuration) {
2122
this.httpClient = HttpClientFactory.createHttpClient(configuration.httpConfig());
2223
}
2324

24-
public MTConnectDevices device(String Id) {
25-
return null;
25+
public MTConnectAssets assets() throws ExecutionException, InterruptedException {
26+
String url = String.format("http://%s:%s/assets", config.host(), config.port());
27+
CompletableFuture<HttpResponse> future = httpClient.get(url);
28+
29+
CompletableFuture<MTConnectAssets> resp = future.thenCompose(response -> {
30+
if (response.statusCode() >= 200 && response.statusCode() < 300) {
31+
try {
32+
String string = new String(response.body(), StandardCharsets.UTF_8);
33+
MTConnectAssets body = XmlUtil.fromXml(string, MTConnectAssets.class);
34+
return CompletableFuture.completedFuture(body);
35+
} catch (Exception e) {
36+
return CompletableFuture.failedFuture(e);
37+
}
38+
} else {
39+
return CompletableFuture.failedFuture(new Exception("http error: " + Arrays.toString(response.body())));
40+
}
41+
});
42+
43+
return resp.get();
2644
}
2745

2846
public MTConnectDevices devices() throws ExecutionException, InterruptedException {

mtconnect-server/src/main/java/io/github/protocol/mtconnect/server/impl/MemoryMtProcessor.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,18 @@
66
import io.github.protocol.mtconnect.api.MTConnectDevices;
77
import io.github.protocol.mtconnect.server.MTProcessor;
88

9-
import java.util.HashMap;
10-
import java.util.Map;
119

1210
/**
1311
* MemoryMtProcessor is a simple implementation of MtProcessor that stores all the data in memory.
1412
*/
1513
public class MemoryMtProcessor implements MTProcessor {
1614

17-
private final Map<String, MTConnectAssets> mtConnectAssetsMap = new HashMap<>();
18-
1915
private MTConnectDevices devices;
16+
private MTConnectAssets assets;
2017

2118
@Override
2219
public MTConnectAssets asset(AssetRequest assetRequest) {
23-
return mtConnectAssetsMap.get(assetRequest.getId());
20+
return assets;
2421
}
2522

2623
@Override
@@ -31,4 +28,8 @@ public MTConnectDevices device(DeviceRequest deviceRequest) {
3128
public void updateDevices(MTConnectDevices devices) {
3229
this.devices = devices;
3330
}
31+
32+
public void updateAssets(MTConnectAssets assets) {
33+
this.assets = assets;
34+
}
3435
}

mtconnect-server/src/test/java/io/github/protocol/mtconnect/server/IoTDAServerTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ private MTConnectServer startIoTDAServer() {
5050
.build();
5151
configuration.setHttpConfig(httpServerConfig);
5252
IoTDAMtProcessor ioTDAMtProcessor = new IoTDAMtProcessor.Builder()
53+
.setAk("mock_ak")
54+
.setSk("mock_sk")
55+
.setEndpoint("mock_endpoint")
5356
.setIoTDAClient(mockClient)
5457
.build();
5558

mtconnect-server/src/test/java/io/github/protocol/mtconnect/server/MTConnectDeviceTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import io.github.openfacade.http.HttpClientConfig;
44
import io.github.openfacade.http.HttpServerConfig;
55
import io.github.openfacade.http.HttpServerEngine;
6+
import io.github.protocol.mtconnect.api.CuttingTool;
67
import io.github.protocol.mtconnect.api.Device;
8+
import io.github.protocol.mtconnect.api.MTConnectAssets;
79
import io.github.protocol.mtconnect.api.MTConnectDevices;
810
import io.github.protocol.mtconnect.client.MTConnectClient;
911
import io.github.protocol.mtconnect.client.MTConnectClientConfiguration;
@@ -38,6 +40,27 @@ private MemoryMtProcessor startMemoryServer() {
3840
return mtProcessor;
3941
}
4042

43+
@Test
44+
public void testAssets() throws ExecutionException, InterruptedException {
45+
MemoryMtProcessor memoryMtProcessor = startMemoryServer();
46+
MTConnectAssets assets = new MTConnectAssets();
47+
CuttingTool cuttingTool = new CuttingTool();
48+
cuttingTool.setAssetId("asset_id");
49+
50+
assets.setCuttingTools(Collections.singletonList(cuttingTool));
51+
memoryMtProcessor.updateAssets(assets);
52+
53+
MTConnectClientConfiguration configuration = new MTConnectClientConfiguration();
54+
HttpClientConfig httpClientConfig = new HttpClientConfig.Builder().build();
55+
configuration.setHttpConfig(httpClientConfig);
56+
configuration.setHost(localHost);
57+
configuration.setPort(port);
58+
MTConnectClient mtConnectClient = new MTConnectClient(configuration);
59+
60+
MTConnectAssets resp = mtConnectClient.assets();
61+
Assertions.assertEquals(cuttingTool.getAssetId(), resp.getCuttingTools().get(0).getAssetId());
62+
}
63+
4164
@Test
4265
public void testDevices() throws ExecutionException, InterruptedException {
4366
MemoryMtProcessor memoryMtProcessor = startMemoryServer();

0 commit comments

Comments
 (0)