Skip to content

Commit fcf09d0

Browse files
committed
Add unit test for network update
1 parent 02462d4 commit fcf09d0

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

WooCommerce/WooCommerceTests/Tools/DefaultConnectivityObserver.swift

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,31 @@ final class DefaultConnectivityObserverTests: XCTestCase {
5151
// Then
5252
XCTAssertFalse(observer.isConnectivityAvailable)
5353
}
54+
55+
func test_updateListener_returns_correct_status_in_callback_closure() {
56+
// Given
57+
let network = MockNetwork(status: .satisfied, currentInterface: .wifi)
58+
let networkMonitor = MockNetworkMonitor(currentNetwork: network)
59+
let networkUpdate = MockNetwork(status: .satisfied, currentInterface: .cellular)
60+
let statusExpectation = expectation(description: "Status in callback closure")
61+
62+
// When
63+
let observer = DefaultConnectivityObserver(networkMonitor: networkMonitor)
64+
var result: ConnectivityStatus = .unknown
65+
observer.updateListener { status in
66+
result = status
67+
statusExpectation.fulfill()
68+
}
69+
networkMonitor.fakeNetworkUpdate(network: networkUpdate)
70+
71+
// Then
72+
waitForExpectations(timeout: 0.3, handler: nil)
73+
if case .reachable(let type) = result {
74+
XCTAssertEqual(type, .cellular)
75+
} else {
76+
XCTFail("Incorrect result status in callback closure")
77+
}
78+
}
5479
}
5580

5681
final class MockNetworkMonitor: NetworkMonitoring {
@@ -65,6 +90,10 @@ final class MockNetworkMonitor: NetworkMonitoring {
6590
self.currentNetwork = currentNetwork
6691
}
6792

93+
func fakeNetworkUpdate(network: NetworkMonitorable) {
94+
networkUpdateHandler?(network)
95+
}
96+
6897
func start(queue: DispatchQueue) {
6998
didStartMonitoring = true
7099
}

0 commit comments

Comments
 (0)