blob: db85d702d417c035d7b10d24ae36f430de50aa8e [file] [log] [blame]
//
// 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