69 lines
2.3 KiB
Swift
69 lines
2.3 KiB
Swift
import XCTest
|
|
@testable import MacMonitor
|
|
|
|
final class MMNetworkSocketsTests: XCTestCase {
|
|
|
|
func testSocketSummaryCalculation() {
|
|
let testSockets: [[String: Any]] = [
|
|
[
|
|
"pid": 100,
|
|
"processName": "web_server",
|
|
"protocol": "TCP",
|
|
"family": "IPv4",
|
|
"localAddress": "0.0.0.0",
|
|
"localPort": 8080,
|
|
"remoteAddress": "0.0.0.0",
|
|
"remotePort": 0,
|
|
"state": "LISTEN"
|
|
],
|
|
[
|
|
"pid": 200,
|
|
"processName": "browser",
|
|
"protocol": "TCP",
|
|
"family": "IPv4",
|
|
"localAddress": "192.168.1.50",
|
|
"localPort": 54321,
|
|
"remoteAddress": "142.250.190.46",
|
|
"remotePort": 443,
|
|
"state": "ESTABLISHED"
|
|
],
|
|
[
|
|
"pid": 300,
|
|
"processName": "dns_daemon",
|
|
"protocol": "UDP",
|
|
"family": "IPv4",
|
|
"localAddress": "0.0.0.0",
|
|
"localPort": 53,
|
|
"remoteAddress": "0.0.0.0",
|
|
"remotePort": 0,
|
|
"state": "NONE"
|
|
]
|
|
]
|
|
|
|
let summary = MMNetworkSocketsProvider.calculateSocketSummary(withSocketList: testSockets)
|
|
|
|
let total = summary["socketCount"] as? Int ?? 0
|
|
let tcp = summary["tcpCount"] as? Int ?? 0
|
|
let udp = summary["udpCount"] as? Int ?? 0
|
|
let listen = summary["listenCount"] as? Int ?? 0
|
|
let established = summary["establishedCount"] as? Int ?? 0
|
|
|
|
XCTAssertEqual(total, 3)
|
|
XCTAssertEqual(tcp, 2)
|
|
XCTAssertEqual(udp, 1)
|
|
XCTAssertEqual(listen, 1)
|
|
XCTAssertEqual(established, 1)
|
|
}
|
|
|
|
func testLiveNetworkSocketsProvider() throws {
|
|
let provider = MMNetworkSocketsProvider()
|
|
XCTAssertEqual(provider.domain, .network)
|
|
XCTAssertEqual(provider.providerIdentifier, "com.i3omb.macmonitor.telemetry.network.sockets")
|
|
|
|
let sample = try provider.sampleTelemetry()
|
|
XCTAssertNotNil(sample)
|
|
XCTAssertNotNil(sample["socketCount"])
|
|
XCTAssertNotNil(sample["sockets"])
|
|
}
|
|
}
|