| // |
| // GTMLogger+ASLTest.m |
| // |
| // Copyright 2007-2008 Google Inc. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| // use this file except in compliance with the License. You may obtain a copy |
| // of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| // License for the specific language governing permissions and limitations under |
| // the License. |
| // |
| |
| #import "GTMLogger+ASL.h" |
| #import "GTMSenTestCase.h" |
| |
| @interface DummyASLClient : GTMLoggerASLClient { |
| @private |
| NSString *facility_; |
| } |
| @end |
| |
| static NSMutableArray *gDummyLog; // weak |
| |
| @implementation DummyASLClient |
| |
| - (id)initWithFacility:(NSString *)facility { |
| if ((self = [super initWithFacility:facility])) { |
| facility_ = [facility copy]; |
| } |
| return self; |
| } |
| |
| - (void)dealloc { |
| [facility_ release]; |
| [super dealloc]; |
| } |
| |
| - (void)log:(NSString *)msg level:(int)level { |
| NSString *line = [NSString stringWithFormat:@"%@-%@-%d", |
| (facility_ ? facility_ : @""), msg, level]; |
| [gDummyLog addObject:line]; |
| } |
| |
| @end |
| |
| |
| @interface GTMLogger_ASLTest : GTMTestCase |
| @end |
| |
| @implementation GTMLogger_ASLTest |
| |
| - (void)testCreation { |
| GTMLogger *aslLogger = [GTMLogger standardLoggerWithASL]; |
| XCTAssertNotNil(aslLogger); |
| |
| GTMLogASLWriter *writer = [GTMLogASLWriter aslWriter]; |
| XCTAssertNotNil(writer); |
| } |
| |
| - (void)testLogWriter { |
| gDummyLog = [[[NSMutableArray alloc] init] autorelease]; |
| GTMLogASLWriter *writer = [[[GTMLogASLWriter alloc] |
| initWithClientClass:[DummyASLClient class] |
| facility:nil] |
| autorelease]; |
| |
| |
| XCTAssertNotNil(writer); |
| XCTAssertEqual([gDummyLog count], (NSUInteger)0); |
| |
| // Log some messages |
| [writer logMessage:@"unknown" level:kGTMLoggerLevelUnknown]; |
| [writer logMessage:@"debug" level:kGTMLoggerLevelDebug]; |
| [writer logMessage:@"info" level:kGTMLoggerLevelInfo]; |
| [writer logMessage:@"error" level:kGTMLoggerLevelError]; |
| [writer logMessage:@"assert" level:kGTMLoggerLevelAssert]; |
| |
| // Inspect the logged message to make sure they were logged correctly. The |
| // dummy writer will save the messages w/ @level concatenated. The "level" |
| // will be the ASL level, not the GTMLogger level. GTMLogASLWriter will log |
| // all |
| NSArray *expected = [NSArray arrayWithObjects: |
| @"-unknown-5", |
| @"-debug-5", |
| @"-info-5", |
| @"-error-3", |
| @"-assert-1", |
| nil]; |
| |
| XCTAssertEqualObjects(gDummyLog, expected); |
| [gDummyLog removeAllObjects]; |
| |
| // Same test with facility |
| writer = [[[GTMLogASLWriter alloc] |
| initWithClientClass:[DummyASLClient class] |
| facility:@"testfac"] autorelease]; |
| |
| |
| XCTAssertNotNil(writer); |
| XCTAssertEqual([gDummyLog count], (NSUInteger)0); |
| |
| [writer logMessage:@"unknown" level:kGTMLoggerLevelUnknown]; |
| [writer logMessage:@"debug" level:kGTMLoggerLevelDebug]; |
| [writer logMessage:@"info" level:kGTMLoggerLevelInfo]; |
| [writer logMessage:@"error" level:kGTMLoggerLevelError]; |
| [writer logMessage:@"assert" level:kGTMLoggerLevelAssert]; |
| expected = [NSArray arrayWithObjects: |
| @"testfac-unknown-5", |
| @"testfac-debug-5", |
| @"testfac-info-5", |
| @"testfac-error-3", |
| @"testfac-assert-1", |
| nil]; |
| XCTAssertEqualObjects(gDummyLog, expected); |
| |
| gDummyLog = nil; |
| } |
| |
| - (void)testASLClient { |
| GTMLoggerASLClient *client = [[GTMLoggerASLClient alloc] init]; |
| XCTAssertNotNil(client); |
| [client release]; |
| } |
| |
| @end |