diff options
author | Navan Chauhan <navanchauhan@gmail.com> | 2024-07-28 14:55:56 -0600 |
---|---|---|
committer | Navan Chauhan <navanchauhan@gmail.com> | 2024-07-28 14:55:56 -0600 |
commit | 06649f47a8b1d65590ee8a8f78668d064e92f56b (patch) | |
tree | d3566b5e9bcc233864407e2389c51fc6b9657e3e /Tests/SwiftGopherClientTests/SwiftGopherClientTests.swift | |
parent | d983c019c74c75eb18e68dfc6d31c5e4ddb2f6f6 (diff) |
rename and capitalize
Diffstat (limited to 'Tests/SwiftGopherClientTests/SwiftGopherClientTests.swift')
-rw-r--r-- | Tests/SwiftGopherClientTests/SwiftGopherClientTests.swift | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Tests/SwiftGopherClientTests/SwiftGopherClientTests.swift b/Tests/SwiftGopherClientTests/SwiftGopherClientTests.swift new file mode 100644 index 0000000..2f559cd --- /dev/null +++ b/Tests/SwiftGopherClientTests/SwiftGopherClientTests.swift @@ -0,0 +1,89 @@ +// +// swiftGopherClientTests.swift +// +// +// Created by Navan Chauhan on 12/12/23. +// + +import NIO +import XCTest + +@testable import SwiftGopherClient + +final class GopherClientTests: XCTestCase { + + var client: GopherClient! + + override func setUp() { + super.setUp() + client = GopherClient() + } + + override func tearDown() { + client = nil + super.tearDown() + } + + func testInitialization() { + XCTAssertNotNil(client, "GopherClient should be initialized successfully") + } + + func testSendRequestCompletion() { + let expectation = XCTestExpectation(description: "Send request completion") + + client.sendRequest(to: "gopher.navan.dev", message: "\r\n") { result in + switch result { + case .success(let items): + XCTAssertFalse(items.isEmpty, "Response should contain gopher items") + case .failure(let error): + XCTFail("Request failed with error: \(error)") + } + expectation.fulfill() + } + + wait(for: [expectation], timeout: 10.0) + } + + @available(iOS 13.0, macOS 10.15, *) + func testSendRequestAsync() async throws { + do { + let items = try await client.sendRequest(to: "gopher.navan.dev", message: "\r\n") + XCTAssertFalse(items.isEmpty, "Response should contain gopher items") + } catch { + XCTFail("Async request failed with error: \(error)") + } + } + + func testInvalidHost() { + let expectation = XCTestExpectation(description: "Invalid host request") + + client.sendRequest(to: "invalid.host.example", message: "") { result in + switch result { + case .success: + XCTFail("Request should fail for invalid host") + case .failure: + // Expected failure + break + } + expectation.fulfill() + } + + wait(for: [expectation], timeout: 10.0) + } + + func testCustomPort() { + let expectation = XCTestExpectation(description: "Custom port request") + + client.sendRequest(to: "gopher.navan.dev", port: 70, message: "\r\n") { result in + switch result { + case .success(let items): + XCTAssertFalse(items.isEmpty, "Response should contain gopher items") + case .failure(let error): + XCTFail("Request failed with error: \(error)") + } + expectation.fulfill() + } + + wait(for: [expectation], timeout: 10.0) + } +} |