aboutsummaryrefslogtreecommitdiff
path: root/Tests/SwiftGopherClientTests
diff options
context:
space:
mode:
authorNavan Chauhan <navanchauhan@gmail.com>2024-07-28 14:55:56 -0600
committerNavan Chauhan <navanchauhan@gmail.com>2024-07-28 14:55:56 -0600
commit06649f47a8b1d65590ee8a8f78668d064e92f56b (patch)
treed3566b5e9bcc233864407e2389c51fc6b9657e3e /Tests/SwiftGopherClientTests
parentd983c019c74c75eb18e68dfc6d31c5e4ddb2f6f6 (diff)
rename and capitalize
Diffstat (limited to 'Tests/SwiftGopherClientTests')
-rw-r--r--Tests/SwiftGopherClientTests/SwiftGopherClientTests.swift89
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)
+ }
+}