forked from loafle/openapi-generator-original
168 lines
6.2 KiB
Objective-C
168 lines
6.2 KiB
Objective-C
#import <UIKit/UIKit.h>
|
|
#import <XCTest/XCTest.h>
|
|
#import <ISO8601/ISO8601.h>
|
|
#import <SwaggerClient/SWGApiClient.h>
|
|
#import <SwaggerClient/SWGConfiguration.h>
|
|
#import <SwaggerClient/SWGQueryParamCollection.h>
|
|
#import <SwaggerClient/SWGPet.h>
|
|
#import <SwaggerClient/SWGTag.h>
|
|
#import <SwaggerClient/SWGCategory.h>
|
|
|
|
@interface SWGApiClientTest : XCTestCase
|
|
|
|
@property (nonatomic) SWGApiClient *apiClient;
|
|
|
|
@end
|
|
|
|
@implementation SWGApiClientTest
|
|
|
|
- (void)setUp {
|
|
[super setUp];
|
|
self.apiClient = [[SWGApiClient alloc] init];
|
|
}
|
|
|
|
- (void)tearDown {
|
|
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
|
[super tearDown];
|
|
}
|
|
|
|
- (void)testSelectHeaderAccept {
|
|
NSArray *accepts = nil;
|
|
|
|
accepts = @[@"APPLICATION/JSON", @"APPLICATION/XML"];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderAccept:accepts], @"application/json");
|
|
|
|
accepts = @[@"application/json", @"application/xml"];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderAccept:accepts], @"application/json");
|
|
|
|
accepts = @[@"APPLICATION/xml", @"APPLICATION/json"];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderAccept:accepts], @"application/json");
|
|
|
|
accepts = @[@"text/plain", @"application/xml"];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderAccept:accepts], @"text/plain, application/xml");
|
|
|
|
accepts = @[];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderAccept:accepts], @"");
|
|
}
|
|
|
|
- (void)testSelectHeaderContentType {
|
|
NSArray *contentTypes = nil;
|
|
|
|
contentTypes = @[@"APPLICATION/JSON", @"APPLICATION/XML"];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderContentType:contentTypes], @"application/json");
|
|
|
|
contentTypes = @[@"application/json", @"application/xml"];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderContentType:contentTypes], @"application/json");
|
|
|
|
contentTypes = @[@"APPLICATION/xml", @"APPLICATION/json"];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderContentType:contentTypes], @"application/json");
|
|
|
|
contentTypes = @[@"text/plain", @"application/xml"];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderContentType:contentTypes], @"text/plain");
|
|
|
|
contentTypes = @[];
|
|
XCTAssertEqualObjects([SWGApiClient selectHeaderContentType:contentTypes], @"application/json");
|
|
}
|
|
|
|
- (void)testConfiguration {
|
|
SWGConfiguration *config = [SWGConfiguration sharedConfig];
|
|
[config setApiKey:@"123456" forApiKeyIdentifier:@"api_key"];
|
|
[config setApiKeyPrefix:@"PREFIX" forApiKeyPrefixIdentifier:@"api_key"];
|
|
config.username = @"test_username";
|
|
config.password = @"test_password";
|
|
|
|
NSDictionary *headerParams = @{@"test1": @"value1"};
|
|
NSDictionary *queryParams = @{@"test2": @"value2"};
|
|
NSArray *authSettings = @[@"api_key", @"unknown"];
|
|
|
|
// test prefix
|
|
XCTAssertEqualObjects(@"PREFIX", config.apiKeyPrefix[@"api_key"]);
|
|
[self.apiClient updateHeaderParams:&headerParams
|
|
queryParams:&queryParams
|
|
WithAuthSettings:authSettings];
|
|
|
|
// test api key auth
|
|
XCTAssertEqualObjects(headerParams[@"test1"], @"value1");
|
|
XCTAssertEqualObjects(headerParams[@"api_key"], @"PREFIX 123456");
|
|
XCTAssertEqualObjects(queryParams[@"test2"], @"value2");
|
|
|
|
// test basic auth
|
|
XCTAssertEqualObjects(@"test_username", config.username);
|
|
XCTAssertEqualObjects(@"test_password", config.password);
|
|
}
|
|
|
|
- (void)testGetBasicAuthToken {
|
|
SWGConfiguration *config = [SWGConfiguration sharedConfig];
|
|
config.username = @"test_username";
|
|
config.password = @"test_password";
|
|
|
|
NSString *basicAuthCredentials = [NSString stringWithFormat:@"%@:%@", config.username, config.password];
|
|
NSData *data = [basicAuthCredentials dataUsingEncoding:NSUTF8StringEncoding];
|
|
basicAuthCredentials = [NSString stringWithFormat:@"Basic %@", [data base64EncodedStringWithOptions:0]];
|
|
|
|
XCTAssertEqualObjects(basicAuthCredentials, [config getBasicAuthToken]);
|
|
}
|
|
|
|
- (void)testSanitizeForSerialization {
|
|
id result;
|
|
id data;
|
|
|
|
// nil
|
|
data = nil;
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, data);
|
|
|
|
// NSString
|
|
data = @"test string";
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, data);
|
|
|
|
// NSNumber
|
|
data = @1;
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, data);
|
|
|
|
// SWGQueryParamCollection
|
|
data = [[SWGQueryParamCollection alloc] init];
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, data);
|
|
|
|
// NSDate
|
|
data = [NSDate dateWithISO8601String:@"1997-07-16T19:20:30.45+01:00"];
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, [data ISO8601String]);
|
|
|
|
data = [NSDate dateWithISO8601String:@"1997-07-16"];
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, [data ISO8601String]);
|
|
|
|
// model
|
|
NSDictionary *petDict = @{@"id": @1, @"name": @"monkey",
|
|
@"category": @{@"id": @1, @"name": @"test category"},
|
|
@"tags": @[@{@"id": @1, @"name": @"test tag1"},
|
|
@{@"id": @2, @"name": @"test tag2"}],
|
|
@"status": @"available",
|
|
@"photoUrls": @[@"http://foo.bar.com/3", @"http://foo.bar.com/4"]};
|
|
data = [[SWGPet alloc] initWithDictionary:petDict error:nil];
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, petDict);
|
|
|
|
// NSArray
|
|
data = @[@1];
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, data);
|
|
|
|
// NSArray of models
|
|
NSArray *arrayOfPetDict = @[petDict];
|
|
data = [NSArray arrayWithObject:[[SWGPet alloc] initWithDictionary:petDict error:nil]];
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, arrayOfPetDict);
|
|
|
|
// NSDictionary
|
|
data = @{@"test key": @"test value"};
|
|
result = [self.apiClient sanitizeForSerialization:data];
|
|
XCTAssertEqualObjects(result, data);
|
|
}
|
|
|
|
@end
|