@@ -19,5 +19,5 @@ void expectSinkSendsEncodedJson(SpyObject socket, MessageBusSink sink,
|
||||
|
||||
void expectMessageEquality(String message, Map expectedData, String channel) {
|
||||
expect(JSON.decode(message))
|
||||
.toEqual({'channel': channel, 'message': expectedData});
|
||||
.toEqual([{'channel': channel, 'message': expectedData}]);
|
||||
}
|
||||
|
||||
+8
-4
@@ -38,6 +38,7 @@ main() {
|
||||
inject([AsyncTestCompleter], (async) {
|
||||
const NUM_CLIENTS = 5;
|
||||
var sink = new MultiClientServerMessageBusSink();
|
||||
sink.initChannel(CHANNEL, false);
|
||||
int numMessagesSent = 0;
|
||||
// initialize all the sockets
|
||||
var sockets = new List<WebSocketWrapper>(NUM_CLIENTS);
|
||||
@@ -78,7 +79,7 @@ main() {
|
||||
for (var i = 0; i < numMessages; i++) {
|
||||
var message = {'value': random.nextInt(MAX)};
|
||||
messageHistory
|
||||
.add(JSON.encode({'channel': CHANNEL, 'message': message}));
|
||||
.add(JSON.encode([{'channel': CHANNEL, 'message': message}]));
|
||||
}
|
||||
// copy the message history to ensure the test fails if the wrapper modifies the list
|
||||
return new List.from(messageHistory);
|
||||
@@ -136,7 +137,7 @@ main() {
|
||||
});
|
||||
|
||||
void sendMessage(StreamController controller, dynamic message) {
|
||||
controller.add(JSON.encode(message));
|
||||
controller.add(JSON.encode([message]));
|
||||
}
|
||||
|
||||
void testForwardingMessages(bool primary, bool events, Function done) {
|
||||
@@ -146,10 +147,11 @@ main() {
|
||||
new WebSocketWrapper(messageHistory, resultMarkers, result.socket);
|
||||
socket.setPrimary(primary);
|
||||
|
||||
var source = new MultiClientServerMessageBusSource(null);
|
||||
var source = new MultiClientServerMessageBusSource();
|
||||
source.addConnection(socket);
|
||||
|
||||
var channel = events ? EVENT_CHANNEL : CHANNEL;
|
||||
source.initChannel(channel, false);
|
||||
source.from(channel).listen((message) {
|
||||
expect(message).toEqual(MESSAGE);
|
||||
done();
|
||||
@@ -187,7 +189,9 @@ main() {
|
||||
socket.setPrimary(true);
|
||||
|
||||
var source =
|
||||
new MultiClientServerMessageBusSource(() => async.done());
|
||||
new MultiClientServerMessageBusSource();
|
||||
source.onResult.listen((result) => async.done());
|
||||
source.initChannel(CHANNEL, false);
|
||||
source.addConnection(socket);
|
||||
|
||||
var message = {
|
||||
|
||||
+8
-4
@@ -28,6 +28,8 @@ main() {
|
||||
inject([AsyncTestCompleter], (async) {
|
||||
var socket = new SpyWebSocket();
|
||||
var sink = new SingleClientServerMessageBusSink();
|
||||
sink.initChannel(CHANNEL, false);
|
||||
|
||||
sink.setConnection(socket);
|
||||
expectSinkSendsEncodedJson(socket, sink, "add", async);
|
||||
}));
|
||||
@@ -36,6 +38,7 @@ main() {
|
||||
"should buffer messages before connect",
|
||||
inject([AsyncTestCompleter], (async) {
|
||||
var sink = new SingleClientServerMessageBusSink();
|
||||
sink.initChannel(CHANNEL, false);
|
||||
sink.to(CHANNEL).add(MESSAGE);
|
||||
|
||||
var socket = new SpyWebSocket();
|
||||
@@ -51,6 +54,8 @@ main() {
|
||||
inject([AsyncTestCompleter], (async) {
|
||||
var SECOND_MESSAGE = const {'test': 12, 'second': 'hi'};
|
||||
var sink = new SingleClientServerMessageBusSink();
|
||||
sink.initChannel(CHANNEL, false);
|
||||
|
||||
sink.to(CHANNEL).add(MESSAGE);
|
||||
|
||||
var socket = new SpyWebSocket();
|
||||
@@ -78,20 +83,19 @@ main() {
|
||||
it(
|
||||
"should decode JSON messages and emit them",
|
||||
inject([AsyncTestCompleter], (async) {
|
||||
var socket = new SpyWebSocket();
|
||||
StreamController<String> controller =
|
||||
new StreamController.broadcast();
|
||||
socket.spy("asBroadcastStream").andCallFake(() => controller.stream);
|
||||
|
||||
var source = new SingleClientServerMessageBusSource();
|
||||
source.setConnectionFromWebSocket(socket);
|
||||
source.initChannel(CHANNEL, false);
|
||||
source.attachTo(controller.stream);
|
||||
source.from(CHANNEL).listen((message) {
|
||||
expect(message).toEqual(MESSAGE);
|
||||
async.done();
|
||||
});
|
||||
|
||||
controller
|
||||
.add(JSON.encode({'channel': CHANNEL, 'message': MESSAGE}));
|
||||
.add(JSON.encode([{'channel': CHANNEL, 'message': MESSAGE}]));
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ main() {
|
||||
inject([AsyncTestCompleter], (async) {
|
||||
var socket = new SpyWebSocket();
|
||||
var sink = new WebSocketMessageBusSink(socket);
|
||||
sink.initChannel(CHANNEL, false);
|
||||
expectSinkSendsEncodedJson(socket, sink, "send", async);
|
||||
}));
|
||||
});
|
||||
@@ -41,6 +42,7 @@ main() {
|
||||
new StreamController.broadcast();
|
||||
socket.spy("get:onMessage").andCallFake(() => controller.stream);
|
||||
var source = new WebSocketMessageBusSource(socket);
|
||||
source.initChannel(CHANNEL, false);
|
||||
|
||||
source.from(CHANNEL).listen((message) {
|
||||
expect(message).toEqual(MESSAGE);
|
||||
@@ -49,7 +51,7 @@ main() {
|
||||
|
||||
var event = new SpyMessageEvent();
|
||||
event.spy("get:data").andCallFake(
|
||||
() => JSON.encode({'channel': CHANNEL, 'message': MESSAGE}));
|
||||
() => JSON.encode([{'channel': CHANNEL, 'message': MESSAGE}]));
|
||||
controller.add(event);
|
||||
}));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user