Skip to main content

codama_nodes/contextual_value_nodes/
argument_value_node.rs

1use crate::{ArgumentValueNode, CamelCaseString};
2
3impl ArgumentValueNode {
4    pub fn new<T>(name: T) -> Self
5    where
6        T: Into<CamelCaseString>,
7    {
8        Self { name: name.into() }
9    }
10}
11
12#[cfg(test)]
13mod tests {
14    use super::*;
15
16    #[test]
17    fn new() {
18        let node = ArgumentValueNode::new("my_argument");
19        assert_eq!(node.name, CamelCaseString::new("myArgument"));
20    }
21
22    #[test]
23    fn to_json() {
24        let node = ArgumentValueNode::new("myArgument");
25        let json = serde_json::to_string(&node).unwrap();
26        assert_eq!(json, r#"{"kind":"argumentValueNode","name":"myArgument"}"#);
27    }
28
29    #[test]
30    fn from_json() {
31        let json = r#"{"kind":"argumentValueNode","name":"myArgument"}"#;
32        let node: ArgumentValueNode = serde_json::from_str(json).unwrap();
33        assert_eq!(node, ArgumentValueNode::new("myArgument"));
34    }
35}