diff --git a/EmployeeDirectoryTests/EmployeeDirectoryTests.swift b/EmployeeDirectoryTests/EmployeeDirectoryTests.swift index 3f7bcdd..4bccbfb 100644 --- a/EmployeeDirectoryTests/EmployeeDirectoryTests.swift +++ b/EmployeeDirectoryTests/EmployeeDirectoryTests.swift @@ -6,17 +6,44 @@ // import Testing +import XCTest + @testable import EmployeeDirectory struct EmployeeDirectoryTests { - + @Test func getEmployeesValid() async throws { - let employees = try await EmployeeService().getEmployees() - #expect(employees.count == 11) + do { + let wrapper = try await EmployeeService().getEmployees(.production) + #expect(wrapper.employees.count == 11) + } catch { + XCTFail("Unexpected error: \(error)") + } } - @Test func getEmployeesInValid() async throws { - let employees = try await EmployeeService().getEmployees() - #expect(employees.count == 11) + @Test func getEmployeesMalformed() async throws { + do { + let wrapper = try await EmployeeService().getEmployees(.malformed) + XCTFail("Expected to throw, but got \(wrapper.employees.count) employees") + } catch let error as NetworkServiceError { + switch error { + case .invalidResponse: + XCTAssertTrue(true, "Correctly threw invalidResponse error") + default: + XCTFail("Expected NetworkServiceError.invalidResponse, but got \(error)") + } + } catch { + XCTFail("Unexpected error: \(error)") + } } + + @Test func getEmployeesEmpty() async throws { + do { + let wrapper = try await EmployeeService().getEmployees(.empty) + #expect(wrapper.employees.count == 0) + } catch { + XCTFail("Unexpected error: \(error)") + } + } + }