AliyunOSSiOSTests/OSSLogTests.m (84 lines of code) (raw):

// // OSSLogTests.m // AliyunOSSiOSTests // // Created by 怀叙 on 2017/11/15. // Copyright © 2017年 zhouzhuo. All rights reserved. // #import <XCTest/XCTest.h> #import <AliyunOSSiOS/AliyunOSSiOS.h> @interface OSSLogTests : XCTestCase @end @interface OSSDDTestLogger : NSObject <OSSDDLogger> @end @implementation OSSDDTestLogger @synthesize logFormatter; - (void)logMessage:(nonnull OSSDDLogMessage *)logMessage { } @end @implementation OSSLogTests - (void)setUp { [super setUp]; // Put setup code here. This method is called before the invocation of each test method in the class. [OSSLog enableLog]; [OSSDDLog removeAllLoggers]; } - (void)tearDown { // Put teardown code here. This method is called after the invocation of each test method in the class. [OSSDDLog removeAllLoggers]; [super tearDown]; } - (void)testAddLoggerAddsNewLoggerWithDDLogLevelAll { OSSDDTestLogger *logger = [OSSDDTestLogger new]; [OSSDDLog addLogger:logger]; XCTAssertEqual([OSSDDLog allLoggers].count, 1); } - (void)testAddLoggerWithLevelAddLoggerWithSpecifiedLevelMask { OSSDDTestLogger *logger = [OSSDDTestLogger new]; [OSSDDLog addLogger:logger withLevel:OSSDDLogLevelDebug | OSSDDLogLevelError]; XCTAssertEqual([OSSDDLog allLoggers].count, 1); } - (void)testRemoveLoggerRemovesExistingLogger { OSSDDTestLogger *logger = [OSSDDTestLogger new]; [OSSDDLog addLogger:logger]; [OSSDDLog addLogger:[OSSDDTestLogger new]]; [OSSDDLog removeLogger:logger]; XCTAssertEqual([OSSDDLog allLoggers].count, 1); XCTAssertNotEqual([[OSSDDLog allLoggers] firstObject], logger); } - (void)testRemoveAllLoggersRemovesAllLoggers { [OSSDDLog addLogger:[OSSDDTestLogger new]]; [OSSDDLog addLogger:[OSSDDTestLogger new]]; [OSSDDLog removeAllLoggers]; XCTAssertEqual([OSSDDLog allLoggers].count, 0); } - (void)testAllLoggersReturnsAllLoggers { [OSSDDLog addLogger:[OSSDDTestLogger new]]; [OSSDDLog addLogger:[OSSDDTestLogger new]]; XCTAssertEqual([OSSDDLog allLoggers].count, 2); } - (void)testAllLoggersWithLevelReturnsAllLoggersWithLevel { NSLog(@"%ld",OSSDDLogFlagInfo); [OSSDDLog addLogger:[OSSDDTestLogger new]]; [OSSDDLog addLogger:[OSSDDTestLogger new] withLevel:OSSDDLogLevelInfo]; [OSSDDLog addLogger:[OSSDDTestLogger new] withLevel:OSSDDLogLevelDebug]; XCTAssertEqual([OSSDDLog allLoggers].count, 3); OSSDDLoggerInformation *logger0 = [[OSSDDLog allLoggersWithLevel] firstObject]; OSSDDLoggerInformation *logger1 = [OSSDDLog allLoggersWithLevel][1]; OSSDDLoggerInformation *logger2 = [[OSSDDLog allLoggersWithLevel] lastObject]; XCTAssertEqual(logger0.level, OSSDDLogLevelAll); XCTAssertEqual(logger1.level, OSSDDLogLevelInfo); XCTAssertEqual(logger2.level, OSSDDLogLevelDebug); } - (void)testLogForAppTerminate{ [[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationWillTerminateNotification object:nil]; } - (void)testLog { [[OSSDDLog sharedInstance] log:NO level:OSSDDLogLevelVerbose flag:OSSDDLogFlagVerbose context:0 file:__FILE__ function:__PRETTY_FUNCTION__ line:__LINE__ tag:nil format:@"[Debug]: %@",@"test 1"]; OSSDDFileLogger *fileLogger = [[OSSDDFileLogger alloc] init]; // File Logger fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling fileLogger.logFileManager.maximumNumberOfLogFiles = 7; fileLogger.logFileManager.maximumNumberOfLogFiles = 8; fileLogger.logFileManager.logFilesDiskQuota = 1024 * 1024; fileLogger.logFileManager.logFilesDiskQuota = 1024 * 1024 * 2; [OSSDDLog addLogger:fileLogger]; OSSDDLogMessage *message = [[OSSDDLogMessage alloc] init]; [fileLogger logMessage:[message copy]]; id<OSSDDLogFormatter> formatter = [fileLogger logFormatter]; NSLog(@"OSSDDLogFormatter: %@",formatter); [OSSDDLog removeLogger:[[OSSDDLog allLoggers] firstObject]]; } @end