// // DeleteItemEndpoint+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 DeleteItemEndpoint_InitTests: XCTestCase { // MARK: Properties private let itemId = UUID().uuidString private var endpoint: DeleteItemEndpoint! 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, .delete) XCTAssertEqual(endpoint.credentials.username, username) XCTAssertEqual(endpoint.credentials.password, password) XCTAssertEqual(endpoint.headers, [:]) 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, .delete) XCTAssertEqual(endpoint.credentials.username, username) XCTAssertEqual(endpoint.credentials.password, password) XCTAssertEqual(endpoint.headers, [:]) XCTAssertEqual(endpoint.authorizationHeader, [:]) XCTAssertNil(endpoint.body) } }