enapi_client/
lib.rs

1
2#[macro_use]
3extern crate jsonrpc_client_core;
4use serde::{Serialize, Deserialize};
5
6#[cfg(test)]
7use autorand::Random;
8
9#[cfg(test)]
10mod test_harness;
11
12pub type JwTtoken = String;
13pub type UserName = String;
14pub type Password = String;
15pub type UserRole = String;
16pub type UserId = String;
17pub type NodeName = String;
18pub type NodeNetwork = String;
19pub type SyncType = String;
20pub type RpcApi = bool;
21pub type WsApi = bool;
22pub type ContainerId = String;
23pub type RemoveNodeData = bool;
24pub type SolVersion = String;
25pub type SolCode = String;
26pub type Web3CallMethod = String;
27pub type Web3CallParams = Vec<Option<serde_json::Value>>;
28pub type RpcId = f64;
29pub type ServiceName = String;
30pub type Version = String;
31pub type Name = String;
32pub type Environment = String;
33pub type InstallSuccess = bool;
34pub type ListedServices = Vec<ObjectT9Jrtxk4>;
35pub type InstalledServices = Vec<ObjectVZsrKceH>;
36pub type RunningServices = Vec<ObjectDlZvXzsu>;
37#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
38#[cfg_attr(test, derive(Random))]
39#[serde(untagged)]
40pub enum Filter {
41    #[serde(rename = "all")]
42    All,
43
44    #[serde(rename = "available")]
45    Available,
46
47    #[serde(rename = "installed")]
48    Installed,
49
50    #[serde(rename = "running")]
51    Running,
52}
53#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
54#[cfg_attr(test, derive(Random))]
55#[serde(untagged)]
56pub enum RemoveNode {
57    AnythingArray(Vec<Option<serde_json::Value>>),
58
59    Bool(bool),
60
61    Double(f64),
62
63    Integer(i64),
64
65    RemoveNodeClass(RemoveNodeClass),
66
67    String(String),
68}
69#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
70#[cfg_attr(test, derive(Random))]
71#[serde(untagged)]
72pub enum GetNodeContainer {
73    AnythingArray(Vec<Option<serde_json::Value>>),
74
75    Bool(bool),
76
77    Double(f64),
78
79    GetNodeContainerClass(GetNodeContainerClass),
80
81    Integer(i64),
82
83    String(String),
84}
85#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
86#[cfg_attr(test, derive(Random))]
87#[serde(untagged)]
88pub enum StringTLqBBstC {
89    #[serde(rename = "active")]
90    Active,
91
92    #[serde(rename = "available")]
93    Available,
94
95    #[serde(rename = "installed")]
96    Installed,
97}
98#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
99#[cfg_attr(test, derive(Random))]
100pub struct GetSysInfo {
101    /// returns system info
102    #[serde(rename = "message")]
103    message: Option<String>,
104
105    /// Returns system info
106    #[serde(rename = "status")]
107    status: Option<String>,
108}
109#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
110#[cfg_attr(test, derive(Random))]
111pub struct CreateUser {
112    /// Success, returns info on new user.
113    #[serde(rename = "message")]
114    message: Option<String>,
115
116    /// Return Success
117    #[serde(rename = "status")]
118    status: Option<String>,
119}
120#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
121#[cfg_attr(test, derive(Random))]
122pub struct DeleteUser {
123    /// Returns user removed result
124    #[serde(rename = "message")]
125    message: Option<String>,
126
127    /// Return Success
128    #[serde(rename = "status")]
129    status: Option<String>,
130}
131#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
132#[cfg_attr(test, derive(Random))]
133pub struct Login {
134    /// Returns: user info and auth token
135    #[serde(rename = "message")]
136    message: Option<String>,
137
138    /// Returns: 'Success'
139    #[serde(rename = "status")]
140    status: Option<String>,
141}
142#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
143#[cfg_attr(test, derive(Random))]
144pub struct GetUser {
145    /// returns users info and all associated params
146    #[serde(rename = "message")]
147    message: Option<String>,
148
149    /// Response success
150    #[serde(rename = "status")]
151    status: Option<String>,
152
153    #[serde(rename = "response")]
154    response: Option<serde_json::Value>,
155}
156#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
157#[cfg_attr(test, derive(Random))]
158pub struct AddNode {
159    /// If returns node docker container info
160    #[serde(rename = "message")]
161    message: Option<String>,
162
163    /// Returns: 'Success'
164    #[serde(rename = "status")]
165    status: Option<String>,
166
167    #[serde(rename = "response")]
168    response: Option<serde_json::Value>,
169}
170#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
171#[cfg_attr(test, derive(Random))]
172pub struct RemoveNodeClass {
173    /// Returns deletion info
174    #[serde(rename = "message")]
175    message: Option<String>,
176
177    /// Returns Success
178    #[serde(rename = "status")]
179    status: Option<String>,
180}
181#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
182#[cfg_attr(test, derive(Random))]
183pub struct GetNodeContainerClass {
184    /// Returns info about docker contianer node is running in.
185    #[serde(rename = "message")]
186    message: Option<String>,
187
188    /// Returns: 'Success'
189    #[serde(rename = "status")]
190    status: Option<String>,
191}
192#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
193#[cfg_attr(test, derive(Random))]
194pub struct SolCompile {
195    /// Returns solidity code in bytecode, warnings and other params
196    #[serde(rename = "message")]
197    message: Option<String>,
198
199    /// Returns: 'success'
200    #[serde(rename = "status")]
201    status: Option<String>,
202}
203#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
204#[cfg_attr(test, derive(Random))]
205pub struct Web3CallResult {
206    /// Returns the web3 call data from your node
207    #[serde(rename = "message")]
208    message: Option<String>,
209
210    /// Returns: 'Success'
211    #[serde(rename = "status")]
212    status: Option<String>,
213}
214#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
215#[cfg_attr(test, derive(Random))]
216pub struct ObjectT9Jrtxk4 {
217    #[serde(rename = "enviornments")]
218    enviornments: Option<Vec<String>>,
219
220    #[serde(rename = "name")]
221    name: Option<String>,
222
223    #[serde(rename = "state")]
224    state: Option<StringTLqBBstC>,
225
226    #[serde(rename = "version")]
227    version: Option<String>,
228}
229#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
230#[cfg_attr(test, derive(Random))]
231pub struct ObjectVZsrKceH {
232    #[serde(rename = "name")]
233    name: Option<String>,
234
235    #[serde(rename = "version")]
236    version: Option<String>,
237}
238#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
239#[cfg_attr(test, derive(Random))]
240pub struct ObjectDlZvXzsu {
241    #[serde(rename = "args")]
242    args: ObjectHqcFus7M,
243
244    #[serde(rename = "commands")]
245    commands: ObjectHuetvW0J,
246
247    #[serde(rename = "env")]
248    env: String,
249
250    #[serde(rename = "name")]
251    name: String,
252
253    #[serde(rename = "path")]
254    path: String,
255
256    #[serde(rename = "rpcPort")]
257    rpc_port: String,
258
259    #[serde(rename = "state")]
260    state: Option<String>,
261
262    #[serde(rename = "version")]
263    version: String,
264
265    #[serde(rename = "running")]
266    running: Option<serde_json::Value>,
267}
268#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
269#[cfg_attr(test, derive(Random))]
270pub struct ObjectHqcFus7M {
271    #[serde(rename = "start")]
272    start: Vec<String>,
273
274    #[serde(rename = "stop")]
275    stop: Vec<String>,
276
277    #[serde(rename = "teardown")]
278    teardown: Vec<String>,
279}
280#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
281#[cfg_attr(test, derive(Random))]
282pub struct ObjectHuetvW0J {
283    #[serde(rename = "setup")]
284    setup: Vec<ObjectD8RkBgzg>,
285
286    #[serde(rename = "start")]
287    start: String,
288
289    #[serde(rename = "stop")]
290    stop: String,
291
292    #[serde(rename = "teardown")]
293    teardown: String,
294}
295#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
296#[cfg_attr(test, derive(Random))]
297pub struct ObjectD8RkBgzg {
298    #[serde(rename = "args")]
299    args: Vec<String>,
300
301    #[serde(rename = "cmd")]
302    cmd: String,
303}
304#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
305#[cfg_attr(test, derive(Random))]
306pub struct ServiceConfig {
307    #[serde(rename = "args")]
308    args: ObjectHqcFus7M,
309
310    #[serde(rename = "commands")]
311    commands: ObjectHuetvW0J,
312
313    #[serde(rename = "env")]
314    env: String,
315
316    #[serde(rename = "name")]
317    name: String,
318
319    #[serde(rename = "path")]
320    path: String,
321
322    #[serde(rename = "rpcPort")]
323    rpc_port: String,
324
325    #[serde(rename = "state")]
326    state: Option<String>,
327
328    #[serde(rename = "version")]
329    version: String,
330
331    #[serde(rename = "running")]
332    running: Option<serde_json::Value>,
333}
334
335jsonrpc_client!(pub struct EnAPIOpenRPCJsonRpcAPI {
336  pub fn getSysInfo(&mut self, JWTtoken: JwTtoken) -> RpcRequest<GetSysInfo>;
337pub fn createUser(&mut self, userName: UserName, password: Password, userRole: UserRole) -> RpcRequest<CreateUser>;
338pub fn deleteUser(&mut self, JWTtoken: JwTtoken, userId: UserId) -> RpcRequest<DeleteUser>;
339pub fn login(&mut self, userName: UserName, password: Password) -> RpcRequest<Login>;
340pub fn getUser(&mut self, JWTtoken: JwTtoken, userName: UserName) -> RpcRequest<GetUser>;
341pub fn addNode(&mut self, JWTtoken: JwTtoken, userName: UserName, nodeName: NodeName, nodeNetwork: NodeNetwork, syncType: SyncType, rpcApi: RpcApi, wsApi: WsApi) -> RpcRequest<AddNode>;
342pub fn removeNode(&mut self, JWTtoken: JwTtoken, userName: UserName, containerId: ContainerId, nodeName: NodeName, removeNodeData: RemoveNodeData) -> RpcRequest<RemoveNode>;
343pub fn getNodeContainerInfo(&mut self, JWTtoken: JwTtoken, containerId: ContainerId) -> RpcRequest<GetNodeContainer>;
344pub fn sol_compile(&mut self, solVersion: SolVersion, solCode: SolCode) -> RpcRequest<SolCompile>;
345pub fn ethRpcCall(&mut self, userName: UserName, nodeName: NodeName, nodeNetwork: NodeNetwork, web3callMethod: Web3CallMethod, web3callParams: Web3CallParams, rpcId: RpcId) -> RpcRequest<Web3CallResult>;
346pub fn installService(&mut self, serviceName: ServiceName, version: Version) -> RpcRequest<InstallSuccess>;
347pub fn listServices(&mut self, filter: Filter) -> RpcRequest<ListedServices>;
348pub fn listInstalledServices(&mut self) -> RpcRequest<InstalledServices>;
349pub fn listRunningServices(&mut self) -> RpcRequest<RunningServices>;
350pub fn startService(&mut self, name: Name, version: Version, environment: Environment) -> RpcRequest<ServiceConfig>;
351});
352
353#[cfg(test)]
354mod tests {
355    use super::*;
356    use test_harness::*;
357    use autorand::Random;
358    use futures::Future;
359
360
361  
362    #[test]
363    #[allow(non_snake_case)]
364    fn getSysInfo_test () {
365        let method = "getSysInfo".into();
366
367        let mut params = Vec::new();
368  
369        let JwTtoken_value = JwTtoken::random();
370        let serialized = serde_json::to_value(&JwTtoken_value).unwrap();
371        params.push(serialized);
372  
373        let result = GetSysInfo::random();
374        let result_serialized = serde_json::to_vec(&result).unwrap();
375        let result: GetSysInfo = serde_json::from_slice(&result_serialized).unwrap();
376
377        let transport = MockTransport {
378            method,
379            params,
380            result: serde_json::to_value(&result).unwrap(),
381        };
382
383        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
384        let received_result = client.getSysInfo(
385          JwTtoken_value
386        ).wait().unwrap();
387
388        assert_eq!(result, received_result);
389    }
390
391  
392    #[test]
393    #[allow(non_snake_case)]
394    fn createUser_test () {
395        let method = "createUser".into();
396
397        let mut params = Vec::new();
398  
399        let UserName_value = UserName::random();
400        let serialized = serde_json::to_value(&UserName_value).unwrap();
401        params.push(serialized);
402  
403        let Password_value = Password::random();
404        let serialized = serde_json::to_value(&Password_value).unwrap();
405        params.push(serialized);
406  
407        let UserRole_value = UserRole::random();
408        let serialized = serde_json::to_value(&UserRole_value).unwrap();
409        params.push(serialized);
410  
411        let result = CreateUser::random();
412        let result_serialized = serde_json::to_vec(&result).unwrap();
413        let result: CreateUser = serde_json::from_slice(&result_serialized).unwrap();
414
415        let transport = MockTransport {
416            method,
417            params,
418            result: serde_json::to_value(&result).unwrap(),
419        };
420
421        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
422        let received_result = client.createUser(
423          UserName_value, Password_value, UserRole_value
424        ).wait().unwrap();
425
426        assert_eq!(result, received_result);
427    }
428
429  
430    #[test]
431    #[allow(non_snake_case)]
432    fn deleteUser_test () {
433        let method = "deleteUser".into();
434
435        let mut params = Vec::new();
436  
437        let JwTtoken_value = JwTtoken::random();
438        let serialized = serde_json::to_value(&JwTtoken_value).unwrap();
439        params.push(serialized);
440  
441        let UserId_value = UserId::random();
442        let serialized = serde_json::to_value(&UserId_value).unwrap();
443        params.push(serialized);
444  
445        let result = DeleteUser::random();
446        let result_serialized = serde_json::to_vec(&result).unwrap();
447        let result: DeleteUser = serde_json::from_slice(&result_serialized).unwrap();
448
449        let transport = MockTransport {
450            method,
451            params,
452            result: serde_json::to_value(&result).unwrap(),
453        };
454
455        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
456        let received_result = client.deleteUser(
457          JwTtoken_value, UserId_value
458        ).wait().unwrap();
459
460        assert_eq!(result, received_result);
461    }
462
463  
464    #[test]
465    #[allow(non_snake_case)]
466    fn login_test () {
467        let method = "login".into();
468
469        let mut params = Vec::new();
470  
471        let UserName_value = UserName::random();
472        let serialized = serde_json::to_value(&UserName_value).unwrap();
473        params.push(serialized);
474  
475        let Password_value = Password::random();
476        let serialized = serde_json::to_value(&Password_value).unwrap();
477        params.push(serialized);
478  
479        let result = Login::random();
480        let result_serialized = serde_json::to_vec(&result).unwrap();
481        let result: Login = serde_json::from_slice(&result_serialized).unwrap();
482
483        let transport = MockTransport {
484            method,
485            params,
486            result: serde_json::to_value(&result).unwrap(),
487        };
488
489        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
490        let received_result = client.login(
491          UserName_value, Password_value
492        ).wait().unwrap();
493
494        assert_eq!(result, received_result);
495    }
496
497  
498    #[test]
499    #[allow(non_snake_case)]
500    fn getUser_test () {
501        let method = "getUser".into();
502
503        let mut params = Vec::new();
504  
505        let JwTtoken_value = JwTtoken::random();
506        let serialized = serde_json::to_value(&JwTtoken_value).unwrap();
507        params.push(serialized);
508  
509        let UserName_value = UserName::random();
510        let serialized = serde_json::to_value(&UserName_value).unwrap();
511        params.push(serialized);
512  
513        let result = GetUser::random();
514        let result_serialized = serde_json::to_vec(&result).unwrap();
515        let result: GetUser = serde_json::from_slice(&result_serialized).unwrap();
516
517        let transport = MockTransport {
518            method,
519            params,
520            result: serde_json::to_value(&result).unwrap(),
521        };
522
523        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
524        let received_result = client.getUser(
525          JwTtoken_value, UserName_value
526        ).wait().unwrap();
527
528        assert_eq!(result, received_result);
529    }
530
531  
532    #[test]
533    #[allow(non_snake_case)]
534    fn addNode_test () {
535        let method = "addNode".into();
536
537        let mut params = Vec::new();
538  
539        let JwTtoken_value = JwTtoken::random();
540        let serialized = serde_json::to_value(&JwTtoken_value).unwrap();
541        params.push(serialized);
542  
543        let UserName_value = UserName::random();
544        let serialized = serde_json::to_value(&UserName_value).unwrap();
545        params.push(serialized);
546  
547        let NodeName_value = NodeName::random();
548        let serialized = serde_json::to_value(&NodeName_value).unwrap();
549        params.push(serialized);
550  
551        let NodeNetwork_value = NodeNetwork::random();
552        let serialized = serde_json::to_value(&NodeNetwork_value).unwrap();
553        params.push(serialized);
554  
555        let SyncType_value = SyncType::random();
556        let serialized = serde_json::to_value(&SyncType_value).unwrap();
557        params.push(serialized);
558  
559        let RpcApi_value = RpcApi::random();
560        let serialized = serde_json::to_value(&RpcApi_value).unwrap();
561        params.push(serialized);
562  
563        let WsApi_value = WsApi::random();
564        let serialized = serde_json::to_value(&WsApi_value).unwrap();
565        params.push(serialized);
566  
567        let result = AddNode::random();
568        let result_serialized = serde_json::to_vec(&result).unwrap();
569        let result: AddNode = serde_json::from_slice(&result_serialized).unwrap();
570
571        let transport = MockTransport {
572            method,
573            params,
574            result: serde_json::to_value(&result).unwrap(),
575        };
576
577        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
578        let received_result = client.addNode(
579          JwTtoken_value, UserName_value, NodeName_value, NodeNetwork_value, SyncType_value, RpcApi_value, WsApi_value
580        ).wait().unwrap();
581
582        assert_eq!(result, received_result);
583    }
584
585  
586    #[test]
587    #[allow(non_snake_case)]
588    fn removeNode_test () {
589        let method = "removeNode".into();
590
591        let mut params = Vec::new();
592  
593        let JwTtoken_value = JwTtoken::random();
594        let serialized = serde_json::to_value(&JwTtoken_value).unwrap();
595        params.push(serialized);
596  
597        let UserName_value = UserName::random();
598        let serialized = serde_json::to_value(&UserName_value).unwrap();
599        params.push(serialized);
600  
601        let ContainerId_value = ContainerId::random();
602        let serialized = serde_json::to_value(&ContainerId_value).unwrap();
603        params.push(serialized);
604  
605        let NodeName_value = NodeName::random();
606        let serialized = serde_json::to_value(&NodeName_value).unwrap();
607        params.push(serialized);
608  
609        let RemoveNodeData_value = RemoveNodeData::random();
610        let serialized = serde_json::to_value(&RemoveNodeData_value).unwrap();
611        params.push(serialized);
612  
613        let result = RemoveNode::random();
614        let result_serialized = serde_json::to_vec(&result).unwrap();
615        let result: RemoveNode = serde_json::from_slice(&result_serialized).unwrap();
616
617        let transport = MockTransport {
618            method,
619            params,
620            result: serde_json::to_value(&result).unwrap(),
621        };
622
623        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
624        let received_result = client.removeNode(
625          JwTtoken_value, UserName_value, ContainerId_value, NodeName_value, RemoveNodeData_value
626        ).wait().unwrap();
627
628        assert_eq!(result, received_result);
629    }
630
631  
632    #[test]
633    #[allow(non_snake_case)]
634    fn getNodeContainerInfo_test () {
635        let method = "getNodeContainerInfo".into();
636
637        let mut params = Vec::new();
638  
639        let JwTtoken_value = JwTtoken::random();
640        let serialized = serde_json::to_value(&JwTtoken_value).unwrap();
641        params.push(serialized);
642  
643        let ContainerId_value = ContainerId::random();
644        let serialized = serde_json::to_value(&ContainerId_value).unwrap();
645        params.push(serialized);
646  
647        let result = GetNodeContainer::random();
648        let result_serialized = serde_json::to_vec(&result).unwrap();
649        let result: GetNodeContainer = serde_json::from_slice(&result_serialized).unwrap();
650
651        let transport = MockTransport {
652            method,
653            params,
654            result: serde_json::to_value(&result).unwrap(),
655        };
656
657        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
658        let received_result = client.getNodeContainerInfo(
659          JwTtoken_value, ContainerId_value
660        ).wait().unwrap();
661
662        assert_eq!(result, received_result);
663    }
664
665  
666    #[test]
667    #[allow(non_snake_case)]
668    fn sol_compile_test () {
669        let method = "sol_compile".into();
670
671        let mut params = Vec::new();
672  
673        let SolVersion_value = SolVersion::random();
674        let serialized = serde_json::to_value(&SolVersion_value).unwrap();
675        params.push(serialized);
676  
677        let SolCode_value = SolCode::random();
678        let serialized = serde_json::to_value(&SolCode_value).unwrap();
679        params.push(serialized);
680  
681        let result = SolCompile::random();
682        let result_serialized = serde_json::to_vec(&result).unwrap();
683        let result: SolCompile = serde_json::from_slice(&result_serialized).unwrap();
684
685        let transport = MockTransport {
686            method,
687            params,
688            result: serde_json::to_value(&result).unwrap(),
689        };
690
691        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
692        let received_result = client.sol_compile(
693          SolVersion_value, SolCode_value
694        ).wait().unwrap();
695
696        assert_eq!(result, received_result);
697    }
698
699  
700    #[test]
701    #[allow(non_snake_case)]
702    fn ethRpcCall_test () {
703        let method = "ethRpcCall".into();
704
705        let mut params = Vec::new();
706  
707        let UserName_value = UserName::random();
708        let serialized = serde_json::to_value(&UserName_value).unwrap();
709        params.push(serialized);
710  
711        let NodeName_value = NodeName::random();
712        let serialized = serde_json::to_value(&NodeName_value).unwrap();
713        params.push(serialized);
714  
715        let NodeNetwork_value = NodeNetwork::random();
716        let serialized = serde_json::to_value(&NodeNetwork_value).unwrap();
717        params.push(serialized);
718  
719        let Web3CallMethod_value = Web3CallMethod::random();
720        let serialized = serde_json::to_value(&Web3CallMethod_value).unwrap();
721        params.push(serialized);
722  
723        let Web3CallParams_value = Web3CallParams::random();
724        let serialized = serde_json::to_value(&Web3CallParams_value).unwrap();
725        params.push(serialized);
726  
727        let RpcId_value = RpcId::random();
728        let serialized = serde_json::to_value(&RpcId_value).unwrap();
729        params.push(serialized);
730  
731        let result = Web3CallResult::random();
732        let result_serialized = serde_json::to_vec(&result).unwrap();
733        let result: Web3CallResult = serde_json::from_slice(&result_serialized).unwrap();
734
735        let transport = MockTransport {
736            method,
737            params,
738            result: serde_json::to_value(&result).unwrap(),
739        };
740
741        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
742        let received_result = client.ethRpcCall(
743          UserName_value, NodeName_value, NodeNetwork_value, Web3CallMethod_value, Web3CallParams_value, RpcId_value
744        ).wait().unwrap();
745
746        assert_eq!(result, received_result);
747    }
748
749  
750    #[test]
751    #[allow(non_snake_case)]
752    fn installService_test () {
753        let method = "installService".into();
754
755        let mut params = Vec::new();
756  
757        let ServiceName_value = ServiceName::random();
758        let serialized = serde_json::to_value(&ServiceName_value).unwrap();
759        params.push(serialized);
760  
761        let Version_value = Version::random();
762        let serialized = serde_json::to_value(&Version_value).unwrap();
763        params.push(serialized);
764  
765        let result = InstallSuccess::random();
766        let result_serialized = serde_json::to_vec(&result).unwrap();
767        let result: InstallSuccess = serde_json::from_slice(&result_serialized).unwrap();
768
769        let transport = MockTransport {
770            method,
771            params,
772            result: serde_json::to_value(&result).unwrap(),
773        };
774
775        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
776        let received_result = client.installService(
777          ServiceName_value, Version_value
778        ).wait().unwrap();
779
780        assert_eq!(result, received_result);
781    }
782
783  
784    #[test]
785    #[allow(non_snake_case)]
786    fn listServices_test () {
787        let method = "listServices".into();
788
789        let mut params = Vec::new();
790  
791        let Filter_value = Filter::random();
792        let serialized = serde_json::to_value(&Filter_value).unwrap();
793        params.push(serialized);
794  
795        let result = ListedServices::random();
796        let result_serialized = serde_json::to_vec(&result).unwrap();
797        let result: ListedServices = serde_json::from_slice(&result_serialized).unwrap();
798
799        let transport = MockTransport {
800            method,
801            params,
802            result: serde_json::to_value(&result).unwrap(),
803        };
804
805        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
806        let received_result = client.listServices(
807          Filter_value
808        ).wait().unwrap();
809
810        assert_eq!(result, received_result);
811    }
812
813  
814    #[test]
815    #[allow(non_snake_case)]
816    fn listInstalledServices_test () {
817        let method = "listInstalledServices".into();
818
819        let mut params = Vec::new();
820  
821        let result = InstalledServices::random();
822        let result_serialized = serde_json::to_vec(&result).unwrap();
823        let result: InstalledServices = serde_json::from_slice(&result_serialized).unwrap();
824
825        let transport = MockTransport {
826            method,
827            params,
828            result: serde_json::to_value(&result).unwrap(),
829        };
830
831        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
832        let received_result = client.listInstalledServices(
833          
834        ).wait().unwrap();
835
836        assert_eq!(result, received_result);
837    }
838
839  
840    #[test]
841    #[allow(non_snake_case)]
842    fn listRunningServices_test () {
843        let method = "listRunningServices".into();
844
845        let mut params = Vec::new();
846  
847        let result = RunningServices::random();
848        let result_serialized = serde_json::to_vec(&result).unwrap();
849        let result: RunningServices = serde_json::from_slice(&result_serialized).unwrap();
850
851        let transport = MockTransport {
852            method,
853            params,
854            result: serde_json::to_value(&result).unwrap(),
855        };
856
857        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
858        let received_result = client.listRunningServices(
859          
860        ).wait().unwrap();
861
862        assert_eq!(result, received_result);
863    }
864
865  
866    #[test]
867    #[allow(non_snake_case)]
868    fn startService_test () {
869        let method = "startService".into();
870
871        let mut params = Vec::new();
872  
873        let Name_value = Name::random();
874        let serialized = serde_json::to_value(&Name_value).unwrap();
875        params.push(serialized);
876  
877        let Version_value = Version::random();
878        let serialized = serde_json::to_value(&Version_value).unwrap();
879        params.push(serialized);
880  
881        let Environment_value = Environment::random();
882        let serialized = serde_json::to_value(&Environment_value).unwrap();
883        params.push(serialized);
884  
885        let result = ServiceConfig::random();
886        let result_serialized = serde_json::to_vec(&result).unwrap();
887        let result: ServiceConfig = serde_json::from_slice(&result_serialized).unwrap();
888
889        let transport = MockTransport {
890            method,
891            params,
892            result: serde_json::to_value(&result).unwrap(),
893        };
894
895        let mut client = EnAPIOpenRPCJsonRpcAPI::new(transport);
896        let received_result = client.startService(
897          Name_value, Version_value, Environment_value
898        ).wait().unwrap();
899
900        assert_eq!(result, received_result);
901    }
902
903}