- Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy pathTestNSPredicate.swift
80 lines (64 loc) · 2.84 KB
/
TestNSPredicate.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
classTestNSPredicate:XCTestCase{
func test_BooleanPredicate(){
lettruePredicate=NSPredicate(value:true)
letfalsePredicate=NSPredicate(value:false)
XCTAssertTrue(truePredicate.evaluate(with:NSObject()))
XCTAssertFalse(falsePredicate.evaluate(with:NSObject()))
}
func test_BlockPredicateWithoutVariableBindings(){
letisNSStringPredicate=NSPredicate{(object, bindings)->Boolin
return object is NSString
}
XCTAssertTrue(isNSStringPredicate.evaluate(with:NSString()))
XCTAssertFalse(isNSStringPredicate.evaluate(with:NSArray()))
}
letlengthLessThanThreePredicate=NSPredicate{(obj, bindings)->Boolin
return(obj as!String).utf16.count <3
}
letstartArray=["1","12","123","1234"]
letexpectedArray=["1","12"]
func test_filterNSArray(){
letfilteredArray=NSArray(array: startArray).filtered(using: lengthLessThanThreePredicate).map{ $0 as!String}
XCTAssertEqual(expectedArray, filteredArray)
}
func test_filterNSMutableArray(){
letarray=NSMutableArray(array: startArray)
array.filter(using: lengthLessThanThreePredicate)
XCTAssertEqual(NSArray(array: expectedArray), array)
}
func test_filterNSSet(){
letset=NSSet(array: startArray)
letfilteredSet= set.filtered(using: lengthLessThanThreePredicate)
XCTAssertEqual(Set(expectedArray), filteredSet)
}
func test_filterNSMutableSet(){
letset=NSMutableSet(array:["1","12","123","1234"])
set.filter(using: lengthLessThanThreePredicate)
XCTAssertEqual(Set(expectedArray),Set(set.allObjects.map{ $0 as!String}))
}
func test_filterNSOrderedSet(){
letorderedSet=NSOrderedSet(array: startArray)
letfilteredOrderedSet= orderedSet.filtered(using: lengthLessThanThreePredicate)
XCTAssertEqual(NSOrderedSet(array: expectedArray), filteredOrderedSet)
}
func test_filterNSMutableOrderedSet(){
letorderedSet=NSMutableOrderedSet()
orderedSet.addObjects(from: startArray)
orderedSet.filter(using: lengthLessThanThreePredicate)
letexpectedOrderedSet=NSMutableOrderedSet()
expectedOrderedSet.addObjects(from: expectedArray)
XCTAssertEqual(expectedOrderedSet, orderedSet)
}
func test_copy(){
letpredicate=NSPredicate(value:true)
XCTAssert(predicate.isEqual(predicate.copy()))
}
}