// // MakeAuthorizationHeaderUseCaseTests.swift // APIServiceTests // // Created by Javier Cicchelli on 04/12/2022. // Copyright © 2022 Röck+Cöde. All rights reserved. // import XCTest @testable import APIService final class MakeAuthorizationHeaderUseCaseTests: XCTestCase { // MARK: Properties private let makeAuthHeader = MakeAuthorizationHeaderUseCase() private var username: String! private var password: String! private var result: [String: String]! // MARK: Test cases func test_withCorrectUsernameAndPassword() throws { // GIVEN username = "username" password = "password" // WHEN result = try makeAuthHeader(username: username, password: password) // THEN XCTAssertEqual(result.count, 1) XCTAssertEqual(result[.Header.Keys.authorization], "Basic dXNlcm5hbWU6cGFzc3dvcmQ=") } func test_withEmptyUsername() throws { // GIVEN username = "" password = "password" // WHEN & THEN XCTAssertThrowsError(try makeAuthHeader(username: username, password: password)) { error in XCTAssertEqual(error as? MakeAuthorizationHeaderError, .usernameIsEmpty) } } func test_withEmptyPassword() throws { // GIVEN username = "username" password = "" // WHEN & THEN XCTAssertThrowsError(try makeAuthHeader(username: username, password: password)) { error in XCTAssertEqual(error as? MakeAuthorizationHeaderError, .passwordIsEmpty) } } func test_withEmptyUsernameAndPassword() throws { // GIVEN username = "" password = "" // WHEN & THEN XCTAssertThrowsError(try makeAuthHeader(username: username, password: password)) { error in XCTAssertEqual(error as? MakeAuthorizationHeaderError, .usernameIsEmpty) } } }