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 #[serde(rename = "message")]
103 message: Option<String>,
104
105 #[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 #[serde(rename = "message")]
114 message: Option<String>,
115
116 #[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 #[serde(rename = "message")]
125 message: Option<String>,
126
127 #[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 #[serde(rename = "message")]
136 message: Option<String>,
137
138 #[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 #[serde(rename = "message")]
147 message: Option<String>,
148
149 #[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 #[serde(rename = "message")]
161 message: Option<String>,
162
163 #[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 #[serde(rename = "message")]
175 message: Option<String>,
176
177 #[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 #[serde(rename = "message")]
186 message: Option<String>,
187
188 #[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 #[serde(rename = "message")]
197 message: Option<String>,
198
199 #[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 #[serde(rename = "message")]
208 message: Option<String>,
209
210 #[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}