diff options
author | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2010-11-19 21:30:22 +0000 |
---|---|---|
committer | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2010-11-19 21:30:22 +0000 |
commit | b4ed53890ab5454ae0d6926d5acb7d1d898917e2 (patch) | |
tree | 45a71cd9323f10dc9354d56f01f561274de6d471 /UnitTesting/GTMSenTestCaseTest.m | |
parent | 59218cf3ff9c6d290de327220758eb84f9889bd0 (diff) |
[Author: thomasvl]
Move the test for abstract unittest support out into a file that can be
shared with iOS.
Add the unittest to the iOS project.
Fix up the iOS unittesting support to handle abstract tests.
R=dmaclach
DELTA=156 (105 added, 20 deleted, 31 changed)
Diffstat (limited to 'UnitTesting/GTMSenTestCaseTest.m')
-rw-r--r-- | UnitTesting/GTMSenTestCaseTest.m | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/UnitTesting/GTMSenTestCaseTest.m b/UnitTesting/GTMSenTestCaseTest.m new file mode 100644 index 0000000..9d9a594 --- /dev/null +++ b/UnitTesting/GTMSenTestCaseTest.m @@ -0,0 +1,72 @@ +// +// GTMSenTestCaseTest.m +// +// Copyright 2010 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 "GTMSenTestCase.h" + +// These make use of the fact that methods are run in alphebetical order +// to have one test check that a previous one was run. If that order ever +// changes, there is a good chance things will break. + +static int gAbstractCalls_ = 0; +static int gZzCheckCalls_ = 0; + +@interface GTMTestingAbstractTest : GTMTestCase +@end + +@interface GTMTestingTestOne : GTMTestingAbstractTest { + BOOL zzCheckCalled_; +} +@end + +@interface GTMTestingTestTwo : GTMTestingTestOne +@end + +@implementation GTMTestingAbstractTest + +- (void)testAbstractUnitTest { + STAssertFalse([self isMemberOfClass:[GTMTestingAbstractTest class]], + @"test should not run on the abstract class"); + ++gAbstractCalls_; +} + +@end + +@implementation GTMTestingTestOne + +- (void)testZZCheck { + ++gZzCheckCalls_; + if ([self isMemberOfClass:[GTMTestingTestOne class]]) { + STAssertEquals(gAbstractCalls_, 1, + @"wrong number of abstract calls at this point"); + } else { + STAssertTrue([self isMemberOfClass:[GTMTestingTestTwo class]], nil); + STAssertEquals(gAbstractCalls_, 2, + @"wrong number of abstract calls at this point"); + } +} + +@end + +@implementation GTMTestingTestTwo + +- (void)testZZZCheck { + // Test defined at this leaf, it should always run, check on the other methods. + STAssertEquals(gZzCheckCalls_, 2, @"the parent class method wasn't called"); +} + +@end |