ciboulette 0.1.4

Library to parse JSON:API requests and build responses
Documentation
use super::*;

#[test]
fn simple() {
    let (bag, builder) = setup(r#"filter[hola]=hello"#);

    let res: CibouletteQueryParameters = builder
        .build(&bag, bag.get_type("peoples").unwrap().clone())
        .expect("to build correctly");
    assert_eq!(res.filter_typed().len(), 1);
    let filter = res.filter_typed().get("hola").unwrap();
    assert_eq!(filter, "hello");
}

#[test]
fn empty_type() {
    let (bag, builder) = setup(r#"filter[]=hello"#);

    let res: CibouletteQueryParameters = builder
        .build(&bag, bag.get_type("peoples").unwrap().clone())
        .expect("to build correctly");
    assert_eq!(res.filter_typed().len(), 1);
    let filter = res.filter_typed().get("").unwrap();
    assert_eq!(filter, "hello");
}

#[test]
fn url_encoded() {
    let (bag, builder) = setup(r#"filter%5Bhola%5D=hel%2Blo"#);

    let res: CibouletteQueryParameters = builder
        .build(&bag, bag.get_type("peoples").unwrap().clone())
        .expect("to build correctly");
    assert_eq!(res.filter_typed().len(), 1);
    let filter = res.filter_typed().get("hola").unwrap();
    assert_eq!(filter, "hel+lo");
}

#[test]
fn empty_value() {
    let (bag, builder) = setup(r#"filter[hola]="#);

    let res: CibouletteQueryParameters = builder
        .build(&bag, bag.get_type("peoples").unwrap().clone())
        .expect("to build correctly");
    assert_eq!(res.filter_typed().len(), 1);
    let filter = res.filter_typed().get("hola").unwrap();
    assert_eq!(filter, "");
}