Skip to content

Commit 950c0ac

Browse files
committed
Send actual framework version in connection.start-ok
[#118965455]
1 parent 8e13e67 commit 950c0ac

File tree

4 files changed

+36
-4
lines changed

4 files changed

+36
-4
lines changed

RMQClient/RMQHandshaker.m

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,15 @@ - (RMQConnectionStartOk *)startOk {
5050
@"basic.nack" : yes,
5151
@"connection.blocked" : yes,
5252
@"authentication_failure_close" : yes}];
53+
54+
NSBundle *bundle = [NSBundle bundleWithIdentifier:@"io.pivotal.RMQClient"];
55+
NSString *version = bundle.infoDictionary[@"CFBundleShortVersionString"];
56+
5357
RMQTable *clientProperties = [[RMQTable alloc] init:
5458
@{@"capabilities" : capabilities,
5559
@"product" : [[RMQLongstr alloc] init:@"RMQClient"],
5660
@"platform" : [[RMQLongstr alloc] init:@"iOS"],
57-
@"version" : [[RMQLongstr alloc] init:RMQClientVersion],
61+
@"version" : [[RMQLongstr alloc] init:version],
5862
@"information" : [[RMQLongstr alloc] init:@"https://github.com/rabbitmq/rabbitmq-objc-client"]}];
5963

6064
return [[RMQConnectionStartOk alloc] initWithClientProperties:clientProperties

RMQClientTests/MethodFixtures.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class MethodFixtures {
3232
)
3333
}
3434

35-
static func connectionStartOk(user user: String = "foo", password: String = "bar") -> RMQConnectionStartOk {
35+
static func connectionStartOk(user user: String = "foo", password: String = "bar", version: String = "0.0.1") -> RMQConnectionStartOk {
3636
let capabilitiesDict: [String: RMQBoolean] = [
3737
"publisher_confirms" : rmqTrue,
3838
"consumer_cancel_notify" : rmqTrue,
@@ -45,8 +45,8 @@ class MethodFixtures {
4545
"capabilities" : RMQTable(capabilitiesDict),
4646
"product" : RMQLongstr("RMQClient"),
4747
"platform" : RMQLongstr("iOS"),
48-
"version" : RMQLongstr("0.0.1"),
49-
"information" : RMQLongstr("https://github.com/camelpunch/RMQClient")
48+
"version" : RMQLongstr(version),
49+
"information" : RMQLongstr("https://github.com/rabbitmq/rabbitmq-objc-client")
5050
]
5151
return RMQConnectionStartOk(
5252
clientProperties: RMQTable(clientPropertiesDict),

RMQClientTests/RMQConnectionTest.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,29 @@ class RMQConnectionTest: XCTestCase {
105105
XCTAssert(heartbeatSender.signalActivityReceived)
106106
}
107107

108+
func testSendsVersionNumberWithStartOk() {
109+
let transport = ControlledInteractionTransport()
110+
let q = FakeSerialQueue()
111+
let conn = RMQConnection(transport: transport,
112+
config: TestHelper.connectionConfig(vhost: ""),
113+
handshakeTimeout: 10,
114+
channelAllocator: ChannelSpyAllocator(),
115+
frameHandler: FrameHandlerSpy(),
116+
delegate: ConnectionDelegateSpy(),
117+
commandQueue: q,
118+
waiterFactory: FakeWaiterFactory(),
119+
heartbeatSender: HeartbeatSenderSpy())
120+
conn.start()
121+
try! q.step()
122+
123+
transport.serverSendsPayload(MethodFixtures.connectionStart(), channelNumber: 0)
124+
125+
let parser = RMQParser(data: transport.outboundData.last!)
126+
let outgoingStartOk: RMQConnectionStartOk = RMQFrame(parser: parser).payload as! RMQConnectionStartOk
127+
128+
XCTAssert(outgoingStartOk.description().rangeOfString(TestHelper.frameworkVersion()) != nil)
129+
}
130+
108131
func testSendsConfiguredVHostWithConnectionOpen() {
109132
let transport = ControlledInteractionTransport()
110133
let q = FakeSerialQueue()

RMQClientTests/TestHelper.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,9 @@ class TestHelper {
9292
return (transport, q, conn, delegate)
9393
}
9494

95+
static func frameworkVersion() -> String {
96+
let bundle = NSBundle(identifier: "io.pivotal.RMQClient")!
97+
return bundle.infoDictionary!["CFBundleShortVersionString"] as! String
98+
}
99+
95100
}

0 commit comments

Comments
 (0)