aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMLogger+ASLTest.m
diff options
context:
space:
mode:
authorGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-07-21 14:49:00 +0000
committerGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-07-21 14:49:00 +0000
commit4963c8a9d57501b5ffb0fe52fbfe60cd71b3b916 (patch)
treedd70e4aba13b245427788ccdb075e04f1af0951c /Foundation/GTMLogger+ASLTest.m
parentef630a18e87e03f15a2ae2b7b90623d4a0183f89 (diff)
helps if I add the files before doing the commit
Diffstat (limited to 'Foundation/GTMLogger+ASLTest.m')
-rw-r--r--Foundation/GTMLogger+ASLTest.m91
1 files changed, 91 insertions, 0 deletions
diff --git a/Foundation/GTMLogger+ASLTest.m b/Foundation/GTMLogger+ASLTest.m
new file mode 100644
index 0000000..97f7e29
--- /dev/null
+++ b/Foundation/GTMLogger+ASLTest.m
@@ -0,0 +1,91 @@
+//
+// 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
+@end
+
+static NSMutableArray *gDummyLog; // weak
+
+@implementation DummyASLClient
+
+- (void)log:(NSString *)msg level:(int)level {
+ NSString *line = [msg stringByAppendingFormat:@"@%d", 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]]
+ autorelease];
+
+
+ STAssertNotNil(writer, nil);
+ STAssertTrue([gDummyLog count] == 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 *log = gDummyLog;
+ NSArray *expected = [NSArray arrayWithObjects:
+ @"unknown@5",
+ @"debug@5",
+ @"info@5",
+ @"error@3",
+ @"assert@1",
+ nil];
+
+ STAssertEqualObjects(log, expected, nil);
+
+ gDummyLog = nil;
+}
+
+- (void)testASLClient {
+ GTMLoggerASLClient *client = [[GTMLoggerASLClient alloc] init];
+ STAssertNotNil(client, nil);
+ [client release];
+}
+
+@end