Xcode/iOS/iOSTests/LogTests.m (166 lines of code) (raw):

// // iOSTests.m // iOSTests // // Created by gordon on 2022/6/17. // #import <XCTest/XCTest.h> #import <AliyunLogProducer/AliyunLogProducer.h> #import "Log+Test.h" @interface LogTests : XCTestCase //@property(nonatomic, strong) LogProducerConfig *config; //@property(nonatomic, strong) LogProducerClient *client; @property(nonatomic, strong) Log *log; @end @implementation LogTests - (void)setUp { // Put setup code here. This method is called before the invocation of each test method in the class. _log = [Log log]; } - (void)tearDown { // Put teardown code here. This method is called after the invocation of each test method in the class. } - (void) test_log$PutContent$value { [_log PutContent:@"stringValue" value:@"stringValue"]; XCTAssertEqual(_log.getContent[@"stringValue"], @"stringValue", "string value not stringValue"); [_log clear]; [_log PutContent:@"stringValue" value:nil]; XCTAssertNil(_log.getContent[@"stringValue"], "string value not nil"); [_log clear]; [_log PutContent:@"stringValue" value:@""]; XCTAssertEqual(_log.getContent[@"stringValue"], @"", "string value not \"\""); [_log clear]; [_log PutContent:@"stringValue" value:[NSNull null]]; XCTAssertEqual(_log.getContent.count, 0, "dict count not 0."); [_log clear]; [_log PutContent:@"stringValue" value:@1]; XCTAssertEqual(_log.getContent.count, 0, "dict count not 0."); [_log clear]; } - (void) test_log$putContent$intValue { [_log putContent:@"int" intValue:1]; XCTAssertEqual([_log.getContent objectForKey:@"int"], [NSNumber numberWithInt:1].stringValue, "int value not 1."); [_log remove:@"int"]; } - (void) test_log$putContent { [_log clear]; // nsdata is json NSDictionary *dict = @{ @"key": @"value" }; NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil]; [_log putContent:data]; XCTAssertEqual(_log.getContent.count, 1, "dict count not 1."); XCTAssertTrue([_log.getContent[@"key"] isEqualToString:@"value"], @"value is not equal to %@", _log.getContent[@"key"]); [_log clear]; // nsdata is json array NSArray *array = @[ @"array" ]; data = [NSJSONSerialization dataWithJSONObject:array options:kNilOptions error:nil]; [_log putContent:data]; XCTAssertEqual(_log.getContent.count, 1, "dict count not 1."); XCTAssertTrue([_log.getContent[@"data"] isEqualToString:[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]], @"value is not equal to %@", _log.getContent[@"data"]); [_log clear]; // nsdata is nsstring data = [@"value" dataUsingEncoding:NSUTF8StringEncoding]; [_log putContent:data]; XCTAssertEqual(_log.getContent.count, 1, "dict count not 1."); XCTAssertTrue([_log.getContent[@"data"] isEqualToString:@"value"], @"value is not equal to %@", _log.getContent[@"data"]); [_log clear]; // nsdata is nsnull data = [NSNull null]; [_log putContent:data]; XCTAssertEqual(_log.getContent.count, 1, "dict count not 1."); XCTAssertTrue([_log.getContent[@"data"] isEqualToString:@"null"], @"value is not equal to %@", _log.getContent[@"data"]); [_log clear]; } - (void) test_log$putContent$dataValue { [_log clear]; // nsdata is nsstring NSData *data = [@"dataValue" dataUsingEncoding:NSUTF8StringEncoding]; [_log putContent:@"data" dataValue:data]; XCTAssertEqual(_log.getContent.count, 1, "dict count not 1."); XCTAssertTrue([_log.getContent[@"data"] isEqualToString:@"dataValue"], @"value is not equal to %@", _log.getContent[@"data"]); [_log clear]; // nsdata is json NSDictionary *dict = @{ @"key": @"value" }; data = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil]; [_log putContent:@"data" dataValue:data]; XCTAssertEqual(_log.getContent.count, 1, "dict count not 1."); XCTAssertTrue([_log.getContent[@"data"] isEqualToString:[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]], @"value is not equal to %@", _log.getContent[@"data"]); [_log clear]; // nsdata is json array NSArray *array = @[ @"array" ]; data = [NSJSONSerialization dataWithJSONObject:array options:kNilOptions error:nil]; [_log putContent:@"data" dataValue:data];[_log putContent:data]; XCTAssertEqual(_log.getContent.count, 1, "dict count not 1."); XCTAssertTrue([_log.getContent[@"data"] isEqualToString:[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]], @"value is not equal to %@", _log.getContent[@"data"]); [_log clear]; } - (void) test_log$putContent$dictValue { [_log clear]; NSDictionary *dict = @{ @"key1": @"value1", @"key2": @1, @"key3": @1.0f, @"key4": @1L, @"key5": @{ @"1key": @"1value", @"2key": @[] }, @"key6": @[@"array"] }; [_log putContent:nil dictValue:dict]; XCTAssertTrue(_log.getContent.count == 0, @"dict count not %d.", 0); [_log clear]; [_log putContent:[NSNull null] dictValue:dict]; XCTAssertTrue(_log.getContent.count == 0, @"dict count not %d.", 0); [_log clear]; [_log putContent:@"data" dictValue:nil]; XCTAssertTrue(_log.getContent.count == 0, @"dict count not %d.", 0); [_log clear]; [_log putContent:@"data" dictValue:[NSNull null]]; XCTAssertTrue(_log.getContent.count == 0, @"dict count not %d.", 0); [_log clear]; [_log putContent:@"data" dictValue:dict]; XCTAssertTrue(_log.getContent.count == 1, @"dict count not %d.", 1); XCTAssertTrue([_log.getContent[@"data"] isEqualToString:[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil ] encoding:NSUTF8StringEncoding ]], @"value not equal to %@", _log.getContent[@"data"]); [_log clear]; dict = @{ @"key1": [NSNull null], }; BOOL ret = [_log putContent:@"data" dictValue:dict]; XCTAssertTrue(YES == ret, @"NSNull insert sucess"); [_log clear]; } - (void) test_log$putContent$arrayValue { [_log clear]; NSArray *array = @[ @"array" ]; [_log putContent:nil arrayValue:array]; XCTAssertTrue(_log.getContent.count == 0, @"dict count not %d.", 0); [_log clear]; [_log putContent:[NSNull null] arrayValue:array]; XCTAssertTrue(_log.getContent.count == 0, @"dict count not %d.", 0); [_log clear]; [_log putContent:@"data" arrayValue:nil]; XCTAssertTrue(_log.getContent.count == 0, @"dict count not %d.", 0); [_log clear]; [_log putContent:@"data" arrayValue:[NSNull null]]; XCTAssertTrue(_log.getContent.count == 0, @"dict count not %d.", 0); [_log clear]; [_log putContent:@"data" dictValue:array]; XCTAssertTrue(_log.getContent.count == 1, @"dict count not %d.", 1); XCTAssertTrue([_log.getContent[@"data"] isEqualToString:[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:array options:kNilOptions error:nil ] encoding:NSUTF8StringEncoding ]], @"value not equal to %@", _log.getContent[@"data"]); [_log clear]; } - (void)testExample { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. } - (void)testPerformanceExample { // This is an example of a performance test case. [self measureBlock:^{ // Put the code you want to measure the time of here. }]; } @end