// // CreateFolderEndpoint+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 CreateFolderEndpointInitTests: XCTestCase { // MARK: Properties let itemId = UUID().uuidString var endpoint: CreateFolderEndpoint! var folderName: String! var username: String! var password: String! // MARK: Test cases func test_withItemId_someFolderName_andProperUsernameAndPassword() throws { // GIVEN folderName = "some-folder" username = "username" password = "password" // WHEN endpoint = .init( itemId: itemId, folderName: folderName, username: username, password: password ) // THEN XCTAssertEqual(endpoint.scheme, .Schemes.http) XCTAssertEqual(endpoint.host, .Hosts.default) XCTAssertEqual(endpoint.path, "/items/\(itemId)") XCTAssertEqual(endpoint.method, .post) 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="]) XCTAssertEqual(endpoint.body, "{\"name\":\"some-folder\"}".data(using: .utf8)) } func test_withItemId_someFolderName_andEmptyUsernameOrPassword() throws { // GIVEN folderName = "some-folder" username = "" password = "password" // WHEN endpoint = .init( itemId: itemId, folderName: folderName, username: username, password: password ) // THEN XCTAssertEqual(endpoint.scheme, .Schemes.http) XCTAssertEqual(endpoint.host, .Hosts.default) XCTAssertEqual(endpoint.path, "/items/\(itemId)") XCTAssertEqual(endpoint.method, .post) XCTAssertEqual(endpoint.credentials.username, username) XCTAssertEqual(endpoint.credentials.password, password) XCTAssertEqual(endpoint.headers, [.Header.Keys.contentType: .Header.Values.contentTypeJSON]) XCTAssertEqual(endpoint.authorizationHeader, [:]) XCTAssertEqual(endpoint.body, "{\"name\":\"some-folder\"}".data(using: .utf8)) } }