From cf597ae09d6777536fe73fcdde6eeba0875110ed Mon Sep 17 00:00:00 2001 From: Erik Little Date: Sun, 22 Oct 2017 10:26:16 -0400 Subject: [PATCH] Don't use NSDictionary in definitions --- Source/SocketIO/Engine/SocketEngine.swift | 2 +- Source/SocketIO/Engine/SocketEngineSpec.swift | 2 +- Source/SocketIO/Manager/SocketManager.swift | 4 ++-- Source/SocketIO/Util/SocketExtensions.swift | 4 ++-- Tests/TestSocketIO/SocketSideEffectTest.swift | 2 +- Tests/TestSocketIOObjc/ManagerObjectiveCTest.m | 7 +++++++ 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Source/SocketIO/Engine/SocketEngine.swift b/Source/SocketIO/Engine/SocketEngine.swift index 22ba793..bed0204 100644 --- a/Source/SocketIO/Engine/SocketEngine.swift +++ b/Source/SocketIO/Engine/SocketEngine.swift @@ -163,7 +163,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll /// - parameter client: The client for this engine. /// - parameter url: The url for this engine. /// - parameter options: The options for this engine. - public convenience init(client: SocketEngineClient, url: URL, options: NSDictionary?) { + public convenience init(client: SocketEngineClient, url: URL, options: [String: Any]?) { self.init(client: client, url: url, config: options?.toSocketConfiguration() ?? []) } diff --git a/Source/SocketIO/Engine/SocketEngineSpec.swift b/Source/SocketIO/Engine/SocketEngineSpec.swift index c14c3f5..76db405 100644 --- a/Source/SocketIO/Engine/SocketEngineSpec.swift +++ b/Source/SocketIO/Engine/SocketEngineSpec.swift @@ -90,7 +90,7 @@ import Starscream /// - parameter client: The client for this engine. /// - parameter url: The url for this engine. /// - parameter options: The options for this engine. - init(client: SocketEngineClient, url: URL, options: NSDictionary?) + init(client: SocketEngineClient, url: URL, options: [String: Any]?) /// Starts the connection to the server. func connect() diff --git a/Source/SocketIO/Manager/SocketManager.swift b/Source/SocketIO/Manager/SocketManager.swift index 8009001..f07dbb3 100644 --- a/Source/SocketIO/Manager/SocketManager.swift +++ b/Source/SocketIO/Manager/SocketManager.swift @@ -150,8 +150,8 @@ open class SocketManager : NSObject, SocketManagerSpec, SocketParsable, SocketDa /// - parameter socketURL: The url of the socket.io server. /// - parameter config: The config for this socket. @objc - public convenience init(socketURL: NSURL, config: NSDictionary?) { - self.init(socketURL: socketURL as URL, config: config?.toSocketConfiguration() ?? []) + public convenience init(socketURL: URL, config: [String: Any]?) { + self.init(socketURL: socketURL, config: config?.toSocketConfiguration() ?? []) } deinit { diff --git a/Source/SocketIO/Util/SocketExtensions.swift b/Source/SocketIO/Util/SocketExtensions.swift index d05555e..eaee76b 100644 --- a/Source/SocketIO/Util/SocketExtensions.swift +++ b/Source/SocketIO/Util/SocketExtensions.swift @@ -42,7 +42,7 @@ extension CharacterSet { } } -extension NSDictionary { +extension Dictionary where Key == String, Value == Any { private static func keyValueToSocketIOClientOption(key: String, value: Any) -> SocketIOClientOption? { switch (key, value) { case let ("connectParams", params as [String: Any]): @@ -90,7 +90,7 @@ extension NSDictionary { var options = [] as SocketIOClientConfiguration for (rawKey, value) in self { - if let key = rawKey as? String, let opt = NSDictionary.keyValueToSocketIOClientOption(key: key, value: value) { + if let opt = Dictionary.keyValueToSocketIOClientOption(key: rawKey, value: value) { options.insert(opt) } } diff --git a/Tests/TestSocketIO/SocketSideEffectTest.swift b/Tests/TestSocketIO/SocketSideEffectTest.swift index 75a9a56..01cdcdd 100644 --- a/Tests/TestSocketIO/SocketSideEffectTest.swift +++ b/Tests/TestSocketIO/SocketSideEffectTest.swift @@ -463,7 +463,7 @@ class TestEngine : SocketEngineSpec { private(set) var websocket = false private(set) var ws: WebSocket? = nil - required init(client: SocketEngineClient, url: URL, options: NSDictionary?) { + required init(client: SocketEngineClient, url: URL, options: [String: Any]?) { self.client = client } diff --git a/Tests/TestSocketIOObjc/ManagerObjectiveCTest.m b/Tests/TestSocketIOObjc/ManagerObjectiveCTest.m index 3994023..9de32fc 100644 --- a/Tests/TestSocketIOObjc/ManagerObjectiveCTest.m +++ b/Tests/TestSocketIOObjc/ManagerObjectiveCTest.m @@ -11,6 +11,13 @@ @implementation ManagerObjectiveCTest +- (void)testSettingConfig { + NSURL* url = [[NSURL alloc] initWithString:@"http://localhost"]; + self.manager = [[TestManager alloc] initWithSocketURL:url config:@{@"forceNew": @YES}]; + + XCTAssertTrue(self.manager.forceNew); +} + - (void)testManagerProperties { XCTAssertNotNil(self.manager.defaultSocket); XCTAssertNil(self.manager.engine);