mitrid_core 0.9.4

Core library of the Mitrid framework
use mitrid_core::base::Sizable;
use mitrid_core::base::Checkable;
use mitrid_core::base::Serializable;
use mitrid_core::base::Meta;

use fixture::base::Payload;
use fixture::app::command::Address;
use fixture::app::command::Response;

#[test]
fn test_response_new() {
    let address = Address::default();
    let meta = Meta::default();
    let result = Some(Payload::default());
    let mut error = None;

    let res = Response::new(&address, &meta, result.clone(), error);
    assert!(res.is_ok());

    error = Some(format!("an error"));

    let res = Response::new(&address, &meta, result, error);
    assert!(res.is_err());
}

#[test]
fn test_response_size() {
    let address = Address::default();
    let meta = Meta::default();
    let result = Some(Payload::default());
    let error = None;

    let response = Response::new(&address, &meta, result, error).unwrap();

    let meta_size = response.meta.get_size();
    let response_size = response.size();

    assert_eq!(meta_size, response_size);
}

#[test]
fn test_response_check() {
    let address = Address::default();
    let meta = Meta::default();
    let result = Some(Payload::default());
    let error = None;

    let mut response = Response::new(&address, &meta, result, error).unwrap();

    let res = response.check();
    assert!(res.is_ok());

    response.error = Some(format!("an error"));

    let res = response.check();
    assert!(res.is_err());
}

#[test]
fn test_response_json() {
    let response_a = Response::default();

    let res = response_a.to_json();
    assert!(res.is_ok());

    let response_json = res.unwrap();

    let res = Response::from_json(&response_json);
    assert!(res.is_ok());

    let response_b = res.unwrap();

    assert_eq!(response_a, response_b)
}

#[test]
fn test_response_bytes() {
    let response_a = Response::default();

    let res = response_a.to_bytes();
    assert!(res.is_ok());

    let response_bytes = res.unwrap();

    let res = Response::from_bytes(&response_bytes);
    assert!(res.is_ok());

    let response_b = res.unwrap();

    assert_eq!(response_a, response_b)
}

#[test]
fn test_response_hex() {
    let response_a = Response::default();

    let res = response_a.to_hex();
    assert!(res.is_ok());

    let response_hex = res.unwrap();

    let res = Response::from_hex(&response_hex);
    assert!(res.is_ok());

    let response_b = res.unwrap();

    assert_eq!(response_a, response_b)
}