TwitterNetworkLayerTests/NSDictionary+TNLAdditionsTest.m (28 lines of code) (raw):
//
// NSDictionary+TNLAdditionsTest.m
// TwitterNetworkLayer
//
// Created on 10/27/14.
// Copyright © 2020 Twitter. All rights reserved.
//
#import "NSDictionary+TNLAdditions.h"
@import XCTest;
@interface NSDictionary_TNLAdditionsTest : XCTestCase
@end
@implementation NSDictionary_TNLAdditionsTest
- (void)testCaseInsensitiveKeyMethods
{
NSSet *set;
NSMutableDictionary *d = [@{ @"one" : @"1", @"TWO" : @"2", @"tHrEe" : @"3", @"three" : @"3...again" } mutableCopy];
// Objects for key
XCTAssertEqual(0UL, [d tnl_objectsForCaseInsensitiveKey:@"dummy"].count);
XCTAssertEqualObjects(@[ @"1" ], [d tnl_objectsForCaseInsensitiveKey:@"ONE"]);
XCTAssertEqualObjects(@[ @"1" ], [d tnl_objectsForCaseInsensitiveKey:@"one"]);
XCTAssertEqualObjects(@[ @"1" ], [d tnl_objectsForCaseInsensitiveKey:@"oNe"]);
XCTAssertEqualObjects(@[ @"2" ], [d tnl_objectsForCaseInsensitiveKey:@"two"]);
set = [NSSet setWithArray:@[ @"3" , @"3...again" ]];
XCTAssertEqualObjects(set, [NSSet setWithArray:[d tnl_objectsForCaseInsensitiveKey:@"THREE"]]);
// Keys for key
set = [NSSet setWithArray:@[ @"tHrEe", @"three" ]];
XCTAssertEqualObjects(set, [d tnl_keysMatchingCaseInsensitiveKey:@"THREE"]);
XCTAssertEqualObjects(@[@"one"], [d tnl_keysMatchingCaseInsensitiveKey:@"ONE"].allObjects);
XCTAssertEqualObjects(@[@"TWO"], [d tnl_keysMatchingCaseInsensitiveKey:@"two"].allObjects);
XCTAssertEqual(0UL, [d tnl_keysMatchingCaseInsensitiveKey:@"dummy"].count);
// Set
[d tnl_setObject:@1 forCaseInsensitiveKey:@"ONE"];
XCTAssertEqualObjects(@[@"ONE"], [d tnl_keysMatchingCaseInsensitiveKey:@"one"].allObjects);
XCTAssertEqualObjects(@[ @1 ], [d tnl_objectsForCaseInsensitiveKey:@"one"]);
// Remove
[d tnl_removeObjectsForCaseInsensitiveKey:@"THREE"];
XCTAssertEqual(0UL, [d tnl_objectsForCaseInsensitiveKey:@"three"].count);
}
@end