add some more tests

This commit is contained in:
Erik 2015-10-07 12:55:43 -04:00
parent 84499d4c21
commit 90c7c9aadc
2 changed files with 69 additions and 4 deletions

View File

@ -23,16 +23,75 @@ class SocketBasicEmitTest: XCTestCase {
} }
func testEmpyEmit() { func testEmpyEmit() {
let engine = SocketTestEngine(client: socket, expectedSendString: "2[\"test\"]", expectedNumberOfBinary: 0) let engine = SocketTestEngine(client: socket,
expectedSendString: "2[\"test\"]",
expectedNumberOfBinary: 0,
expectedBinary: nil)
socket.setTestEngine(engine) socket.setTestEngine(engine)
socket.emitTest("test") socket.emitTest("test")
XCTAssert(engine.socketDidCorrectlyCreatePacket()) XCTAssert(engine.socketDidCorrectlyCreatePacket())
} }
func testNullEmit() {
let engine = SocketTestEngine(client: socket,
expectedSendString: "2[\"test\",null]",
expectedNumberOfBinary: 0,
expectedBinary: nil)
socket.setTestEngine(engine)
socket.emitTest("test", NSNull())
XCTAssert(engine.socketDidCorrectlyCreatePacket())
}
func testStringEmit() { func testStringEmit() {
let engine = SocketTestEngine(client: socket, expectedSendString: "2[\"test\",\"foo bar\"]", expectedNumberOfBinary: 0) let engine = SocketTestEngine(client: socket,
expectedSendString: "2[\"test\",\"foo bar\"]",
expectedNumberOfBinary: 0,
expectedBinary: nil)
socket.setTestEngine(engine) socket.setTestEngine(engine)
socket.emitTest("test", "foo bar") socket.emitTest("test", "foo bar")
XCTAssert(engine.socketDidCorrectlyCreatePacket()) XCTAssert(engine.socketDidCorrectlyCreatePacket())
} }
func testJSONEmit() {
let engine = SocketTestEngine(client: socket,
expectedSendString: "2[\"test\",{\"test\":\"hello\",\"hello\":1,\"foobar\":true,\"null\":null}]",
expectedNumberOfBinary: 0,
expectedBinary: nil)
socket.setTestEngine(engine)
socket.emitTest("test", ["foobar": true, "hello": 1, "test": "hello", "null": NSNull()])
XCTAssert(engine.socketDidCorrectlyCreatePacket())
}
func testArrayEmit() {
let engine = SocketTestEngine(client: socket,
expectedSendString: "2[\"test\",[\"hello\",1,{\"test\":\"test\"}]]",
expectedNumberOfBinary: 0,
expectedBinary: nil)
socket.setTestEngine(engine)
socket.emitTest("test", ["hello", 1, ["test": "test"]])
XCTAssert(engine.socketDidCorrectlyCreatePacket())
}
func testBinaryEmit() {
let data = "test".dataUsingEncoding(NSUTF8StringEncoding)!
let engine = SocketTestEngine(client: socket,
expectedSendString: "51-[\"test\",{\"num\":0,\"_placeholder\":true}]",
expectedNumberOfBinary: 1,
expectedBinary: [data])
socket.setTestEngine(engine)
socket.emitTest("test", data)
XCTAssert(engine.socketDidCorrectlyCreatePacket())
}
func testMultipleBinaryEmit() {
let data = "test".dataUsingEncoding(NSUTF8StringEncoding)!
let data2 = "test2".dataUsingEncoding(NSUTF8StringEncoding)!
let engine = SocketTestEngine(client: socket,
expectedSendString: "52-[\"test\",{\"data2\":{\"num\":0,\"_placeholder\":true},\"data1\":{\"num\":1,\"_placeholder\":true}}]",
expectedNumberOfBinary: 2,
expectedBinary: [data2, data])
socket.setTestEngine(engine)
socket.emitTest("test", ["data1": data, "data2": data2])
XCTAssert(engine.socketDidCorrectlyCreatePacket())
}
} }

View File

@ -31,6 +31,8 @@ import Foundation
class SocketTestEngine: NSObject, SocketEngineSpec { class SocketTestEngine: NSObject, SocketEngineSpec {
private let expectedNumberOfBinary: Int private let expectedNumberOfBinary: Int
private let expectedSendString: String private let expectedSendString: String
private var expectedBinary: [NSData]?
private var binary: [NSData]?
private var sendString: String! private var sendString: String!
private var numOfBinary: Int! private var numOfBinary: Int!
@ -43,10 +45,11 @@ class SocketTestEngine: NSObject, SocketEngineSpec {
weak var client: SocketEngineClient? weak var client: SocketEngineClient?
init(client: SocketIOClient, expectedSendString: String, expectedNumberOfBinary: Int) { init(client: SocketIOClient, expectedSendString: String, expectedNumberOfBinary: Int, expectedBinary: [NSData]?) {
self.client = client self.client = client
self.expectedSendString = expectedSendString self.expectedSendString = expectedSendString
self.expectedNumberOfBinary = expectedNumberOfBinary self.expectedNumberOfBinary = expectedNumberOfBinary
self.expectedBinary = expectedBinary
} }
required init(client: SocketEngineClient, sessionDelegate: NSURLSessionDelegate?) { required init(client: SocketEngineClient, sessionDelegate: NSURLSessionDelegate?) {
@ -65,10 +68,13 @@ class SocketTestEngine: NSObject, SocketEngineSpec {
func send(msg: String, withData datas: [NSData]?) { func send(msg: String, withData datas: [NSData]?) {
sendString = msg sendString = msg
numOfBinary = datas?.count ?? 0 numOfBinary = datas?.count ?? 0
binary = datas
} }
func socketDidCorrectlyCreatePacket() -> Bool { func socketDidCorrectlyCreatePacket() -> Bool {
return expectedNumberOfBinary == numOfBinary && sendString == expectedSendString return expectedNumberOfBinary == numOfBinary
&& sendString == expectedSendString
&& expectedBinary ?? [] == binary ?? []
} }
func write(msg: String, withType type: SocketEnginePacketType, withData data: [NSData]?) {} func write(msg: String, withType type: SocketEnginePacketType, withData data: [NSData]?) {}