MCPcopy Create free account
hub / github.com/ElementsProject/lightning / test_rpc_command_hook

Function test_rpc_command_hook

cln-rpc/src/test.rs:679–795  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

677
678#[test]
679fn test_rpc_command_hook() {
680 let r = serde_json::json!({
681 "rpc_command": {
682 "id": "3",
683 "method": "method_name",
684 "params": {
685 "param_1": [],
686 "param_2": {},
687 "param_n": "",
688 }
689 }
690 });
691 let d: RpcCommandEvent = serde_json::from_value(r).unwrap();
692 match &d.rpc_command.id {
693 JsonScalar::String(s) => assert_eq!(s, "3"),
694 _ => panic!("should be string"),
695 }
696 assert_eq!(d.rpc_command.method, "method_name");
697
698 let mut params = serde_json::Map::new();
699 params.insert("param_1".to_string(), serde_json::Value::Array(vec![]));
700 params.insert(
701 "param_2".to_string(),
702 serde_json::Value::Object(serde_json::Map::new()),
703 );
704 params.insert(
705 "param_n".to_string(),
706 serde_json::Value::String("".to_string()),
707 );
708 assert_eq!(
709 d.rpc_command.params,
710 JsonObjectOrArray::Object(params.clone())
711 );
712 assert_serde_roundtrip!(d, RpcCommandEvent);
713
714 let q = serde_json::json!({
715 "replace": {
716 "jsonrpc": "2.0",
717 "id": "3",
718 "method": "method_name",
719 "params": {
720 "param_1": [],
721 "param_2": {},
722 "param_n": "",
723 }
724 }
725 });
726 let e: RpcCommandAction = serde_json::from_value(q).unwrap();
727 match &e.replace.as_ref().unwrap().id {
728 JsonScalar::String(s) => assert_eq!(s, "3"),
729 _ => panic!("should be string"),
730 }
731 assert_eq!(e.replace.as_ref().unwrap().method, "method_name");
732 assert_eq!(
733 e.replace.as_ref().unwrap().params,
734 JsonObjectOrArray::Object(params)
735 );
736 assert_serde_roundtrip!(e, RpcCommandAction);

Callers

nothing calls this directly

Calls 4

StringClass · 0.85
unwrapMethod · 0.45
insertMethod · 0.45
to_stringMethod · 0.45

Tested by

no test coverage detected