116 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.5 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)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.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)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:nil];
 | 
						|
    self.socket = nil;
 | 
						|
    self.socket2 = nil;
 | 
						|
}
 | 
						|
 | 
						|
@end
 |