geekerzp f9ad16e7aa Update objc client.
* Add test cases for deserialization.
* Pretty print model infomation.
2015-07-22 17:45:31 +08:00

102 lines
3.7 KiB
Objective-C

#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#import <SwaggerClient/SWGApiClient.h>
#import <SwaggerClient/SWGConfiguration.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 setValue:@"123456" forApiKeyField:@"api_key"];
[config setValue:@"PREFIX" forApiKeyPrefixField:@"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]);
}
@end