#![allow(non_snake_case)]
use super::StrOrByte as MacroArguments;
#[test]
fn empty() {
let rc = syn::parse_str::<MacroArguments>(r"");
assert! (rc.is_err());
}
#[test]
fn Ident() {
let rc = syn::parse_str::<MacroArguments>(r"hajo");
assert! (rc.is_err());
}
#[test]
fn Str() {
let rc = syn::parse_str::<MacroArguments>(r#" "hajo" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
assert_eq! ( rc, "hajo" );
assert! ( matches!(rc, MacroArguments::str(_)));
}
#[test]
fn ByteStr() {
let rc = syn::parse_str::<MacroArguments>(r#" b"hajo" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
assert_eq! ( rc, &b"hajo"[..] );
assert! ( matches!(rc, MacroArguments::byte(_)));
}
#[test]
fn BinaryByteStr() {
let rc = syn::parse_str::<MacroArguments>(r#" b"\x90\x91" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
assert_eq! ( rc, &b"\x90\x91"[..] );
assert! ( matches!(rc, MacroArguments::byte(_)));
}
#[test]
fn repeatByteStr() {
let rc = syn::parse_str::<MacroArguments>(r#" b"\x90\x91" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
let rc = rc.repeat(1);
assert_eq! ( rc, &b"\x90\x91"[..] );
let rc = rc.repeat(2);
assert_eq! ( rc, &b"\x90\x91\x90\x91"[..] );
}
#[test]
fn repeatStr() {
let rc = syn::parse_str::<MacroArguments>(r#" "zx" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
let rc = rc.repeat(1);
assert_eq! ( rc, "zx" );
let rc = rc.repeat(2);
assert_eq! ( rc, "zxzx" );
}
#[test]
fn add0Str() {
let rc = syn::parse_str::<MacroArguments>(r#" "zx" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
assert_eq! ( rc, "zx" );
let rc = rc.add0();
assert_eq! ( rc, "zx\0" );
}
#[test]
fn add0ByteStr() {
let rc = syn::parse_str::<MacroArguments>(r#" b"\x90\x91" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
assert_eq! ( rc, &b"\x90\x91"[..] );
let rc = rc.add0();
assert_eq! ( rc, &b"\x90\x91\0"[..] );
}
#[test]
fn as_bytesStr() {
let rc = syn::parse_str::<MacroArguments>(r#" "zx" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
let b = rc.as_bytes();
assert_eq! ( b.len(), 2 );
assert_eq! ( b"zx", b.as_slice() );
}
#[test]
fn as_bytesByteStr() {
let rc = syn::parse_str::<MacroArguments>(r#" b"zx" "#);
assert! (rc.is_ok());
let rc: MacroArguments = rc.unwrap();
let b = rc.as_bytes();
assert_eq! ( b.len(), 2 );
assert_eq! ( b"zx", b.as_slice() );
}