2013
}
2014
2016
>
s.CreateWorkflow(
2017
>
rand.Int63(),
2018
>
enumsspb.WORKFLOW_EXECUTION_STATE_CREATED,
2019
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
2020
>
rand.Int63(),
2021
>
)
2022
>
baseRunID := uuid.New().String()
2023
>
baseBranchToken := RandomBranchToken(s.NamespaceID, s.WorkflowID, baseRunID, s.HistoryBranchUtil)
2024
>
baseSnapshot, baseEvents := RandomSnapshot(
2025
>
s.T(),
2026
>
s.NamespaceID,
2027
>
s.WorkflowID,
2028
>
baseRunID,
2029
>
common.FirstEventID,
2030
>
rand.Int63(),
2031
>
enumsspb.WORKFLOW_EXECUTION_STATE_ZOMBIE,
2032
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
2033
>
rand.Int63(),
2034
>
baseBranchToken,
2035
>
)
2036
>
_, err := s.ExecutionManager.CreateWorkflowExecution(s.Ctx, &p.CreateWorkflowExecutionRequest{
2037
>
ShardID: s.ShardID,
2038
>
RangeID: s.RangeID,
2039
>
Mode: p.CreateWorkflowModeBypassCurrent,
2040
>
2041
>
PreviousRunID: "",
2042
>
PreviousLastWriteVersion: 0,
2043
>
2044
>
ArchetypeID: chasm.WorkflowArchetypeID,
2045
>
2046
>
NewWorkflowSnapshot: *baseSnapshot,
2047
>
NewWorkflowEvents: baseEvents,
2048
>
})
2049
>
s.NoError(err)
2050
>
2051
>
resetSnapshot, resetEvents := RandomSnapshot(
2052
>
s.T(),
2053
>
s.NamespaceID,
2054
>
s.WorkflowID,
2055
>
baseRunID,
2056
>
baseSnapshot.NextEventID,
2057
>
rand.Int63(),
2058
>
enumsspb.WORKFLOW_EXECUTION_STATE_COMPLETED,
2059
>
enumspb.WORKFLOW_EXECUTION_STATUS_COMPLETED,
2060
>
baseSnapshot.DBRecordVersion+1,
2061
>
baseBranchToken,
2062
>
)
2063
>
newRunID := uuid.New().String()
2064
>
newBranchToken := RandomBranchToken(s.NamespaceID, s.WorkflowID, newRunID, s.HistoryBranchUtil)
2065
>
newSnapshot, newEvents := RandomSnapshot(
2066
>
s.T(),
2067
>
s.NamespaceID,
2068
>
s.WorkflowID,
2069
>
newRunID,
2070
>
common.FirstEventID,
2071
>
rand.Int63(),
2072
>
enumsspb.WORKFLOW_EXECUTION_STATE_ZOMBIE,
2073
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
2074
>
rand.Int63(),
2075
>
newBranchToken,
2076
>
)
2077
>
_, err = s.ExecutionManager.ConflictResolveWorkflowExecution(s.Ctx, &p.ConflictResolveWorkflowExecutionRequest{
2078
>
ShardID: s.ShardID,
2079
>
RangeID: s.RangeID,
2080
>
Mode: p.ConflictResolveWorkflowModeBypassCurrent,
2081
>
2082
>
ArchetypeID: chasm.WorkflowArchetypeID,
2083
>
2084
>
ResetWorkflowSnapshot: *resetSnapshot,
2085
>
ResetWorkflowEvents: resetEvents,
2086
>
2087
>
NewWorkflowSnapshot: newSnapshot,
2088
>
NewWorkflowEvents: newEvents,
2089
>
2090
>
CurrentWorkflowMutation: nil,
2091
>
CurrentWorkflowEvents: nil,
2092
>
})
2093
>
s.NoError(err)
2094
>
2095
>
s.AssertMSEqualWithDB(chasm.WorkflowArchetypeID, resetSnapshot)
2096
>
s.AssertMSEqualWithDB(chasm.WorkflowArchetypeID, newSnapshot)
2097
>
s.AssertHEEqualWithDB(baseBranchToken, baseEvents, resetEvents)
2098
>
s.AssertHEEqualWithDB(newBranchToken, newEvents)
2099
>
}
2100
2101
func (s *ExecutionMutableStateSuite) TestSet_NotExists() {