mod identifier_test;
extern crate juiz_core;
use juiz_core::prelude::*;
mod common;
#[cfg(test)]
#[test]
fn call_process_test() -> JuizResult<()> {
match common::new_increment_process("incremnet")?.call(vec!(("arg1", jvalue!(1))).into()) {
Ok(vv) => {
let iv = vv.lock_as_value(|value| { value.as_i64().unwrap() }).unwrap();
assert_eq!(iv, 2);
},
Err(ev) => {
print!("Return value is {:?}", ev);
}
}
Ok(())
}
#[cfg(test)]
#[test]
fn invoke_process_test() -> JuizResult<()> {
match common::new_increment_process("increment")?.invoke() {
Ok(vv) => {
let iv = vv.lock_as_value(|value| { value.as_i64().unwrap() }).unwrap();
assert_eq!(iv, 2);
},
Err(ev) => {
print!("Return value is {:?}", ev);
}
}
Ok(())
}
#[cfg(test)]
#[test]
fn execute_process_test() -> JuizResult<()> {
match common::new_execution_process("execute")?.execute() {
Ok(vv) => {
let iv = vv.lock_as_value(|value| { value.as_i64().unwrap() }).unwrap();
assert_eq!(iv, 1);
},
Err(ev) => {
print!("Return value is {:?}", ev);
}
}
Ok(())
}
#[cfg(test)]
#[test]
fn call_invalid_argument_process_test() -> JuizResult<()> {
match common::new_increment_process("increment")?.call(vec!(("arg2", jvalue!(1))).into()) {
Ok(_vv) => {
assert!(false, "Process must be return error.");
},
Err(ev) => {
print!("Return value is {:?}", ev);
}
}
Ok(())
}
#[cfg(test)]
#[test]
fn invoke_add_process_test() -> JuizResult<()> {
match common::new_add_process("add_01")?.invoke() {
Ok(vv) => {
let iv = vv.lock_as_value(|value| { value.as_i64().unwrap() }).unwrap();
assert_eq!(iv, 2);
},
Err(ev) => {
print!("Return value is {:?}", ev);
}
}
Ok(())
}
#[cfg(test)]
#[test]
fn bind_and_invoke_add_process_test()->JuizResult<()> {
let mut p = common::new_add_process("add_01")?;
p.p_apply("arg1", jvalue!(2).into()).expect("Bind Error.");
let vv = p.invoke().expect("Bind Error");
let iv = vv.lock_as_value(|value| { value.as_i64().unwrap() }).unwrap();
assert_eq!(iv, 3);
Ok(())
}