apple-app-store-receipts 0.3.0

Apple - App Store Receipts
Documentation
use std::{error, fs, path::PathBuf};

use apple_app_store_receipts::objects::response_body::ResponseBody;

#[test]
fn de_all() -> Result<(), Box<dyn error::Error>> {
    let dir = PathBuf::new().join("tests/response_body_json_files");
    for entry in fs::read_dir(dir).unwrap() {
        let entry = entry?;
        let path = entry.path();
        if path.is_file() && Some(Some("json")) == path.extension().map(|x| x.to_str()) {
            let content = fs::read_to_string(&path)?;
            match serde_json::from_str::<ResponseBody>(&content) {
                Ok(response_body) => match response_body {
                    ResponseBody::Success(_) => {
                        assert!(content.contains(r#""status":0"#));

                        println!("path {path:?} de successful");
                    }
                    ResponseBody::Error(body) => {
                        println!("path {path:?} de successful, body: {body:?}");
                    }
                },
                Err(err) => {
                    eprintln!("path {path:?} de failed, err: {err:?}");
                    return Err(err.into());
                }
            }
        }
    }

    Ok(())
}