amplify-swift/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/hierarchical-state-machine-.../Support/Counter+Event.swift

58 lines
1.4 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import Foundation
@testable import AWSCognitoAuthPlugin
extension Counter {
struct Event: StateMachineEvent {
enum EventType {
case increment
case decrement
case adjustBy(_ value: Int = 0)
case set(Int)
case incrementAndDoActions([Action])
}
let id: String
let eventType: EventType
let source: String
let time: Date?
let data: Data?
// Computed properties
var type: String {
switch eventType {
case .adjustBy(let value):
return "adjustBy.\(value)"
case .increment:
return "increment"
case .decrement:
return "decrement"
case .set(let value):
return "set.\(value)"
case .incrementAndDoActions:
return "incrementAndDoActions"
}
}
init(
id: String,
eventType: EventType,
source: String = "test",
time: Date? = nil,
data: Data? = nil
) {
self.id = id
self.eventType = eventType
self.source = source
self.time = time
self.data = data
}
}
}