/core/externals/google-toolbox-for-mac/Foundation/GTMLogger+ASLTest.m
http://macfuse.googlecode.com/ · Objective C · 131 lines · 82 code · 26 blank · 23 comment · 1 complexity · 7899830900b44ea90ff3453e9892d24c MD5 · raw file
- //
- // 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];
- STAssertNotNil(aslLogger, nil);
- GTMLogASLWriter *writer = [GTMLogASLWriter aslWriter];
- STAssertNotNil(writer, nil);
- }
- - (void)testLogWriter {
- gDummyLog = [[[NSMutableArray alloc] init] autorelease];
- GTMLogASLWriter *writer = [[[GTMLogASLWriter alloc]
- initWithClientClass:[DummyASLClient class]
- facility:nil]
- autorelease];
- STAssertNotNil(writer, nil);
- STAssertEquals([gDummyLog count], (NSUInteger)0, nil);
- // 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];
- STAssertEqualObjects(gDummyLog, expected, nil);
- [gDummyLog removeAllObjects];
- // Same test with facility
- writer = [[[GTMLogASLWriter alloc]
- initWithClientClass:[DummyASLClient class]
- facility:@"testfac"] autorelease];
- STAssertNotNil(writer, nil);
- STAssertEquals([gDummyLog count], (NSUInteger)0, nil);
- [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];
- STAssertEqualObjects(gDummyLog, expected, nil);
- gDummyLog = nil;
- }
- - (void)testASLClient {
- GTMLoggerASLClient *client = [[GTMLoggerASLClient alloc] init];
- STAssertNotNil(client, nil);
- [client release];
- }
- @end