102 lines
3.5 KiB
Swift
102 lines
3.5 KiB
Swift
//
|
|
// Copyright Amazon.com Inc. or its affiliates.
|
|
// All Rights Reserved.
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
import XCTest
|
|
@testable import AWSAPICategoryPlugin
|
|
@testable import Amplify
|
|
@testable import AmplifyTestCommon
|
|
@testable import AWSAPICategoryPluginTestCommon
|
|
|
|
extension GraphQLConnectionScenario3Tests {
|
|
|
|
func createPost(id: String = UUID().uuidString, title: String) -> Post3? {
|
|
let post = Post3(id: id, title: title)
|
|
var result: Post3?
|
|
let requestInvokedSuccessfully = expectation(description: "request completed")
|
|
Amplify.API.mutate(request: .create(post)) { event in
|
|
switch event {
|
|
case .success(let data):
|
|
switch data {
|
|
case .success(let post):
|
|
result = post
|
|
default:
|
|
XCTFail("Could not get data back")
|
|
}
|
|
requestInvokedSuccessfully.fulfill()
|
|
case .failure(let error):
|
|
XCTFail("Failed \(error)")
|
|
}
|
|
}
|
|
wait(for: [requestInvokedSuccessfully], timeout: TestCommonConstants.networkTimeout)
|
|
return result
|
|
}
|
|
|
|
func createComment(id: String = UUID().uuidString, postID: String, content: String) -> Comment3? {
|
|
let comment = Comment3(id: id, postID: postID, content: content)
|
|
var result: Comment3?
|
|
let requestInvokedSuccessfully = expectation(description: "request completed")
|
|
Amplify.API.mutate(request: .create(comment)) { event in
|
|
switch event {
|
|
case .success(let data):
|
|
switch data {
|
|
case .success(let comment):
|
|
result = comment
|
|
default:
|
|
XCTFail("Could not get data back")
|
|
}
|
|
requestInvokedSuccessfully.fulfill()
|
|
case .failure(let error):
|
|
XCTFail("Failed \(error)")
|
|
}
|
|
}
|
|
wait(for: [requestInvokedSuccessfully], timeout: TestCommonConstants.networkTimeout)
|
|
return result
|
|
}
|
|
|
|
func mutatePost(post: Post3) -> Post3? {
|
|
var result: Post3?
|
|
let requestInvokedSuccessfully = expectation(description: "request completed")
|
|
_ = Amplify.API.mutate(request: .update(post)) { event in
|
|
switch event {
|
|
case .success(let data):
|
|
switch data {
|
|
case .success(let post):
|
|
result = post
|
|
default:
|
|
XCTFail("Could not get data back")
|
|
}
|
|
requestInvokedSuccessfully.fulfill()
|
|
case .failure(let error):
|
|
XCTFail("Failed \(error)")
|
|
}
|
|
}
|
|
wait(for: [requestInvokedSuccessfully], timeout: TestCommonConstants.networkTimeout)
|
|
return result
|
|
}
|
|
|
|
func deletePost(post: Post3) -> Post3? {
|
|
var result: Post3?
|
|
let requestInvokedSuccessfully = expectation(description: "request completed")
|
|
_ = Amplify.API.mutate(request: .delete(post)) { event in
|
|
switch event {
|
|
case .success(let data):
|
|
switch data {
|
|
case .success(let post):
|
|
result = post
|
|
default:
|
|
XCTFail("Could not get data back")
|
|
}
|
|
requestInvokedSuccessfully.fulfill()
|
|
case .failure(let error):
|
|
XCTFail("Failed \(error)")
|
|
}
|
|
}
|
|
wait(for: [requestInvokedSuccessfully], timeout: TestCommonConstants.networkTimeout)
|
|
return result
|
|
}
|
|
}
|