Skip to content

Commit

Permalink
RTL6f (#426)
Browse files Browse the repository at this point in the history
  • Loading branch information
ricardopereira authored and tcard committed May 2, 2016
1 parent bc22dae commit 4720ac4
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
5 changes: 5 additions & 0 deletions Source/ARTJsonEncoder.m
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,11 @@ - (NSDictionary *)messageToDictionary:(ARTMessage *)message {
if (message.name) {
[output setObject:message.name forKey:@"name"];
}

if (message.connectionId) {
[output setObject:message.connectionId forKey:@"connectionId"];
}

[self.logger verbose:@"ARTJsonEncoder: messageToDictionary %@", output];
return output;
}
Expand Down
4 changes: 4 additions & 0 deletions Source/ARTRealtimeChannel.m
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,10 @@ - (void)sendMessage:(ARTProtocolMessage *)pm callback:(void (^)(ARTStatus *))cb
cb([ARTStatus state:ARTStateError info:reason]);
}];

for (ARTMessage *msg in pm.messages) {
msg.connectionId = _realtime.connection.id;
}

[self.realtime send:pm callback:^(ARTStatus *status) {
[self.realtime.connection off:listener];
if (cb && !gotFailure) cb(status);
Expand Down
24 changes: 21 additions & 3 deletions Spec/RealtimeClientChannel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1139,6 +1139,21 @@ class RealtimeClientChannel: QuickSpec {

}

// RTL6f
it("Message#connectionId should match the current Connection#id for all published messages") {
let client = ARTRealtime(options: AblyTests.commonAppSetup())
defer { client.close() }
let channel = client.channels.get("test")

waitUntil(timeout: testTimeout) { done in
channel.subscribe() { message in
expect(message.connectionId).to(equal(client.connection.id))
done()
}
channel.publish(nil, data: "message")
}
}

// RTL6i
context("expect either") {

Expand Down Expand Up @@ -1192,7 +1207,8 @@ class RealtimeClientChannel: QuickSpec {
defer { client.close() }
let channel = client.channels.get("test")

let expectedObject = ["data": "message"]
expect(client.connection.state).toEventually(equal(ARTRealtimeConnectionState.Connected), timeout: testTimeout)
let expectedObject = ["data": "message", "connectionId": client.connection.id!]

var resultMessage: ARTMessage?
channel.subscribe { message in
Expand Down Expand Up @@ -1228,7 +1244,8 @@ class RealtimeClientChannel: QuickSpec {
defer { client.close() }
let channel = client.channels.get("test")

let expectedObject = ["name": "click"]
expect(client.connection.state).toEventually(equal(ARTRealtimeConnectionState.Connected), timeout: testTimeout)
let expectedObject = ["name": "click", "connectionId": client.connection.id!]

var resultMessage: ARTMessage?
channel.subscribe(expectedObject["name"]!) { message in
Expand Down Expand Up @@ -1264,7 +1281,8 @@ class RealtimeClientChannel: QuickSpec {
defer { client.close() }
let channel = client.channels.get("test")

let expectedObject = ["name":"click", "data":"message"]
expect(client.connection.state).toEventually(equal(ARTRealtimeConnectionState.Connected), timeout: testTimeout)
let expectedObject = ["name": "click", "data": "message", "connectionId": client.connection.id!]

waitUntil(timeout: testTimeout) { done in
channel.publish(expectedObject["name"], data: expectedObject["data"]) { errorInfo in
Expand Down

0 comments on commit 4720ac4

Please sign in to comment.