2020-08-09 10:04:43 +02:00
|
|
|
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
|
|
|
|
import XCTest
|
|
|
|
import Combine
|
|
|
|
import CombineExpectations
|
2020-08-31 20:57:02 +02:00
|
|
|
@testable import ServiceLayer
|
|
|
|
@testable import ServiceLayerMocks
|
2020-08-09 10:04:43 +02:00
|
|
|
|
|
|
|
class AuthenticationServiceTests: XCTestCase {
|
2020-08-09 13:27:38 +02:00
|
|
|
func testAuthentication() throws {
|
2020-09-01 09:33:49 +02:00
|
|
|
let sut = AuthenticationService(environment: .mock())
|
2020-08-09 10:04:43 +02:00
|
|
|
let instanceURL = URL(string: "https://mastodon.social")!
|
2020-08-09 13:27:38 +02:00
|
|
|
let appAuthorizationRecorder = sut.authorizeApp(instanceURL: instanceURL).record()
|
|
|
|
let appAuthorization = try wait(for: appAuthorizationRecorder.next(), timeout: 1)
|
2020-08-09 10:04:43 +02:00
|
|
|
|
2020-08-09 13:27:38 +02:00
|
|
|
XCTAssertEqual(appAuthorization.clientId, "AUTHORIZATION_CLIENT_ID_STUB_VALUE")
|
|
|
|
XCTAssertEqual(appAuthorization.clientSecret, "AUTHORIZATION_CLIENT_SECRET_STUB_VALUE")
|
2020-08-09 10:04:43 +02:00
|
|
|
|
2020-08-09 13:27:38 +02:00
|
|
|
let accessTokenRecorder = sut.authenticate(
|
|
|
|
instanceURL: instanceURL,
|
|
|
|
appAuthorization: appAuthorization)
|
|
|
|
.record()
|
|
|
|
let accessToken = try wait(for: accessTokenRecorder.next(), timeout: 1)
|
2020-08-09 10:04:43 +02:00
|
|
|
|
2020-08-09 13:27:38 +02:00
|
|
|
XCTAssertEqual(accessToken.accessToken, "ACCESS_TOKEN_STUB_VALUE")
|
2020-08-09 10:04:43 +02:00
|
|
|
}
|
|
|
|
}
|