// // GetItemsEndpoint+InitTests.swift // APIServiceTests // // Created by Javier Cicchelli on 04/12/2022. // Copyright © 2022 Röck+Cöde. All rights reserved. // import Foundation import XCTest @testable import APIService final class GetItemsEndpointInitTests: XCTestCase { // MARK: Properties private let itemId = UUID().uuidString private var endpoint: GetItemsEndpoint! private var username: String! private var password: String! // MARK: Test cases func test_withItemId_andProperUsernameAndPassword() throws { // GIVEN username = "username" password = "password" // WHEN endpoint = .init( itemId: itemId, username: username, password: password ) // THEN XCTAssertEqual(endpoint.scheme, .Schemes.http) XCTAssertEqual(endpoint.host, .Hosts.default) XCTAssertEqual(endpoint.port, .Ports.default) XCTAssertEqual(endpoint.path, "/items/" + itemId) XCTAssertEqual(endpoint.method, .get) XCTAssertEqual(endpoint.credentials.username, username) XCTAssertEqual(endpoint.credentials.password, password) XCTAssertEqual(endpoint.headers, [.Header.Keys.contentType: .Header.Values.contentTypeJSON]) XCTAssertEqual(endpoint.authorizationHeader, [.Header.Keys.authorization: "Basic dXNlcm5hbWU6cGFzc3dvcmQ="]) XCTAssertNil(endpoint.body) } func test_withItemId_andEmptyUsernameOrPassword() throws { // GIVEN username = "" password = "password" // WHEN endpoint = .init( itemId: itemId, username: username, password: password ) // THEN XCTAssertEqual(endpoint.scheme, .Schemes.http) XCTAssertEqual(endpoint.host, .Hosts.default) XCTAssertEqual(endpoint.port, .Ports.default) XCTAssertEqual(endpoint.path, "/items/" + itemId) XCTAssertEqual(endpoint.method, .get) XCTAssertEqual(endpoint.credentials.username, username) XCTAssertEqual(endpoint.credentials.password, password) XCTAssertEqual(endpoint.headers, [.Header.Keys.contentType: .Header.Values.contentTypeJSON]) XCTAssertEqual(endpoint.authorizationHeader, [:]) XCTAssertNil(endpoint.body) } }