From 273fc59a3068f60e3fc965c96efd6932add8a3c7 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Mon, 30 Mar 2020 16:10:40 +0800 Subject: [PATCH] Refine tests. --- tests/method_call.rs | 14 +++++++++----- tests/types.rs | 22 ++++++++++++++++++++-- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/tests/method_call.rs b/tests/method_call.rs index 6043345a..a4e19251 100644 --- a/tests/method_call.rs +++ b/tests/method_call.rs @@ -4,7 +4,7 @@ use rhai::{Engine, EvalAltResult, RegisterFn, INT}; #[test] fn test_method_call() -> Result<(), EvalAltResult> { - #[derive(Clone)] + #[derive(Debug, Clone, Eq, PartialEq)] struct TestStruct { x: INT, } @@ -26,11 +26,15 @@ fn test_method_call() -> Result<(), EvalAltResult> { engine.register_fn("update", TestStruct::update); engine.register_fn("new_ts", TestStruct::new); - let ts = engine.eval::("let x = new_ts(); x.update(); x")?; - assert_eq!(ts.x, 1001); + assert_eq!( + engine.eval::("let x = new_ts(); x.update(); x")?, + TestStruct { x: 1001 } + ); - let ts = engine.eval::("let x = new_ts(); update(x); x")?; - assert_eq!(ts.x, 1); + assert_eq!( + engine.eval::("let x = new_ts(); update(x); x")?, + TestStruct { x: 1 } + ); Ok(()) } diff --git a/tests/types.rs b/tests/types.rs index 0101a120..78018482 100644 --- a/tests/types.rs +++ b/tests/types.rs @@ -2,6 +2,11 @@ use rhai::{Engine, EvalAltResult}; #[test] fn test_type_of() -> Result<(), EvalAltResult> { + #[derive(Clone)] + struct TestStruct { + x: INT, + } + let mut engine = Engine::new(); #[cfg(not(feature = "only_i32"))] @@ -14,12 +19,25 @@ fn test_type_of() -> Result<(), EvalAltResult> { assert_eq!(engine.eval::("type_of(1.0 + 2.0)")?, "f64"); #[cfg(not(feature = "no_index"))] - #[cfg(not(feature = "no_float"))] assert_eq!( - engine.eval::(r#"type_of([1.0, 2, "hello"])"#)?, + engine.eval::(r#"type_of([true, 2, "hello"])"#)?, "array" ); + // #[cfg(not(feature = "no_object"))] + // assert_eq!( + // engine.eval::(r#"type_of(${a:true, "":2, "z":"hello"})"#)?, + // "map" + // ); + + #[cfg(not(feature = "no_object"))] + { + engine.register_type::("Hello"); + engine.register_fn("new_ts", || TestStruct { x: 1 }); + + assert_eq!(engine.eval::("type_of(new_ts())")?, "Hello"); + } + assert_eq!(engine.eval::(r#"type_of("hello")"#)?, "string"); #[cfg(not(feature = "only_i32"))]