mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Add unit tests around proto wrappers.
This commit is contained in:
parent
01268f0160
commit
90002459c4
2 changed files with 60 additions and 3 deletions
|
@ -65,4 +65,53 @@ class SSKProtoEnvelopeTest: XCTestCase {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func testParse_buildVsRequired() {
|
||||
let builder = SSKProtoEnvelope.SSKProtoEnvelopeBuilder()
|
||||
|
||||
XCTAssertThrowsError(try builder.build()) { (error) -> Void in
|
||||
switch error {
|
||||
case SSKProtoError.invalidProtobuf:
|
||||
break
|
||||
default:
|
||||
XCTFail("unexpected error: \(error)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func testParse_roundtrip() {
|
||||
let builder = SSKProtoEnvelope.SSKProtoEnvelopeBuilder()
|
||||
|
||||
let phonyContent = "phony data".data(using: .utf8)!
|
||||
|
||||
builder.setType(SSKProtoEnvelope.SSKProtoEnvelopeType.prekeyBundle)
|
||||
builder.setTimestamp(123)
|
||||
builder.setSource("+13213214321")
|
||||
builder.setSourceDevice(1)
|
||||
builder.setContent(phonyContent)
|
||||
|
||||
var envelopeData: Data
|
||||
do {
|
||||
envelopeData = try builder.buildSerializedData()
|
||||
} catch {
|
||||
XCTFail("Couldn't serialize data.")
|
||||
return
|
||||
}
|
||||
|
||||
var envelope: SSKProtoEnvelope
|
||||
do {
|
||||
envelope = try SSKProtoEnvelope.parseData(envelopeData)
|
||||
} catch {
|
||||
XCTFail("Couldn't serialize data.")
|
||||
return
|
||||
}
|
||||
|
||||
XCTAssertEqual(envelope.type, SSKProtoEnvelope.SSKProtoEnvelopeType.prekeyBundle)
|
||||
XCTAssertEqual(envelope.timestamp, 123)
|
||||
XCTAssertEqual(envelope.source, "+13213214321")
|
||||
XCTAssertEqual(envelope.sourceDevice, 1)
|
||||
XCTAssertTrue(envelope.hasContent)
|
||||
XCTAssertEqual(envelope.content, phonyContent)
|
||||
XCTAssertFalse(envelope.hasLegacyMessage)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,8 +115,16 @@ class PeerConnectionClientTest: XCTestCase {
|
|||
func testDataChannelMessage() {
|
||||
XCTAssertEqual(0, clientDelegate.dataChannelMessages.count)
|
||||
|
||||
let hangup = DataChannelMessage.forHangup(callId: 123)
|
||||
let hangupBuffer = RTCDataBuffer(data: hangup.asData(), isBinary: false)
|
||||
var hangupData: Data
|
||||
do {
|
||||
let hangupBuilder = WebRTCProtoHangup.WebRTCProtoHangupBuilder()
|
||||
hangupBuilder.setId(123)
|
||||
hangupData = try hangupBuilder.buildSerializedData()
|
||||
} catch {
|
||||
XCTFail("Couldn't build proto.")
|
||||
return
|
||||
}
|
||||
let hangupBuffer = RTCDataBuffer(data: hangupData, isBinary: false)
|
||||
client.dataChannel(dataChannel, didReceiveMessageWith: hangupBuffer)
|
||||
|
||||
waitForPeerConnectionClient()
|
||||
|
@ -124,7 +132,7 @@ class PeerConnectionClientTest: XCTestCase {
|
|||
XCTAssertEqual(1, clientDelegate.dataChannelMessages.count)
|
||||
|
||||
let dataChannelMessageProto = clientDelegate.dataChannelMessages[0]
|
||||
XCTAssert(dataChannelMessageProto.hasHangup())
|
||||
XCTAssert(dataChannelMessageProto.hasHangup)
|
||||
|
||||
let hangupProto = dataChannelMessageProto.hangup!
|
||||
XCTAssertEqual(123, hangupProto.id)
|
||||
|
|
Loading…
Reference in a new issue