Separate bonjour concerns in PrinterRequestManager into BonjourBrowser, add unit test for BonjourBrowser
This commit is contained in:
54
SoyuzTests/BonjourBrowserTests.swift
Normal file
54
SoyuzTests/BonjourBrowserTests.swift
Normal file
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// BonjourBrowserTests.swift
|
||||
// SoyuzTests
|
||||
//
|
||||
// Created by maddiefuzz on 3/24/23.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
import Network
|
||||
import Combine
|
||||
@testable import Soyuz
|
||||
|
||||
class SoyuzBonjourBrowserTests: XCTestCase {
|
||||
var bonjourBrowser: BonjourBrowser?
|
||||
var bonjourListener: NWListener?
|
||||
var cancellable: AnyCancellable?
|
||||
|
||||
override func setUp() {
|
||||
do {
|
||||
bonjourListener = try NWListener(using: .tcp, on: .http)
|
||||
bonjourListener!.service = NWListener.Service(name: "Test", type: "_xctest._tcp")
|
||||
|
||||
bonjourListener!.newConnectionHandler = { newConnection in
|
||||
return
|
||||
}
|
||||
} catch {
|
||||
print("Error: \(error)")
|
||||
}
|
||||
bonjourBrowser = BonjourBrowser(browser: NWBrowser(for: .bonjour(type: "_xctest._tcp", domain: "local."), using: .tcp))
|
||||
}
|
||||
|
||||
func testBonjourDiscoveredItemsNotNil() {
|
||||
guard let browser = bonjourBrowser else {
|
||||
XCTAssert(false)
|
||||
return
|
||||
}
|
||||
|
||||
let expectation = XCTestExpectation(description: "BonjourBrowser publishes network services")
|
||||
|
||||
cancellable = browser.$NDEngineResults
|
||||
.dropFirst()
|
||||
.sink(receiveValue: { newValue in
|
||||
if newValue.count > 0 {
|
||||
expectation.fulfill()
|
||||
}
|
||||
})
|
||||
|
||||
bonjourListener!.start(queue: DispatchQueue.main)
|
||||
wait(for: [expectation], timeout: 2)
|
||||
XCTAssert(!browser.NDEngineResults.isEmpty)
|
||||
XCTAssertEqual(browser.NDEngineResults.count, 1)
|
||||
}
|
||||
|
||||
}
|
@@ -14,20 +14,20 @@ class PrinterRequestManagerTests: XCTestCase {
|
||||
|
||||
var testBonjourListener: NWListener?
|
||||
|
||||
override func setUp() {
|
||||
printerRequestManager = PrinterRequestManager(browser: NWBrowser(for: .bonjour(type: "_http._tcp", domain: "local."), using: .tcp))
|
||||
|
||||
// Set up test bonjour server
|
||||
//let parameters = NWParameters(tls: .none, tcp: NWListener.)
|
||||
do {
|
||||
testBonjourListener = try NWListener(using: .tcp, on: .http)
|
||||
testBonjourListener!.start(queue: DispatchQueue.main)
|
||||
} catch {
|
||||
print("Error: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
func testBonjourDiscoveredItemsNotNil() {
|
||||
XCTAssertNotNil(printerRequestManager?.nwBrowserDiscoveredItems)
|
||||
}
|
||||
// override func setUp() {
|
||||
// printerRequestManager = PrinterRequestManager(browser: NWBrowser(for: .bonjour(type: "_http._tcp", domain: "local."), using: .tcp))
|
||||
//
|
||||
// // Set up test bonjour server
|
||||
// //let parameters = NWParameters(tls: .none, tcp: NWListener.)
|
||||
// do {
|
||||
// testBonjourListener = try NWListener(using: .tcp, on: .http)
|
||||
// testBonjourListener!.start(queue: DispatchQueue.main)
|
||||
// } catch {
|
||||
// print("Error: \(error)")
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// func testBonjourDiscoveredItemsNotNil() {
|
||||
// XCTAssertNotNil(printerRequestManager?.nwBrowserDiscoveredItems)
|
||||
// }
|
||||
}
|
||||
|
Reference in New Issue
Block a user