blob: a7c53d1f17ccedc9fe12e1c75b30576ad5fd626c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
//
// TestConnectionManager.m
// SmartDeviceLink-iOS
//
// Created by Joel Fischer on 11/6/15.
// Copyright © 2015 smartdevicelink. All rights reserved.
//
#import "TestConnectionManager.h"
#import "SDLRPCRequest.h"
NS_ASSUME_NONNULL_BEGIN
@implementation TestConnectionManager
- (instancetype)init {
self = [super init];
if (!self) {
return nil;
}
_receivedRequests = [NSMutableArray<__kindof SDLRPCRequest *> array];
return self;
}
- (void)sendRequest:(__kindof SDLRPCRequest *)request withCompletionHandler:(nullable SDLRequestCompletionHandler)block {
self.lastRequestBlock = block;
request.correlationID = [self test_nextCorrelationID];
[self.receivedRequests addObject:request];
}
- (void)respondToLastRequestWithResponse:(__kindof SDLRPCResponse *)response {
[self respondToLastRequestWithResponse:response error:nil];
}
- (void)respondToLastRequestWithResponse:(__kindof SDLRPCResponse *_Nullable)response error:(NSError *_Nullable)error {
if (self.lastRequestBlock != nil) {
self.lastRequestBlock(self.receivedRequests.lastObject, response, error);
} else {
@throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Attempted to respond to last request, but there was no last request block" userInfo:nil];
}
}
- (void)reset {
_receivedRequests = [NSMutableArray<__kindof SDLRPCRequest *> array];
_lastRequestBlock = nil;
}
#pragma mark Private helpers
- (NSNumber *)test_nextCorrelationID {
static NSUInteger correlationID = 0;
return @(correlationID++);
}
@end
NS_ASSUME_NONNULL_END
|