Sha256: a8451217c1e127ad6e653ef11e0513525ee350e1e37dd575758a8ee9301b28fb

Contents?: true

Size: 1.95 KB

Versions: 31

Compression:

Stored size: 1.95 KB

Contents

use indoc::indoc;
use serde_json::{json, Number, Value};

#[test]
fn number() {
    assert_eq!(format!("{:?}", Number::from(1)), "Number(1)");
    assert_eq!(format!("{:?}", Number::from(-1)), "Number(-1)");
    assert_eq!(
        format!("{:?}", Number::from_f64(1.0).unwrap()),
        "Number(1.0)"
    );
}

#[test]
fn value_null() {
    assert_eq!(format!("{:?}", json!(null)), "Null");
}

#[test]
fn value_bool() {
    assert_eq!(format!("{:?}", json!(true)), "Bool(true)");
    assert_eq!(format!("{:?}", json!(false)), "Bool(false)");
}

#[test]
fn value_number() {
    assert_eq!(format!("{:?}", json!(1)), "Number(1)");
    assert_eq!(format!("{:?}", json!(-1)), "Number(-1)");
    assert_eq!(format!("{:?}", json!(1.0)), "Number(1.0)");
    assert_eq!(Number::from_f64(1.0).unwrap().to_string(), "1.0"); // not just "1"
    assert_eq!(Number::from_f64(12e40).unwrap().to_string(), "1.2e41");
}

#[test]
fn value_string() {
    assert_eq!(format!("{:?}", json!("s")), "String(\"s\")");
}

#[test]
fn value_array() {
    assert_eq!(format!("{:?}", json!([])), "Array []");
}

#[test]
fn value_object() {
    assert_eq!(format!("{:?}", json!({})), "Object {}");
}

#[test]
fn error() {
    let err = serde_json::from_str::<Value>("{0}").unwrap_err();
    let expected = "Error(\"key must be a string\", line: 1, column: 2)";
    assert_eq!(format!("{:?}", err), expected);
}

#[test]
fn indented() {
    let j = json!({
        "Array": [true],
        "Bool": true,
        "EmptyArray": [],
        "EmptyObject": {},
        "Null": null,
        "Number": 1,
        "String": "...",
    });
    let expected = indoc! {r#"
        Object {
            "Array": Array [
                Bool(true),
            ],
            "Bool": Bool(true),
            "EmptyArray": Array [],
            "EmptyObject": Object {},
            "Null": Null,
            "Number": Number(1),
            "String": String("..."),
        }"#
    };
    assert_eq!(format!("{:#?}", j), expected);
}

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
wasmtime-29.0.0 ./ext/cargo-vendor/serde_json-1.0.137/tests/debug.rs
wasmtime-28.0.0 ./ext/cargo-vendor/serde_json-1.0.135/tests/debug.rs
wasmtime-27.0.0 ./ext/cargo-vendor/serde_json-1.0.133/tests/debug.rs
wasmtime-26.0.0 ./ext/cargo-vendor/serde_json-1.0.132/tests/debug.rs
wasmtime-25.0.2 ./ext/cargo-vendor/serde_json-1.0.125/tests/debug.rs
wasmtime-25.0.1 ./ext/cargo-vendor/serde_json-1.0.125/tests/debug.rs
wasmtime-25.0.0 ./ext/cargo-vendor/serde_json-1.0.125/tests/debug.rs
wasmtime-24.0.0 ./ext/cargo-vendor/serde_json-1.0.125/tests/debug.rs
wasmtime-23.0.2 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-22.0.0 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-21.0.1 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-20.0.2 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-20.0.0 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-18.0.3 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-17.0.1 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-17.0.0 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-16.0.0 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-15.0.1 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-15.0.0 ./ext/cargo-vendor/serde_json-1.0.111/tests/debug.rs
wasmtime-14.0.4 ./ext/cargo-vendor/serde_json-1.0.107/tests/debug.rs