my-files-sample/Libraries/Tests/APIServiceTests/Cases/Use Cases/MakeAuthorizationHeaderUseCaseTests.swift

74 lines
2.0 KiB
Swift
Raw Permalink Normal View History

//
// 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)
}
}
}