142 lines
4.2 KiB
Objective-C
142 lines
4.2 KiB
Objective-C
//
|
|
// Created by Erik Little on 10/21/17.
|
|
//
|
|
|
|
#import "ManagerObjectiveCTest.h"
|
|
|
|
@import Dispatch;
|
|
@import Foundation;
|
|
@import XCTest;
|
|
@import SocketIO;
|
|
|
|
@implementation ManagerObjectiveCTest
|
|
|
|
- (void)testSettingConfig {
|
|
NSURL* url = [[NSURL alloc] initWithString:@"http://localhost"];
|
|
NSDictionary* headers = @{@"My Header": @"Some Value"};
|
|
|
|
self.manager = [[TestManager alloc] initWithSocketURL:url config:@{
|
|
@"forceNew": @YES,
|
|
@"extraHeaders": headers
|
|
}];
|
|
|
|
[self.manager connect];
|
|
|
|
XCTAssertTrue(self.manager.forceNew);
|
|
XCTAssertTrue([self.manager.engine.extraHeaders isEqualToDictionary:headers]);
|
|
|
|
}
|
|
|
|
- (void)testManagerProperties {
|
|
XCTAssertNotNil(self.manager.defaultSocket);
|
|
XCTAssertNil(self.manager.engine);
|
|
XCTAssertFalse(self.manager.forceNew);
|
|
XCTAssertEqual(self.manager.handleQueue, dispatch_get_main_queue());
|
|
XCTAssertTrue(self.manager.reconnects);
|
|
XCTAssertEqual(self.manager.reconnectWait, 10);
|
|
XCTAssertEqual(self.manager.reconnectWaitMax, 30);
|
|
XCTAssertEqual(self.manager.randomizationFactor, 0.5);
|
|
XCTAssertEqual(self.manager.status, SocketIOStatusNotConnected);
|
|
}
|
|
|
|
- (void)testConnectSocketSyntax {
|
|
[self setUpSockets];
|
|
[self.manager connectSocket:self.socket];
|
|
}
|
|
|
|
- (void)testDisconnectSocketSyntax {
|
|
[self setUpSockets];
|
|
[self.manager disconnectSocket:self.socket];
|
|
}
|
|
|
|
- (void)testSocketForNamespaceSyntax {
|
|
SocketIOClient* client = [self.manager socketForNamespace:@"/swift"];
|
|
client = nil;
|
|
}
|
|
|
|
- (void)testManagerCallsConnect {
|
|
[self setUpSockets];
|
|
|
|
XCTestExpectation* expect = [self expectationWithDescription:@"The manager should call connect on the default socket"];
|
|
XCTestExpectation* expect2 = [self expectationWithDescription:@"The manager should call connect on the socket"];
|
|
|
|
self.socket.expects[@"didConnectCalled"] = expect;
|
|
self.socket2.expects[@"didConnectCalled"] = expect2;
|
|
|
|
[self.socket connect];
|
|
[self.socket2 connect];
|
|
|
|
[self.manager fakeConnecting];
|
|
[self.manager fakeConnectingToNamespace:@"/swift"];
|
|
|
|
[self waitForExpectationsWithTimeout:0.3 handler:nil];
|
|
}
|
|
|
|
- (void)testManagerCallsDisconnect {
|
|
[self setUpSockets];
|
|
|
|
XCTestExpectation* expect = [self expectationWithDescription:@"The manager should call disconnect on the default socket"];
|
|
XCTestExpectation* expect2 = [self expectationWithDescription:@"The manager should call disconnect on the socket"];
|
|
|
|
self.socket.expects[@"didDisconnectCalled"] = expect;
|
|
self.socket2.expects[@"didDisconnectCalled"] = expect2;
|
|
|
|
[self.socket2 on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) {
|
|
[self.manager disconnect];
|
|
[self.manager fakeDisconnecting];
|
|
}];
|
|
|
|
[self.socket connect];
|
|
[self.socket2 connect];
|
|
|
|
[self.manager fakeConnecting];
|
|
[self.manager fakeConnectingToNamespace:@"/swift"];
|
|
|
|
[self waitForExpectationsWithTimeout:0.3 handler:nil];
|
|
}
|
|
|
|
- (void)testManagerEmitAll {
|
|
[self setUpSockets];
|
|
|
|
XCTestExpectation* expect = [self expectationWithDescription:@"The manager should emit an event to the default socket"];
|
|
XCTestExpectation* expect2 = [self expectationWithDescription:@"The manager should emit an event to the socket"];
|
|
|
|
self.socket.expects[@"emitAllEventCalled"] = expect;
|
|
self.socket2.expects[@"emitAllEventCalled"] = expect2;
|
|
|
|
[self.socket2 on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) {
|
|
[self.manager emitAll:@"event" withItems:@[@"testing"]];
|
|
}];
|
|
|
|
[self.socket connect];
|
|
[self.socket2 connect];
|
|
|
|
[self.manager fakeConnecting];
|
|
[self.manager fakeConnectingToNamespace:@"/swift"];
|
|
|
|
[self waitForExpectationsWithTimeout:0.3 handler:nil];
|
|
}
|
|
|
|
- (void)testMangerRemoveSocket {
|
|
[self setUpSockets];
|
|
|
|
[self.manager removeSocket:self.socket];
|
|
|
|
XCTAssertNil(self.manager.nsps[self.socket.nsp]);
|
|
}
|
|
|
|
- (void)setUpSockets {
|
|
self.socket = [self.manager testSocketForNamespace:@"/"];
|
|
self.socket2 = [self.manager testSocketForNamespace:@"/swift"];
|
|
}
|
|
|
|
- (void)setUp {
|
|
[super setUp];
|
|
NSURL* url = [[NSURL alloc] initWithString:@"http://localhost"];
|
|
self.manager = [[TestManager alloc] initWithSocketURL:url config:@{@"log": @NO}];
|
|
self.socket = nil;
|
|
self.socket2 = nil;
|
|
}
|
|
|
|
@end
|