/Tests/NSObjectBlocksKitTest.m

http://github.com/zwaldowski/BlocksKit · Objective C · 57 lines · 45 code · 8 blank · 4 comment · 0 complexity · dafb7c7120fa051a5e9fc0f43c9422dd MD5 · raw file

  1. //
  2. // NSObjectBlocksKitTest.m
  3. // BlocksKit Unit Tests
  4. //
  5. #import "NSObjectBlocksKitTest.h"
  6. @implementation NSObjectBlocksKitTest {
  7. NSMutableString *_subject;
  8. }
  9. - (void)setUp {
  10. _subject = [[NSMutableString alloc] initWithString:@"Hello "];
  11. }
  12. - (void)tearDown {
  13. [_subject release];
  14. }
  15. - (void)testPerformBlockAfterDelay {
  16. BKSenderBlock senderBlock = ^(NSObjectBlocksKitTest *sender) {
  17. [_subject appendString:@"BlocksKit"];
  18. [sender notify:kGHUnitWaitStatusSuccess forSelector:@selector(testPerformBlockAfterDelay)];
  19. };
  20. [self prepare];
  21. id block = [self performBlock:senderBlock afterDelay:0.5];
  22. GHAssertNotNil(block,@"block is nil");
  23. [self waitForStatus:kGHUnitWaitStatusSuccess timeout:1.0];
  24. GHAssertEqualStrings(_subject,@"Hello BlocksKit",@"subject string is %@",_subject);
  25. }
  26. - (void)testClassPerformBlockAfterDelay {
  27. __block NSObjectBlocksKitTest *test = self;
  28. __block NSMutableString *subject = [NSMutableString stringWithString:@"Hello "];
  29. [self prepare];
  30. id blk = [NSObject performBlock:^{
  31. [subject appendString:@"BlocksKit"];
  32. [test notify:kGHUnitWaitStatusSuccess forSelector:@selector(testClassPerformBlockAfterDelay)];
  33. } afterDelay:0.5];
  34. GHAssertNotNil(blk,@"block is nil");
  35. [self waitForStatus:kGHUnitWaitStatusSuccess timeout:1.0];
  36. GHAssertEqualStrings(subject,@"Hello BlocksKit",@"subject string is %@",subject);
  37. }
  38. - (void)testCancel {
  39. [self prepare];
  40. id block = [self performBlock:^(NSObjectBlocksKitTest * sender) {
  41. [_subject appendString:@"BlocksKit"];
  42. [sender notify:kGHUnitWaitStatusSuccess forSelector:@selector(testCancel)];
  43. } afterDelay:0.1];
  44. GHAssertNotNil(block,@"block is nil");
  45. [NSObject cancelBlock:block];
  46. [self waitForTimeout:0.5];
  47. GHAssertEqualStrings(_subject,@"Hello ",@"subject string is %@",_subject);
  48. }
  49. @end