amplify-swift/AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/hierarchical-state-machine-.../CombinedStateTests.swift

60 lines
1.6 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import XCTest
@testable import AWSCognitoAuthPlugin
class CombinedStateTests: XCTestCase {
func testSimpleCombinedState() {
let starting = ColorCounter(
color: .red,
counter: Counter(value: 0),
hasTriggered: false
)
let ending = ColorCounter.Resolver().logging().resolve(
oldState: starting,
byApplying: Color.Event.next
)
let expected = ColorCounter(
color: .orange,
counter: Counter(value: 0),
hasTriggered: false
)
XCTAssertEqual(ending.newState, expected)
}
/// As of this writing, this only tests the ColorCounter.Resolver logic, but at
/// some point, we expect to refactor the resolver logic to automatically apply
/// combined states. At that point, this will become a meaningful test of the
/// baked-in resolver's ability to automatically resolve nested/combined states
func testCombinedCanResolve() {
let starting = ColorCounter(
color: .orange,
counter: Counter(value: 2),
hasTriggered: false
)
let ending = ColorCounter.Resolver().logging().resolve(
oldState: starting,
byApplying: Color.Event.next
)
let expected = ColorCounter(
color: .yellow,
counter: Counter(value: 2),
hasTriggered: true
)
XCTAssertEqual(ending.newState, expected)
}
}