Skip to content

Commit 0ae49d4

Browse files
authored
Merge pull request #2036 from khashiguchi/master
Implement Host.isEqual and Test
2 parents b541bae + 1ea949b commit 0ae49d4

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

Foundation/Host.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ open class Host: NSObject {
7575
}
7676

7777
open func isEqual(to aHost: Host) -> Bool {
78-
return false
78+
if self === aHost { return true }
79+
return addresses.firstIndex { aHost.addresses.contains($0) } != nil
7980
}
8081

8182
internal func _resolveCurrent() {

TestFoundation/TestHost.swift

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class TestHost: XCTestCase {
1212
static var allTests: [(String, (TestHost) -> () throws -> Void)] {
1313
return [
1414
("test_addressesDoNotGrow", test_addressesDoNotGrow),
15+
("test_isEqual", test_isEqual)
1516
]
1617
}
1718

@@ -32,5 +33,21 @@ class TestHost: XCTestCase {
3233
let swiftAddressesSecond = swift.addresses
3334
XCTAssertEqual(swiftAddressesSecond.count, swiftAddressesFirst.count)
3435
}
36+
37+
func test_isEqual() {
38+
let host0 = Host(address: "8.8.8.8")
39+
let host1 = Host(address: "8.8.8.8")
40+
XCTAssertTrue(host0.isEqual(to: host1))
41+
42+
let host2 = Host(address: "8.8.8.9")
43+
XCTAssertFalse(host0.isEqual(to: host2))
44+
45+
let swift0 = Host(name: "swift.org")
46+
let swift1 = Host(name: "swift.org")
47+
XCTAssertTrue(swift0.isEqual(to: swift1))
48+
49+
let google = Host(name: "google.com")
50+
XCTAssertFalse(swift0.isEqual(to: google))
51+
}
3552
}
3653

0 commit comments

Comments
 (0)