1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
extern crate juiz_core;
use juiz_core::prelude::*;
mod common;
#[test]
fn simple_process_create_test() -> JuizResult<()> {
// let manifest = jvalue!({
// "type_name" : "increment",
// "arguments" : [
// {
// "name": "arg1",
// "type": "int",
// "description": "test_argument",
// "default": 1,
// },
// ]
// });
let manifest = ProcessManifest::new("increment").add_int_arg("arg1", "test_argument", 1);
let result_pf = process_factory_create(manifest, common::increment_function)?;
/*
assert!(result_pf.is_ok());
*/
// let proc_manifest = jvalue!(
// {
// "name": "hogehoge",
// "type_name": "increment",
// }
// );
let proc_manifest = ProcessManifest::new("increment").name("hogehoge");
let p = result_pf.lock()?.create_process(&proc_manifest);
assert!(
p.is_ok(),
"ProcessImpl::new() failed. Error is {:?}",
p.err()
);
let result = p
.ok()
.unwrap()
.lock()?
.call(vec![("arg1", jvalue!(3))].into());
assert!(result.is_ok());
let res_value = result.ok().unwrap();
let iv = res_value
.lock_as_value(|value| value.as_i64().unwrap())
.unwrap();
//assert!(juiz_lock(&res_value).unwrap().as_value().unwrap().is_i64());
assert!(iv == 4);
Ok(())
}