mod common; use redisgraph::{RedisString, result_set::{Node, Relation, Scalar}}; use serial_test::serial; use maplit::hashmap; use common::*; #[test] #[serial] fn test_scalar() { with_graph(|graph| { let scalar: Scalar = graph.query("RETURN 42").unwrap(); assert_eq!(scalar, Scalar::Integer(42)); }); } #[test] #[serial] fn test_nil() { #[allow(clippy::let_unit_value)] with_graph(|graph| { let _nil: () = graph.query("RETURN null").unwrap(); }); } #[test] #[serial] fn test_option() { with_graph(|graph| { let results: (Option, Option) = graph.query("RETURN 42, null").unwrap(); assert_eq!(results.0, Some(42)); assert_eq!(results.1, None); }); } #[test] #[serial] fn test_bool() { with_graph(|graph| { let boolean: bool = graph.query("RETURN true").unwrap(); assert_eq!(boolean, true); }); } #[test] #[serial] fn test_int() { with_graph(|graph| { let integer: i64 = graph.query("RETURN 42").unwrap(); assert_eq!(integer, 42); }); } #[test] #[serial] fn test_float() { #[allow(clippy::float_cmp)] with_graph(|graph| { let float: f64 = graph.query("RETURN 12.3").unwrap(); assert_eq!(float, 12.3); }); } #[test] #[serial] fn test_redis_string() { with_graph(|graph| { let redis_string: RedisString = graph.query("RETURN 'Hello, world!'").unwrap(); assert_eq!(redis_string, "Hello, world!".to_string().into()); }); } #[test] #[serial] fn test_string() { with_graph(|graph| { let string: String = graph.query("RETURN 'Hello again, world!'").unwrap(); assert_eq!(string, "Hello again, world!".to_string()); }); } #[test] #[serial] fn test_node() { with_graph(|graph| { graph.mutate("CREATE (n:NodeLabel { prop: 42 })").unwrap(); let node: Node = graph.query("MATCH (n) RETURN n").unwrap(); assert_eq!(node, Node { labels: vec!["NodeLabel".to_string().into()], properties: hashmap! { "prop".to_string().into() => Scalar::Integer(42), }, }); }); } #[test] #[serial] fn test_relation() { with_graph(|graph| { graph.mutate("CREATE (src)-[rel:RelationType { prop: 42 }]->(dst)").unwrap(); let relation: Relation = graph.query("MATCH (src)-[rel]->(dst) RETURN rel").unwrap(); assert_eq!(relation, Relation { type_name: "RelationType".to_string().into(), properties: hashmap! { "prop".to_string().into() => Scalar::Integer(42), }, }); }); }