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
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(())
}