File tree Expand file tree Collapse file tree 2 files changed +31
-8
lines changed Expand file tree Collapse file tree 2 files changed +31
-8
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,6 @@ use dsc_lib::{
77 dscresources:: {
88 dscresource:: Invoke ,
99 invoke_result:: {
10- DeleteResult ,
1110 ExportResult ,
1211 GetResult ,
1312 SetResult ,
@@ -39,7 +38,7 @@ pub enum ResourceOperationResult {
3938 SetResult ( SetResult ) ,
4039 TestResult ( TestResult ) ,
4140 ExportResult ( ExportResult ) ,
42- DeleteResult ( DeleteResult ) ,
41+ DeleteResult { success : bool } ,
4342}
4443
4544#[ derive( Serialize , JsonSchema ) ]
@@ -98,11 +97,10 @@ impl McpServer {
9897 Ok ( ResourceOperationResult :: TestResult ( result) )
9998 } ,
10099 DscOperation :: Delete => {
101- let result = match resource. delete ( & properties_json, & ExecutionKind :: Actual ) {
102- Ok ( res ) => res ,
100+ match resource. delete ( & properties_json) {
101+ Ok ( ( ) ) => Ok ( ResourceOperationResult :: DeleteResult { success : true } ) ,
103102 Err ( e) => return Err ( McpError :: internal_error ( e. to_string ( ) , None ) ) ,
104- } ;
105- Ok ( ResourceOperationResult :: DeleteResult ( result) )
103+ }
106104 } ,
107105 DscOperation :: Export => {
108106 let result = match resource. export ( & properties_json) {
Original file line number Diff line number Diff line change @@ -304,10 +304,9 @@ Describe 'Tests for MCP server' {
304304 @ { operation = ' get' ; property = ' actualState' }
305305 @ { operation = ' set' ; property = ' beforeState' }
306306 @ { operation = ' test' ; property = ' desiredState' }
307- @ { operation = ' delete' ; property = ' beforeState' }
308307 @ { operation = ' export' ; property = ' actualState' }
309308 ) {
310- param ($operation )
309+ param ($operation , $property )
311310
312311 $mcpRequest = @ {
313312 jsonrpc = " 2.0"
@@ -334,4 +333,30 @@ Describe 'Tests for MCP server' {
334333 $response.result.structuredContent.result .$property.action | Should - BeExactly $operation - Because $because
335334 $response.result.structuredContent.result .$property.hello | Should - BeExactly " World" - Because $because
336335 }
336+
337+ It ' Calling invoke_dsc_resource for delete operation' {
338+ $mcpRequest = @ {
339+ jsonrpc = " 2.0"
340+ id = 12
341+ method = " tools/call"
342+ params = @ {
343+ name = " invoke_dsc_resource"
344+ arguments = @ {
345+ type = ' Test/Operation'
346+ operation = ' delete'
347+ resource_type = ' Test/Operation'
348+ properties_json = (@ {
349+ hello = " World"
350+ action = ' delete'
351+ } | ConvertTo-Json - Depth 20 )
352+ }
353+ }
354+ }
355+
356+ $response = Send-McpRequest - request $mcpRequest
357+ $response.id | Should - Be 12
358+ $because = ($response | ConvertTo-Json - Depth 20 | Out-String )
359+ ($response.result.structuredContent.psobject.properties | Measure-Object ).Count | Should - Be 1 - Because $because
360+ $response.result.structuredContent.result.success | Should - Be $true - Because $because
361+ }
337362}
You can’t perform that action at this time.
0 commit comments