@@ -35,23 +35,6 @@ class WeakBoxTests: XCTestCase {
3535 }
3636 }
3737
38- func testWeakBox_ReleaseWeakRef( ) {
39- let expectation = self . expectation ( description: " testWeakBoxRetain " )
40-
41- var testObject : DeinitTest ? = DeinitTest ( value: " Hello " )
42- testObject? . deinitClosure = {
43- expectation. fulfill ( )
44- }
45-
46- let weakBox = WeakBox ( testObject)
47-
48- testObject = nil
49-
50- XCTAssertNil ( weakBox. underlying)
51-
52- wait ( for: [ expectation] , timeout: 1.0 )
53- }
54-
5538 func testWeakBox_ContainsStrongRef( ) {
5639 let weakBox = WeakBox ( strongValue)
5740
@@ -72,15 +55,13 @@ class WeakBoxTests: XCTestCase {
7255class WeakSetTests : XCTestCase {
7356 func testAllObject( ) {
7457 let testObjects : [ NSString ] = [ " Hello " ]
75-
7658 let weakSet = WeakSet < NSString > ( testObjects)
7759
7860 XCTAssertEqual ( weakSet. allObjects, testObjects)
7961 }
8062
8163 func testCount( ) {
8264 let testObjects : [ NSString ] = [ " Hello " ]
83-
8465 let weakSet = WeakSet < NSString > ( testObjects)
8566
8667 XCTAssertEqual ( weakSet. count, testObjects. count)
@@ -94,11 +75,8 @@ class WeakSetTests: XCTestCase {
9475 XCTAssertEqual ( weakSet. count, testObjects. count)
9576
9677 weakSet. update ( newObject)
97-
9878 XCTAssertEqual ( weakSet. count, testObjects. count + 1 )
99-
10079 weakSet. update ( newObject)
101-
10280 XCTAssertEqual ( weakSet. count, testObjects. count + 1 )
10381 }
10482
@@ -109,9 +87,7 @@ class WeakSetTests: XCTestCase {
10987 var weakSet = WeakSet < NSString > ( testObjects)
11088
11189 XCTAssertEqual ( weakSet. count, testObjects. count)
112-
11390 weakSet. remove ( testObject)
114-
11591 XCTAssertTrue ( weakSet. isEmpty)
11692 }
11793
@@ -120,11 +96,39 @@ class WeakSetTests: XCTestCase {
12096 let testObjects : [ NSString ] = [ testObject]
12197
12298 var weakSet = WeakSet < NSString > ( testObjects)
123-
12499 XCTAssertEqual ( weakSet. count, testObjects. count)
125-
126100 weakSet. removeAll ( )
101+ XCTAssertTrue ( weakSet. isEmpty)
102+ }
103+
104+ func testInsertingEqualObjects( ) {
105+ let firstObject : NSString = " Hello "
106+ let secondObject : NSString = " Hello "
127107
108+ var weakSet = WeakSet < NSString > ( [ firstObject] )
109+ XCTAssertEqual ( weakSet. count, 1 )
110+ weakSet. update ( secondObject)
111+ XCTAssertEqual ( weakSet. count, 1 )
112+ }
113+
114+ func testRemovingEqualObjects( ) {
115+ let firstObject : NSString = " Hello "
116+ let secondObject : NSString = " Hello "
117+
118+ var weakSet = WeakSet < NSString > ( [ firstObject] )
119+ XCTAssertEqual ( weakSet. count, 1 )
120+ weakSet. remove ( secondObject)
128121 XCTAssertTrue ( weakSet. isEmpty)
129122 }
123+
124+ func testInitializingWithDuplicateObjects( ) {
125+ let firstObject : NSString = " Hello "
126+ let secondObject : NSString = " Hello "
127+ let thirdObject : NSString = " World "
128+
129+ let weakSet = WeakSet < NSString > ( [ firstObject, secondObject, thirdObject] )
130+ XCTAssertEqual ( weakSet. count, 2 )
131+ XCTAssertTrue ( weakSet. contains { $0 == " Hello " } )
132+ XCTAssertTrue ( weakSet. contains { $0 == " World " } )
133+ }
130134}
0 commit comments