Skip to content

Commit 37ad238

Browse files
committed
test cleanup
1 parent 0ce36aa commit 37ad238

File tree

5 files changed

+108
-52
lines changed

5 files changed

+108
-52
lines changed

src/test/java/ch/loway/oss/ari4java/generated/ActonBridgesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void receiveWrongMessage() throws RestException {
7575
boolean exceptionRaised = false;
7676

7777
try {
78-
Playback pb = aa.play("aaa", "sss").execute();
78+
aa.play("aaa", "sss").execute();
7979
} catch (RestException e) {
8080
exceptionRaised = true;
8181
}

src/test/java/ch/loway/oss/ari4java/generated/DeserializeToListOfInterfaceTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ public void testDeserializeAbstract() throws RestException {
5151
assertEquals("El 2 B", "y2", l.get(1).getB());
5252
}
5353

54-
55-
public static String STR_TUPLE = "[\n" +
54+
public static final String STR_TUPLE = "[\n" +
5655
" {\"a\": \"x1\", \"b\": \"x2\" },\n" +
5756
" {\"a\": \"y1\", \"b\": \"y2\" }\n" +
5857
"]";

src/test/java/ch/loway/oss/ari4java/sandbox/sample/Weasels.java

Lines changed: 42 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,73 +2,67 @@
22

33
import ch.loway.oss.ari4java.ARI;
44
import ch.loway.oss.ari4java.AriVersion;
5-
import ch.loway.oss.ari4java.generated.models.*;
6-
import ch.loway.oss.ari4java.tools.AriCallback;
5+
import ch.loway.oss.ari4java.generated.models.AsteriskInfo;
6+
import ch.loway.oss.ari4java.generated.models.Message;
7+
import ch.loway.oss.ari4java.generated.models.PlaybackFinished;
8+
import ch.loway.oss.ari4java.generated.models.StasisStart;
9+
import ch.loway.oss.ari4java.tools.AriConnectionEvent;
10+
import ch.loway.oss.ari4java.tools.AriWSCallback;
711
import ch.loway.oss.ari4java.tools.RestException;
12+
import org.slf4j.Logger;
13+
import org.slf4j.LoggerFactory;
814

9-
import java.time.LocalDateTime;
1015
import java.util.concurrent.ExecutorService;
1116
import java.util.concurrent.Executors;
1217
import java.util.concurrent.TimeUnit;
1318

1419
public class Weasels {
1520

16-
// private static final String ARI_URL = "http://192.168.99.100:18088/";
17-
// private static final String ARI_USER = "ari4java";
18-
// private static final String ARI_PASS = "yothere";
19-
private static final String ARI_URL = "http://asterisk1.local:8088/";
20-
// private static final String ARI_URL = "http://localhost:8088/";
21-
private static final String ARI_USER = "asterisk";
22-
private static final String ARI_PASS = "asterisk";
2321
private static final String ARI_APP = "weasels-app";
2422

2523
private ARI ari;
24+
private Logger logger = LoggerFactory.getLogger(Weasels.class);
2625

2726
public static void main(String[] args) {
28-
new Weasels().start();
27+
if (args.length != 3) {
28+
System.out.println("Expecting 3 arguments: url user pass");
29+
System.exit(1);
30+
}
31+
new Weasels().start(args[0], args[1], args[2]);
2932
}
3033

31-
private void start() {
32-
log("THE START");
33-
boolean connected = connect();
34+
private void start(String url, String user, String pass) {
35+
logger.info("THE START");
36+
boolean connected = connect(url, user, pass);
3437
if (connected) {
3538
try {
3639
weasels();
3740
} catch (Throwable t) {
38-
log("Error: " + t.getMessage());
39-
t.printStackTrace();
41+
logger.error("Error: {}", t.getMessage(), t);
4042
} finally {
41-
log("ARI cleanup");
43+
logger.info("ARI cleanup");
4244
ari.cleanup();
4345
}
4446
}
45-
log("THE END");
46-
}
47-
48-
private void log(String message) {
49-
String time = LocalDateTime.now().toString();
50-
String thread = Thread.currentThread().getName();
51-
System.out.println(time + " - [" + thread + "] - " + message);
47+
logger.info("THE END");
5248
}
5349

54-
private boolean connect() {
50+
private boolean connect(String url, String user, String pass) {
5551
try {
56-
// ari = ARI.build(ARI_URL, ARI_APP, ARI_USER, ARI_PASS, AriVersion.IM_FEELING_LUCKY);
57-
ari = ARI.build(ARI_URL, ARI_APP, ARI_USER, ARI_PASS, AriVersion.ARI_5_0_0);
58-
log("Detect Server ARI Version: " + ari.getVersion().version());
59-
// AsteriskInfo info = ari.asterisk().getInfo().execute();
60-
// log("System up since " + info.getStatus().getStartup_time());
52+
ari = ARI.build(url, ARI_APP, user, pass, AriVersion.IM_FEELING_LUCKY);
53+
logger.info("ARI Version: {}", ari.getVersion().version());
54+
AsteriskInfo info = ari.asterisk().getInfo().execute();
55+
logger.info("AsteriskInfo up since {}", info.getStatus().getStartup_time());
6156
return true;
6257
} catch (Throwable t) {
63-
log("Error: " + t.getMessage());
64-
t.printStackTrace();
58+
logger.error("Error: {}", t.getMessage(), t);
6559
}
6660
return false;
6761
}
6862

6963
private void weasels() throws InterruptedException, RestException {
7064
final ExecutorService threadPool = Executors.newFixedThreadPool(10);
71-
ari.events().eventWebsocket(ARI_APP).execute(new AriCallback<Message>() {
65+
ari.events().eventWebsocket(ARI_APP).execute(new AriWSCallback<Message>() {
7266
@Override
7367
public void onSuccess(Message message) {
7468
threadPool.execute(() -> {
@@ -78,40 +72,45 @@ public void onSuccess(Message message) {
7872
} else if (message instanceof PlaybackFinished) {
7973
handlePlaybackFinished((PlaybackFinished) message);
8074
} else {
81-
log("Unhandled Event - " + message.getType());
75+
logger.info("Unhandled Event - {}", message.getType());
8276
}
8377
} catch (Throwable e) {
84-
log("Error: " + e.getMessage());
85-
e.printStackTrace();
78+
logger.error("Error: {}", e.getMessage(), e);
8679
}
8780
});
8881
}
82+
8983
@Override
9084
public void onFailure(RestException e) {
91-
log("Error: " + e.getMessage());
92-
e.printStackTrace();
85+
logger.error("Error: {}", e.getMessage(), e);
86+
threadPool.shutdown();
87+
}
88+
89+
@Override
90+
public void onConnectionEvent(AriConnectionEvent event) {
91+
logger.debug(event.name());
9392
}
9493
});
9594
// usually we would not terminate and run indefinitely
9695
// waiting for 5 minutes before shutting down...
97-
threadPool.awaitTermination(2, TimeUnit.MINUTES);
96+
threadPool.awaitTermination(5, TimeUnit.MINUTES);
9897
}
9998

10099
private void handleStart(StasisStart start) throws RestException {
101-
log("Stasis Start Channel: " + start.getChannel().getId());
100+
logger.info("Stasis Start Channel: {}", start.getChannel().getId());
102101
ARI.sleep(300); // a slight pause before we start the playback ...
103102
ari.channels().play(start.getChannel().getId(), "sound:weasels-eaten-phonesys").execute();
104103
}
105104

106105
private void handlePlaybackFinished(PlaybackFinished playback) throws RestException {
107-
log("PlaybackFinished - " + playback.getPlayback().getTarget_uri());
106+
logger.info("PlaybackFinished - {}", playback.getPlayback().getTarget_uri());
108107
if (playback.getPlayback().getTarget_uri().indexOf("channel:") == 0) {
109108
String chanId = playback.getPlayback().getTarget_uri().split(":")[1];
110-
log("Hangup Channel: " + chanId);
109+
logger.info("Hangup Channel: {}", chanId);
111110
ARI.sleep(300); // a slight pause before we hangup ...
112111
ari.channels().hangup(chanId).execute();
113112
} else {
114-
log("Error: Cannot handle URI - " + playback.getPlayback().getTarget_uri());
113+
logger.error("Cannot handle URI - {}", playback.getPlayback().getTarget_uri());
115114
}
116115
}
117116

src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public void testResponse() {
1515
NettyHttpClientHandler h = new NettyHttpClientHandler();
1616
EmbeddedChannel channel = new EmbeddedChannel();
1717
channel.pipeline().addLast("http-codec", new HttpClientCodec());
18-
channel.pipeline().addLast("aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST_KB * 1024));
18+
channel.pipeline().addLast("http-aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST));
1919
channel.pipeline().addLast("http-handler", h);
2020
channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("test", ARIEncoder.ENCODING)));
2121
assertEquals("test", h.getResponseText());

src/test/java/ch/loway/oss/ari4java/tools/http/NettyHttpClientTest.java

Lines changed: 63 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package ch.loway.oss.ari4java.tools.http;
22

33
import ch.loway.oss.ari4java.generated.actions.requests.AsteriskPingGetRequest;
4-
import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.ApplicationsGetRequest_impl_ari_6_0_0;
5-
import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.AsteriskPingGetRequest_impl_ari_6_0_0;
4+
import ch.loway.oss.ari4java.generated.ari_6_0_0.actions.requests.*;
65
import ch.loway.oss.ari4java.generated.models.AsteriskPing;
76
import ch.loway.oss.ari4java.tools.ARIEncoder;
87
import ch.loway.oss.ari4java.tools.AriCallback;
@@ -21,7 +20,9 @@
2120

2221
import java.net.URISyntaxException;
2322
import java.util.ArrayList;
23+
import java.util.HashMap;
2424
import java.util.List;
25+
import java.util.Map;
2526

2627
import static org.junit.Assert.*;
2728
import static org.mockito.Mockito.*;
@@ -89,7 +90,7 @@ public void testHttpActionSync() throws Exception {
8990
private EmbeddedChannel createTestChannel() {
9091
EmbeddedChannel channel = new EmbeddedChannel();
9192
channel.pipeline().addLast("http-codec", new HttpClientCodec());
92-
channel.pipeline().addLast("aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST_KB * 1024));
93+
channel.pipeline().addLast("http-aggregator", new HttpObjectAggregator(NettyHttpClient.MAX_HTTP_REQUEST));
9394
channel.pipeline().addLast("http-handler", new NettyHttpClientHandler());
9495
cf = channel.closeFuture();
9596
((DefaultChannelPromise) cf).setSuccess(null);
@@ -98,7 +99,9 @@ private EmbeddedChannel createTestChannel() {
9899

99100
private AsteriskPingGetRequest pingSetup(EmbeddedChannel channel) {
100101
channel.writeInbound(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK,
101-
Unpooled.copiedBuffer("{\"ping\":\"pong\",\"timestamp\":\"2020-01-01T00:00:00.000+0000\",\"asterisk_id\":\"test_asterisk\"}", ARIEncoder.ENCODING)));
102+
Unpooled.copiedBuffer(
103+
"{\"ping\":\"pong\",\"timestamp\":\"2020-01-01T00:00:00.000+0000\",\"asterisk_id\":\"test_asterisk\"}",
104+
ARIEncoder.ENCODING)));
102105
AsteriskPingGetRequest_impl_ari_6_0_0 req = new AsteriskPingGetRequest_impl_ari_6_0_0();
103106
req.setHttpClient(client);
104107
return req;
@@ -115,7 +118,6 @@ private void pingValidate(EmbeddedChannel channel, AsteriskPing res) {
115118

116119
@Test
117120
public void testHttpActionSyncPing() throws Exception {
118-
System.out.println("TEST: testHttpActionSyncPing");
119121
EmbeddedChannel channel = createTestChannel();
120122
AsteriskPingGetRequest req = pingSetup(channel);
121123
AsteriskPing res = req.execute();
@@ -172,4 +174,60 @@ public void testHttpActionException() {
172174
assertTrue("Expecting an exception", exception);
173175
}
174176

177+
@Test
178+
public void testBodyFieldSerialisation() throws RestException {
179+
EmbeddedChannel channel = createTestChannel();
180+
channel.writeInbound(new DefaultFullHttpResponse(
181+
HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("[]", ARIEncoder.ENCODING)));
182+
AsteriskUpdateObjectPutRequest_impl_ari_6_0_0 req = new AsteriskUpdateObjectPutRequest_impl_ari_6_0_0(
183+
"cc", "ot", "id");
184+
req.setHttpClient(client);
185+
req.addFields("key1", "val1").addFields("key2", "val2").execute();
186+
validateBody(channel, "fields");
187+
}
188+
189+
@Test
190+
public void testBodyVariableSerialisation() throws RestException {
191+
EmbeddedChannel channel = createTestChannel();
192+
channel.writeInbound(new DefaultFullHttpResponse(
193+
HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING)));
194+
195+
EndpointsSendMessagePutRequest_impl_ari_6_0_0 req = new EndpointsSendMessagePutRequest_impl_ari_6_0_0("to", "from");
196+
req.setHttpClient(client);
197+
req.addVariables("key1", "val1").addVariables("key2", "val2").execute();
198+
validateBody(channel, "variables");
199+
}
200+
201+
@Test
202+
public void testBodyObjectSerialisation() throws RestException {
203+
EmbeddedChannel channel = createTestChannel();
204+
channel.writeInbound(new DefaultFullHttpResponse(
205+
HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.copiedBuffer("{}", ARIEncoder.ENCODING)));
206+
207+
Map<String, String> map = new HashMap<>();
208+
map.put("key1", "val1");
209+
map.put("key2", "val2");
210+
ApplicationsFilterPutRequest_impl_ari_6_0_0 req = new ApplicationsFilterPutRequest_impl_ari_6_0_0("app");
211+
req.setHttpClient(client);
212+
req.setFilter(map).execute();
213+
validateBody(channel, "filter");
214+
}
215+
216+
private void validateBody(EmbeddedChannel channel, String field) {
217+
String expected = "{\"" + field + "\":{\"key1\":\"val1\",\"key2\":\"val2\"}}";
218+
if ("fields".equals(field)) {
219+
expected = "{\"fields\":[{\"attribute\":\"key1\",\"value\":\"val1\"},{\"attribute\":\"key2\",\"value\":\"val2\"}]}";
220+
}
221+
StringBuffer buffer = new StringBuffer();
222+
ByteBuf data = channel.readOutbound();
223+
while (data != null) {
224+
if (data.readableBytes() > 0) {
225+
buffer.append(data.toString(ARIEncoder.ENCODING));
226+
}
227+
data = channel.readOutbound();
228+
}
229+
String[] lines = buffer.toString().split("\n");
230+
assertEquals(expected, lines[lines.length - 1].trim());
231+
}
232+
175233
}

0 commit comments

Comments
 (0)