/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

  1. //
  2. // GTMLogger+ASLTest.m
  3. //
  4. // Copyright 2007-2008 Google Inc.
  5. //
  6. // Licensed under the Apache License, Version 2.0 (the "License"); you may not
  7. // use this file except in compliance with the License. You may obtain a copy
  8. // of the License at
  9. //
  10. // http://www.apache.org/licenses/LICENSE-2.0
  11. //
  12. // Unless required by applicable law or agreed to in writing, software
  13. // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  14. // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  15. // License for the specific language governing permissions and limitations under
  16. // the License.
  17. //
  18. #import "GTMLogger+ASL.h"
  19. #import "GTMSenTestCase.h"
  20. @interface DummyASLClient : GTMLoggerASLClient {
  21. @private
  22. NSString *facility_;
  23. }
  24. @end
  25. static NSMutableArray *gDummyLog; // weak
  26. @implementation DummyASLClient
  27. - (id)initWithFacility:(NSString *)facility {
  28. if ((self = [super initWithFacility:facility])) {
  29. facility_ = [facility copy];
  30. }
  31. return self;
  32. }
  33. - (void)dealloc {
  34. [facility_ release];
  35. [super dealloc];
  36. }
  37. - (void)log:(NSString *)msg level:(int)level {
  38. NSString *line = [NSString stringWithFormat:@"%@-%@-%d",
  39. (facility_ ? facility_ : @""), msg, level];
  40. [gDummyLog addObject:line];
  41. }
  42. @end
  43. @interface GTMLogger_ASLTest : GTMTestCase
  44. @end
  45. @implementation GTMLogger_ASLTest
  46. - (void)testCreation {
  47. GTMLogger *aslLogger = [GTMLogger standardLoggerWithASL];
  48. STAssertNotNil(aslLogger, nil);
  49. GTMLogASLWriter *writer = [GTMLogASLWriter aslWriter];
  50. STAssertNotNil(writer, nil);
  51. }
  52. - (void)testLogWriter {
  53. gDummyLog = [[[NSMutableArray alloc] init] autorelease];
  54. GTMLogASLWriter *writer = [[[GTMLogASLWriter alloc]
  55. initWithClientClass:[DummyASLClient class]
  56. facility:nil]
  57. autorelease];
  58. STAssertNotNil(writer, nil);
  59. STAssertEquals([gDummyLog count], (NSUInteger)0, nil);
  60. // Log some messages
  61. [writer logMessage:@"unknown" level:kGTMLoggerLevelUnknown];
  62. [writer logMessage:@"debug" level:kGTMLoggerLevelDebug];
  63. [writer logMessage:@"info" level:kGTMLoggerLevelInfo];
  64. [writer logMessage:@"error" level:kGTMLoggerLevelError];
  65. [writer logMessage:@"assert" level:kGTMLoggerLevelAssert];
  66. // Inspect the logged message to make sure they were logged correctly. The
  67. // dummy writer will save the messages w/ @level concatenated. The "level"
  68. // will be the ASL level, not the GTMLogger level. GTMLogASLWriter will log
  69. // all
  70. NSArray *expected = [NSArray arrayWithObjects:
  71. @"-unknown-5",
  72. @"-debug-5",
  73. @"-info-5",
  74. @"-error-3",
  75. @"-assert-1",
  76. nil];
  77. STAssertEqualObjects(gDummyLog, expected, nil);
  78. [gDummyLog removeAllObjects];
  79. // Same test with facility
  80. writer = [[[GTMLogASLWriter alloc]
  81. initWithClientClass:[DummyASLClient class]
  82. facility:@"testfac"] autorelease];
  83. STAssertNotNil(writer, nil);
  84. STAssertEquals([gDummyLog count], (NSUInteger)0, nil);
  85. [writer logMessage:@"unknown" level:kGTMLoggerLevelUnknown];
  86. [writer logMessage:@"debug" level:kGTMLoggerLevelDebug];
  87. [writer logMessage:@"info" level:kGTMLoggerLevelInfo];
  88. [writer logMessage:@"error" level:kGTMLoggerLevelError];
  89. [writer logMessage:@"assert" level:kGTMLoggerLevelAssert];
  90. expected = [NSArray arrayWithObjects:
  91. @"testfac-unknown-5",
  92. @"testfac-debug-5",
  93. @"testfac-info-5",
  94. @"testfac-error-3",
  95. @"testfac-assert-1",
  96. nil];
  97. STAssertEqualObjects(gDummyLog, expected, nil);
  98. gDummyLog = nil;
  99. }
  100. - (void)testASLClient {
  101. GTMLoggerASLClient *client = [[GTMLoggerASLClient alloc] init];
  102. STAssertNotNil(client, nil);
  103. [client release];
  104. }
  105. @end