aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMValidatingContainersTest.m
diff options
context:
space:
mode:
Diffstat (limited to 'Foundation/GTMValidatingContainersTest.m')
-rw-r--r--Foundation/GTMValidatingContainersTest.m378
1 files changed, 0 insertions, 378 deletions
diff --git a/Foundation/GTMValidatingContainersTest.m b/Foundation/GTMValidatingContainersTest.m
deleted file mode 100644
index 806ecb0..0000000
--- a/Foundation/GTMValidatingContainersTest.m
+++ /dev/null
@@ -1,378 +0,0 @@
-//
-// GTMValidatingContainersTest.m
-//
-// Copyright 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 "GTMValidatingContainers.h"
-#import "GTMSenTestCase.h"
-#import "GTMUnitTestDevLog.h"
-
-#pragma mark Test Support Declarations
-@protocol GTMVCTestProtocol
-@end
-
-@interface GTMVCTestClass : NSObject
-+ (id)instance;
-@end
-
-@interface GTMVCTestSubClass : GTMVCTestClass <GTMVCTestProtocol>
-- (void)foo;
-@end
-
-@interface GTMVCValidatingTests : GTMTestCase {
- GTMVCTestClass *testClass_;
- GTMVCTestSubClass *testSubClass_;
-}
-@end
-
-@interface GTMVCValidatorTests : GTMVCValidatingTests
-@end
-
-@interface GTMVCContainerTests : GTMVCValidatingTests {
- GTMConformsToProtocolValidator *validator_;
- SEL selector_;
-}
-@end
-
-@interface GTMVCArrayTests : GTMVCContainerTests
-@end
-
-@interface GTMVCDictionaryTests : GTMVCContainerTests
-@end
-
-@interface GTMVCSetTests : GTMVCContainerTests
-@end
-
-@interface GTMValidateContainerTests : GTMTestCase
-@end
-
-#pragma mark -
-#pragma mark Test Support Definitions
-
-@implementation GTMVCTestClass
-+ (id)instance {
- return [[[self alloc] init] autorelease];
-}
-
-- (NSString*)description {
- return NSStringFromClass([self class]);
-}
-@end
-
-@implementation GTMVCTestSubClass
-- (void)foo {
-}
-@end
-
-@implementation GTMVCContainerTests
-- (void)setUp {
- [super setUp];
- Protocol *prot = @protocol(GTMVCTestProtocol);
- validator_ = [[GTMConformsToProtocolValidator alloc] initWithProtocol:prot];
- selector_ = @selector(validateObject:forContainer:);
-}
-
-- (void)tearDown {
- [validator_ release];
- [super tearDown];
-}
-@end
-
-@implementation GTMVCValidatingTests
-
-- (void)setUp {
- [super setUp];
- testClass_ = [[GTMVCTestClass alloc] init];
- testSubClass_ = [[GTMVCTestSubClass alloc] init];
-}
-
-- (void)tearDown {
- [testClass_ release];
- [testSubClass_ release];
- [super tearDown];
-}
-
-@end
-
-@implementation GTMVCValidatorTests
-
-- (void)testKindOfClassValidator {
-#if GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
- [GTMUnitTestDevLog expectString:@"nil class"];
- GTMKindOfClassValidator *validator;
- validator = [GTMKindOfClassValidator validateAgainstClass:nil];
- STAssertNil(validator, @"should be nil");
-
- Class cls = [GTMVCTestClass class];
- validator = [GTMKindOfClassValidator validateAgainstClass:cls];
- STAssertNotNil(validator, @"should be valid");
-
- BOOL isGood = [validator validateObject:testClass_ forContainer:nil];
- STAssertTrue(isGood, @"should be validated");
-
- isGood = [validator validateObject:testSubClass_ forContainer:nil];
- STAssertTrue(isGood, @"should be validated");
-
- isGood = [validator validateObject:[NSNumber numberWithInt:0]
- forContainer:nil];
- STAssertFalse(isGood, @"should fail");
-#else // GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
- GTMKindOfClassValidator *validator;
- validator = [GTMKindOfClassValidator validateAgainstClass:nil];
- STAssertNil(validator, @"should be nil");
-
- Class cls = [GTMVCTestClass class];
- validator = [GTMKindOfClassValidator validateAgainstClass:cls];
- STAssertNil(validator, @"should be nil");
-#endif // GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
-}
-
-- (void)testMemberOfClassValidator {
-#if GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
- [GTMUnitTestDevLog expectString:@"nil class"];
- GTMMemberOfClassValidator *validator;
- validator = [GTMMemberOfClassValidator validateAgainstClass:nil];
- STAssertNil(validator, @"should be nil");
-
- Class cls = [GTMVCTestClass class];
- validator = [GTMMemberOfClassValidator validateAgainstClass:cls];
- STAssertNotNil(validator, @"should be valid");
-
- BOOL isGood = [validator validateObject:testClass_ forContainer:nil];
- STAssertTrue(isGood, @"should be validated");
-
- isGood = [validator validateObject:testSubClass_ forContainer:nil];
- STAssertFalse(isGood, @"should fail");
-
- isGood = [validator validateObject:nil forContainer:nil];
- STAssertFalse(isGood, @"should fail");
-
- isGood = [validator validateObject:[NSNumber numberWithInt:0]
- forContainer:nil];
- STAssertFalse(isGood, @"should fail");
-#else // GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
- GTMMemberOfClassValidator *validator;
- validator = [GTMMemberOfClassValidator validateAgainstClass:nil];
- STAssertNil(validator, @"should be nil");
-
- Class cls = [GTMVCTestClass class];
- validator = [GTMMemberOfClassValidator validateAgainstClass:cls];
- STAssertNil(validator, @"should be nil");
-#endif // GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
-}
-
-- (void)testConformsToProtocolValidator {
-#if GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
- [GTMUnitTestDevLog expectString:@"nil protocol"];
- GTMConformsToProtocolValidator *validator;
- validator = [GTMConformsToProtocolValidator validateAgainstProtocol:nil];
- STAssertNil(validator, @"should be nil");
-
- Protocol *prot = @protocol(GTMVCTestProtocol);
- validator = [GTMConformsToProtocolValidator validateAgainstProtocol:prot];
- STAssertNotNil(validator, @"should be valid");
-
- BOOL isGood = [validator validateObject:testClass_ forContainer:nil];
- STAssertFalse(isGood, @"should fail");
-
- isGood = [validator validateObject:testSubClass_ forContainer:nil];
- STAssertTrue(isGood, @"should succeed");
-
- isGood = [validator validateObject:nil forContainer:nil];
- STAssertFalse(isGood, @"should fail");
-#else // GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
- GTMConformsToProtocolValidator *validator;
- validator = [GTMConformsToProtocolValidator validateAgainstProtocol:nil];
- STAssertNil(validator, @"should be nil");
-
- Protocol *prot = @protocol(GTMVCTestProtocol);
- validator = [GTMConformsToProtocolValidator validateAgainstProtocol:prot];
- STAssertNil(validator, @"should be nil");
-#endif // GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
-}
-
-- (void)testRespondsToSelectorValidator {
-#if GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
- [GTMUnitTestDevLog expectString:@"nil selector"];
- GTMRespondsToSelectorValidator *validator;
- validator = [GTMRespondsToSelectorValidator validateAgainstSelector:nil];
- STAssertNil(validator, @"should be nil");
-
- SEL sel = @selector(foo);
- validator = [GTMRespondsToSelectorValidator validateAgainstSelector:sel];
- STAssertNotNil(validator, @"should be valid");
-
- BOOL isGood = [validator validateObject:testClass_ forContainer:nil];
- STAssertFalse(isGood, @"should fail");
-
- isGood = [validator validateObject:testSubClass_ forContainer:nil];
- STAssertTrue(isGood, @"should succeed");
-
- isGood = [validator validateObject:nil forContainer:nil];
- STAssertFalse(isGood, @"should fail");
-#else // GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
- GTMRespondsToSelectorValidator *validator;
- validator = [GTMRespondsToSelectorValidator validateAgainstSelector:nil];
- STAssertNil(validator, @"should be nil");
-
- SEL sel = @selector(foo);
- validator = [GTMRespondsToSelectorValidator validateAgainstSelector:sel];
- STAssertNil(validator, @"should be nil");
-#endif // GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
-}
-
-
-@end
-
-@implementation GTMVCArrayTests
-- (void)testContainer {
- GTMValidatingArray *array;
- array = [GTMValidatingArray validatingArrayWithTarget:validator_
- selector:selector_];
- STAssertNotNil(array, @"should be valid");
-
- array = [[[GTMValidatingArray alloc] initValidatingWithTarget:validator_
- selector:selector_] autorelease];
- STAssertNotNil(array, @"should be valid");
-
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestClass failed container verification for GTMValidatingArray .*"];
- [array addObject:testSubClass_];
- [array addObject:testClass_];
- STAssertEquals([array objectAtIndex:0], testSubClass_, @"");
-
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestClass failed container verification for GTMValidatingArray .*"];
- [array insertObject:testClass_ atIndex:0];
- [array insertObject:testSubClass_ atIndex:0];
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestClass failed container verification for GTMValidatingArray .*"];
- [array replaceObjectAtIndex:0 withObject:testClass_];
- [array replaceObjectAtIndex:0 withObject:testSubClass_];
- [array removeLastObject];
- [array removeObjectAtIndex:0];
- NSUInteger expectedCount = 0U;
-#if !(GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT)
- // If we're not validating, we don't expect any logs
- [GTMUnitTestDevLog resetExpectedLogs];
- expectedCount = 2U;
-#endif // !(GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT)
- STAssertEquals([array count], expectedCount, @"should have no objects left");
-
-}
-@end
-
-@implementation GTMVCDictionaryTests
-- (void)testContainer {
- GTMValidatingDictionary *dictionary;
- dictionary = [GTMValidatingDictionary validatingDictionaryWithTarget:validator_
- selector:selector_];
- STAssertNotNil(dictionary, @"should be valid");
-
- dictionary = [[[GTMValidatingDictionary alloc] initValidatingWithTarget:validator_
- selector:selector_] autorelease];
- STAssertNotNil(dictionary, @"should be valid");
-
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestClass failed container verification for GTMValidatingDictionary .*"];
- [dictionary setObject:testClass_ forKey:@"Key1"];
- [dictionary setObject:testSubClass_ forKey:@"Key2"];
- STAssertEquals([dictionary objectForKey:@"Key2"], testSubClass_, @"");
- STAssertNotNil([dictionary keyEnumerator], @"");
-
- [dictionary removeObjectForKey:@"Key2"];
- [dictionary removeObjectForKey:@"Key1"];
- STAssertEquals([dictionary count], (NSUInteger)0, @"should have no objects left");
-
- // So we get full code coverage
- [testSubClass_ foo];
-#if !(GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT)
- // If we're not validating, we don't expect any logs
- [GTMUnitTestDevLog resetExpectedLogs];
-#endif // !(GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT)
-}
-@end
-
-@implementation GTMVCSetTests
-- (void)testContainer {
- GTMValidatingSet *set;
- set = [GTMValidatingSet validatingSetWithTarget:validator_
- selector:selector_];
- STAssertNotNil(set, @"should be valid");
-
- set = [[[GTMValidatingSet alloc] initValidatingWithTarget:validator_
- selector:selector_] autorelease];
- STAssertNotNil(set, @"should be valid");
-
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestClass failed container verification for GTMValidatingSet .*"];
- [set addObject:testClass_];
- [set addObject:testSubClass_];
- STAssertEqualObjects([set member:testSubClass_], testSubClass_, @"");
- STAssertNotNil([set objectEnumerator], @"");
-
- [set removeObject:testClass_];
- [set removeObject:testSubClass_];
-#if !(GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT)
- // If we're not validating, we don't expect any logs
- [GTMUnitTestDevLog resetExpectedLogs];
-#endif // !(GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT)
- STAssertEquals([set count], (NSUInteger)0, @"should have no objects left");
-}
-@end
-
-@implementation GTMValidateContainerTests
-- (void)testValidatingContainers {
- NSDictionary *homogenousDict = [NSDictionary dictionaryWithObjectsAndKeys:
- [GTMVCTestSubClass instance], @"key1",
- [GTMVCTestSubClass instance], @"key2",
- nil];
- NSDictionary *heterogenousDict = [NSDictionary dictionaryWithObjectsAndKeys:
- [GTMVCTestClass instance], @"key1",
- [GTMVCTestSubClass instance], @"key2",
- nil];
-
- // Test bad container
- [GTMUnitTestDevLog expectPattern:@"container does not respont to -objectEnumerator: .*"];
- _GTMValidateContainerContainsKindOfClass([NSString string],
- [GTMVCTestSubClass class]);
-
- _GTMValidateContainerContainsKindOfClass(homogenousDict,
- [GTMVCTestSubClass class]);
- _GTMValidateContainerContainsKindOfClass(heterogenousDict,
- [GTMVCTestClass class]);
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestClass failed container verification for .*"];
- _GTMValidateContainerContainsKindOfClass(heterogenousDict,
- [GTMVCTestSubClass class]);
-
- _GTMValidateContainerContainsMemberOfClass(homogenousDict,
- [GTMVCTestSubClass class]);
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestSubClass failed container verification for .*"];
- _GTMValidateContainerContainsMemberOfClass(heterogenousDict,
- [GTMVCTestClass class]);
-
- _GTMValidateContainerConformsToProtocol(homogenousDict,
- @protocol(GTMVCTestProtocol));
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestClass failed container verification for .*"];
- _GTMValidateContainerConformsToProtocol(heterogenousDict,
- @protocol(GTMVCTestProtocol));
-
- _GTMValidateContainerItemsRespondToSelector(homogenousDict,
- @selector(foo));
- [GTMUnitTestDevLog expectPattern:@"GTMVCTestClass failed container verification for .*"];
- _GTMValidateContainerItemsRespondToSelector(heterogenousDict,
- @selector(foo));
-#if !(GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT)
- // If we're not validating, we don't expect any logs
- [GTMUnitTestDevLog resetExpectedLogs];
-#endif // !(GTM_CONTAINERS_VALIDATE && GTM_CONTAINERS_VALIDATION_FAILED_LOG && !GTM_CONTAINERS_VALIDATION_FAILED_ASSERT)
-}
-@end