qris 0.1.1

QRIS Parser & Editor
Documentation
#[cfg(test)]
mod tests {
    use std::error::Error;
    use crate::node::Nodes;

    const QRIS: &str = "00020101021126710019ID.CO.CIMBNIAGA.WWW011878728356757817222102150002186871651250303UMI51450015ID.OR.QRNPG.WWW0215ID81275673266770303UMI5204599953033605802ID5914AABBCCD*6714516006KEDIRI61054423462120708123456786304097D";
    #[test]
    fn verify_crc16_and_dumps_qris() -> Result<(), Box<dyn Error>>{
        let nodes  = Nodes::from_str(QRIS)?;
        assert!(nodes.verify());
        assert!(nodes.dumps() == QRIS);
        Ok(())
    }
    #[test]
    fn set_mechant_name()-> Result<(), Box<dyn Error>>{
        let name = String::from("KStore");
        let name_cmp = name.clone();
        let mut nodes  = Nodes::from_str(QRIS)?;
        nodes.set_merchant_name(name);
        nodes.rewrite_crc16();
        let result_content = nodes.dumps();
        let result_parse = Nodes::from_str(&result_content)?;
        assert!(result_parse.get_merchant_name().unwrap() == name_cmp);
        Ok(())
    }
    #[test]
    fn set_merchant_city()-> Result<(), Box<dyn Error>>{
        let name = String::from("Jakarta");
        let name_cmp = name.clone();
        let mut nodes  = Nodes::from_str(QRIS)?;
        nodes.set_merchant_city(name);
        nodes.rewrite_crc16();
        let result_content = nodes.dumps();
        let result_parse = Nodes::from_str(&result_content)?;
        assert!(result_parse.get_merchant_city().unwrap() == name_cmp);
        Ok(())
    }
    #[test]
    fn set_postal_code()-> Result<(), Box<dyn Error>>{
        let name = String::from("87162");
        let name_cmp = name.clone();
        let mut nodes  = Nodes::from_str(QRIS)?;
        nodes.set_postal_code(name);
        nodes.rewrite_crc16();
        let result_content = nodes.dumps();
        let result_parse = Nodes::from_str(&result_content)?;
        assert!(result_parse.get_postal_code().unwrap() == name_cmp);
        Ok(())
    }
}