Skip to content
This repository was archived by the owner on Jun 9, 2019. It is now read-only.

Commit 10cea7b

Browse files
committed
Fix more unit tests.
Some old set based logic was causing the tests to fail due to unguarunteed order. Replaced with an array which should still offer the same required performance.
1 parent 1c50caa commit 10cea7b

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

ResourceKit/Model/RKType.m

+5-9
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
@implementation RKType {
2929
__strong NSString *_code;
30-
__strong NSMutableSet <RKResource *> *_resources;
30+
__strong NSMutableArray <RKResource *> *_resources;
3131
}
3232

3333
#pragma mark - Initialisers
@@ -36,7 +36,7 @@ + (nonnull instancetype)withCode:(nonnull NSString *)code
3636
{
3737
RKType *type = RKType.new;
3838
type->_code = code.copy;
39-
type->_resources = NSMutableSet.new;
39+
type->_resources = NSMutableArray.new;
4040
return type;
4141
}
4242

@@ -55,7 +55,7 @@ - (NSString *)code
5555

5656
- (NSArray<RKResource *> *)allResources
5757
{
58-
return _resources.allObjects;
58+
return _resources.copy;
5959
}
6060

6161

@@ -93,15 +93,11 @@ - (void)addResource:(nonnull RKResource *)resource replacingDuplicates:(BOOL)rep
9393
return;
9494
}
9595

96-
NSSet <RKResource *> *currentResources = [_resources objectsPassingTest:^BOOL(RKResource *obj, BOOL *stop) {
97-
return [obj isEqual:resource];
98-
}];
99-
100-
if (!replaceDuplicates && currentResources.count > 0) {
96+
if (!replaceDuplicates && [_resources containsObject:resource]) {
10197
return;
10298
}
10399

104-
[_resources minusSet:currentResources];
100+
[_resources removeObject:resource];
105101
[resource switchTypeTo:self];
106102
[_resources addObject:resource];
107103
}

ResourceKitTests/RKResourceManagerTests.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ - (void)testResourceManager_resourcesWithValidType_returnsExpectedResult
187187

188188
NSArray <RKResource *> *result = [RKResourceManager.sharedManager resourcesWithType:[RKType withCode:@"UNIT"]];
189189
XCTAssertEqual(result.count, 2);
190-
XCTAssertEqualObjects(result.firstObject.name, @"Test Resource 2");
190+
XCTAssertEqualObjects(result.firstObject.name, @"Test Resource 1");
191191
}
192192

193193
- (void)testResourceManager_resourcesWithInvalidType_returnsNilResult

0 commit comments

Comments
 (0)