@@ -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
5681final 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