@@ -224,20 +224,8 @@ ffi_fn! {
224224 fn pactffi_mock_server_matched( mock_server_port: i32 ) -> bool {
225225 let mut guard = MANAGER . lock( ) . unwrap( ) ;
226226 let manager = guard. get_or_insert_with( ServerManager :: new) ;
227- manager. find_mock_server_by_port( mock_server_port as u16 , & |_, _, mock_server| {
228- match mock_server {
229- Either :: Left ( mock_server) => mock_server. mismatches( ) . is_empty( ) ,
230- Either :: Right ( plugin_mock_server) => {
231- match futures:: executor:: block_on( get_mock_server_results( & plugin_mock_server. mock_server_details) ) {
232- Ok ( results) => results. is_empty( ) ,
233- Err ( err) => {
234- error!( "Request to plugin to get matching results failed - {}" , err) ;
235- false
236- }
237- }
238- }
239- }
240- } ) . unwrap_or( false )
227+ manager. mock_server_matched_by_port( mock_server_port as u16 )
228+ . unwrap_or( false )
241229 }
242230 {
243231 false
@@ -262,69 +250,31 @@ ffi_fn! {
262250 fn pactffi_mock_server_mismatches( mock_server_port: i32 ) -> * mut c_char {
263251 let mut guard = MANAGER . lock( ) . unwrap( ) ;
264252 let manager = guard. get_or_insert_with( ServerManager :: new) ;
265- let mismatches = manager. find_mock_server_by_port( mock_server_port as u16 , & |_, _, mock_server| {
266- match mock_server {
267- Either :: Left ( mock_server) => {
268- serde_json:: Value :: Array (
269- mock_server. mismatches( )
270- . iter( )
271- . map( |mismatch| mismatch. to_json( ) )
272- . collect( )
273- ) . to_string( )
274- }
275- Either :: Right ( plugin_mock_server) => {
276- match futures:: executor:: block_on( get_mock_server_results(
277- & plugin_mock_server. mock_server_details,
278- ) ) {
279- Ok ( results) => json!( results
280- . iter( )
281- . map( |item| {
282- json!( {
283- "path" : item. path,
284- "error" : item. error,
285- "mismatches" : item. mismatches. iter( ) . map( |mismatch| {
286- json!( {
287- "expected" : mismatch. expected,
288- "actual" : mismatch. actual,
289- "mismatch" : mismatch. mismatch,
290- "path" : mismatch. path,
291- "diff" : mismatch. diff. clone( ) . unwrap_or_default( )
292- } )
293- } ) . collect:: <Vec <_>>( )
294- } )
295- } )
296- . collect:: <Vec <_>>( ) )
297- . to_string( ) ,
298- Err ( err) => {
299- error!( "Request to plugin to get matching results failed - {}" , err) ;
300- json!( {
301- "error" : format!( "Request to plugin to get matching results failed - {}" , err)
302- } )
303- . to_string( )
304- }
305- }
306- }
307- }
308- } ) ;
253+ let mismatches = manager. mock_server_mismatches_by_port( mock_server_port as u16 ) ;
309254
310255 match mismatches {
311- Some ( str ) => {
256+ Ok ( Some ( results) ) => {
257+ let str = Value :: Array ( results) . to_string( ) ;
312258 match CString :: new( str ) {
313- Ok ( s) => {
314- let p = s. as_ptr( ) as * mut _;
315- manager. store_mock_server_resource( mock_server_port as u16 , s) ;
316- p
317- }
318- Err ( err) => {
319- error!( "Failed to copy mismatches result - {}" , err) ;
320- ptr:: null_mut( )
321- }
259+ Ok ( s) => {
260+ let p = s. as_ptr( ) as * mut _;
261+ manager. store_mock_server_resource( mock_server_port as u16 , s) ;
262+ p
263+ }
264+ Err ( err) => {
265+ error!( "Failed to copy mismatches result - {}" , err) ;
266+ ptr:: null_mut( )
267+ }
322268 }
323269 }
324- None => ptr:: null_mut( )
270+ Ok ( None ) => ptr:: null_mut( ) ,
271+ Err ( err) => {
272+ error!( "Request to plugin to get matching results failed - {}" , err) ;
273+ ptr:: null_mut( )
274+ }
325275 }
326276 } {
327- std :: ptr:: null_mut( )
277+ ptr:: null_mut( )
328278 }
329279}
330280
0 commit comments