77using ModularityKit . Mutator . Abstractions . History ;
88using ModularityKit . Mutator . Abstractions . Intent ;
99using ModularityKit . Mutator . Abstractions . Results ;
10+ using ModularityKit . Mutator . Governance . Abstractions . Execution . Contracts ;
1011using ModularityKit . Mutator . Governance . Abstractions . Execution . Model ;
1112using ModularityKit . Mutator . Governance . Abstractions . Lifecycle . Model ;
13+ using ModularityKit . Mutator . Governance . Abstractions . Requests . Factory ;
1214using ModularityKit . Mutator . Governance . Abstractions . Requests . Decisions ;
1315using ModularityKit . Mutator . Governance . Abstractions . Resolution . Strategies ;
1416using ModularityKit . Mutator . Governance . Abstractions . Resolution . Model ;
1517using ModularityKit . Mutator . Governance . Runtime . Execution . Orchestration ;
1618using ModularityKit . Mutator . Governance . Runtime . Resolution . Execution ;
1719using ModularityKit . Mutator . Governance . Runtime . Storage ;
18- using ModularityKit . Mutator . Governance . Tests . TestSupport ;
1920using ModularityKit . Mutator . Runtime ;
2021using Xunit ;
2122
@@ -37,7 +38,16 @@ public async Task ExecuteApproved_executes_request_persists_resulting_version_an
3738 var resolutionManager = new MutationRequestVersionResolutionManager ( requestStore , new MutationRequestVersionResolver ( ) ) ;
3839 var executionManager = new GovernanceExecutionManager ( requestStore , resolutionManager , engine ) ;
3940
40- var request = await requestStore . Create ( MutationRequestTestFactory . CreateApprovedSecurityRequest ( "v10" ) ) ;
41+ var request = await requestStore . Create ( MutationRequestFactory . Approved < RoleState , PromoteRoleMutation > (
42+ stateId : "tenant-42:roles" ,
43+ intent : new MutationIntent
44+ {
45+ OperationName = "GrantRole" ,
46+ Category = "Security" ,
47+ Description = "Grant elevated access"
48+ } ,
49+ context : MutationContext . User ( "requester" , "Requester" , "Need access" ) ,
50+ expectedStateVersion : "v10" ) ) ;
4151 var mutation = new PromoteRoleMutation (
4252 MutationContext . User ( "operator-1" , "Operator One" , "Execute approved role promotion" ) ,
4353 nextVersion : "v11" ) ;
@@ -47,8 +57,6 @@ public async Task ExecuteApproved_executes_request_persists_resulting_version_an
4757 request . RequestId ,
4858 mutation ,
4959 state ,
50- currentStateVersion : state . Version ,
51- resultingStateVersionProvider : updated => updated . Version ,
5260 governanceContext : MutationContext . Service ( "governance-runtime" , "Execute approved request" ) ,
5361 strategy : VersionedRequestResolutionStrategy . RejectStale ) ;
5462
@@ -84,7 +92,16 @@ public async Task ExecuteApproved_does_not_execute_when_stale_resolution_rejects
8492 var resolutionManager = new MutationRequestVersionResolutionManager ( requestStore , new MutationRequestVersionResolver ( ) ) ;
8593 var executionManager = new GovernanceExecutionManager ( requestStore , resolutionManager , engine ) ;
8694
87- var request = await requestStore . Create ( MutationRequestTestFactory . CreateApprovedSecurityRequest ( "v10" ) ) ;
95+ var request = await requestStore . Create ( MutationRequestFactory . Approved < RoleState , PromoteRoleMutation > (
96+ stateId : "tenant-42:roles" ,
97+ intent : new MutationIntent
98+ {
99+ OperationName = "GrantRole" ,
100+ Category = "Security" ,
101+ Description = "Grant elevated access"
102+ } ,
103+ context : MutationContext . User ( "requester" , "Requester" , "Need access" ) ,
104+ expectedStateVersion : "v10" ) ) ;
88105 var mutation = new PromoteRoleMutation (
89106 MutationContext . User ( "operator-1" , "Operator One" , "Execute approved role promotion" ) ,
90107 nextVersion : "v11" ) ;
@@ -94,8 +111,6 @@ public async Task ExecuteApproved_does_not_execute_when_stale_resolution_rejects
94111 request . RequestId ,
95112 mutation ,
96113 state ,
97- currentStateVersion : state . Version ,
98- resultingStateVersionProvider : updated => updated . Version ,
99114 governanceContext : MutationContext . Service ( "governance-runtime" , "Reject stale request" ) ,
100115 strategy : VersionedRequestResolutionStrategy . RejectStale ) ;
101116
@@ -120,7 +135,16 @@ public async Task ExecuteApproved_requires_renewed_approval_before_execution_whe
120135 var resolutionManager = new MutationRequestVersionResolutionManager ( requestStore , new MutationRequestVersionResolver ( ) ) ;
121136 var executionManager = new GovernanceExecutionManager ( requestStore , resolutionManager , engine ) ;
122137
123- var request = await requestStore . Create ( MutationRequestTestFactory . CreateApprovedSecurityRequest ( "v10" ) ) ;
138+ var request = await requestStore . Create ( MutationRequestFactory . Approved < RoleState , PromoteRoleMutation > (
139+ stateId : "tenant-42:roles" ,
140+ intent : new MutationIntent
141+ {
142+ OperationName = "GrantRole" ,
143+ Category = "Security" ,
144+ Description = "Grant elevated access"
145+ } ,
146+ context : MutationContext . User ( "requester" , "Requester" , "Need access" ) ,
147+ expectedStateVersion : "v10" ) ) ;
124148 var mutation = new PromoteRoleMutation (
125149 MutationContext . User ( "operator-1" , "Operator One" , "Execute approved role promotion" ) ,
126150 nextVersion : "v11" ) ;
@@ -130,8 +154,6 @@ public async Task ExecuteApproved_requires_renewed_approval_before_execution_whe
130154 request . RequestId ,
131155 mutation ,
132156 state ,
133- currentStateVersion : state . Version ,
134- resultingStateVersionProvider : updated => updated . Version ,
135157 governanceContext : MutationContext . Service ( "governance-runtime" , "Require renewed approval" ) ,
136158 strategy : VersionedRequestResolutionStrategy . RequireRenewedApproval ) ;
137159
@@ -155,7 +177,16 @@ public async Task ExecuteApproved_revalidates_and_executes_against_latest_state_
155177 var resolutionManager = new MutationRequestVersionResolutionManager ( requestStore , new MutationRequestVersionResolver ( ) ) ;
156178 var executionManager = new GovernanceExecutionManager ( requestStore , resolutionManager , engine ) ;
157179
158- var request = await requestStore . Create ( MutationRequestTestFactory . CreateApprovedSecurityRequest ( "v10" ) ) ;
180+ var request = await requestStore . Create ( MutationRequestFactory . Approved < RoleState , PromoteRoleMutation > (
181+ stateId : "tenant-42:roles" ,
182+ intent : new MutationIntent
183+ {
184+ OperationName = "GrantRole" ,
185+ Category = "Security" ,
186+ Description = "Grant elevated access"
187+ } ,
188+ context : MutationContext . User ( "requester" , "Requester" , "Need access" ) ,
189+ expectedStateVersion : "v10" ) ) ;
159190 var mutation = new PromoteRoleMutation (
160191 MutationContext . User ( "operator-1" , "Operator One" , "Execute approved role promotion" ) ,
161192 nextVersion : "v16" ) ;
@@ -165,8 +196,6 @@ public async Task ExecuteApproved_revalidates_and_executes_against_latest_state_
165196 request . RequestId ,
166197 mutation ,
167198 state ,
168- currentStateVersion : state . Version ,
169- resultingStateVersionProvider : updated => updated . Version ,
170199 governanceContext : MutationContext . Service ( "governance-runtime" , "Revalidate and execute" ) ,
171200 strategy : VersionedRequestResolutionStrategy . RevalidateOnLatestState ) ;
172201
@@ -185,7 +214,7 @@ public async Task ExecuteApproved_revalidates_and_executes_against_latest_state_
185214 decision => decision . Type == MutationRequestDecisionType . VersionResolution ( MutationRequestVersionResolutionDecisionType . RevalidationRequired ) ) ;
186215 }
187216
188- private sealed record RoleState ( string StateId , string Role , string Version )
217+ private sealed record RoleState ( string StateId , string Role , string Version ) : IVersionedState
189218 {
190219 public static RoleState Create ( string stateId , string role , string version ) => new ( stateId , role , version ) ;
191220 }
0 commit comments