mirror of
https://github.com/icewind1991/ivory.git
synced 2026-06-03 10:44:09 +02:00
more zval cast tests
This commit is contained in:
parent
bbc0c97025
commit
caf346e4c7
2 changed files with 25 additions and 2 deletions
|
|
@ -204,7 +204,7 @@ impl From<u8> for ZValType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
|
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone)]
|
||||||
pub enum ArrayKey {
|
pub enum ArrayKey {
|
||||||
String(String),
|
String(String),
|
||||||
Int(u64),
|
Int(u64),
|
||||||
|
|
@ -227,7 +227,7 @@ impl_from_array_key!(u16, Int, u64);
|
||||||
impl_from_array_key!(u8, Int, u64);
|
impl_from_array_key!(u8, Int, u64);
|
||||||
impl_from_array_key!(usize, Int, u64);
|
impl_from_array_key!(usize, Int, u64);
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Clone)]
|
||||||
pub enum PhpVal {
|
pub enum PhpVal {
|
||||||
Undef,
|
Undef,
|
||||||
Null,
|
Null,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
use maplit::hashmap;
|
use maplit::hashmap;
|
||||||
use pretty_assertions::assert_eq;
|
use pretty_assertions::assert_eq;
|
||||||
|
|
||||||
|
use ivory::zend::ZVal;
|
||||||
use ivory::{ArrayKey, PhpVal};
|
use ivory::{ArrayKey, PhpVal};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
@ -66,3 +67,25 @@ fn cast_into_php_val() {
|
||||||
.into()
|
.into()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn cast_into_php_val_round_trip() {
|
||||||
|
let values: Vec<PhpVal> = vec![
|
||||||
|
1.into(),
|
||||||
|
(0.2).into(),
|
||||||
|
true.into(),
|
||||||
|
false.into(),
|
||||||
|
"foo".to_string().into(),
|
||||||
|
];
|
||||||
|
|
||||||
|
for original in values {
|
||||||
|
let first_cast: ZVal = original.clone().into();
|
||||||
|
let cast_back: PhpVal = first_cast.as_php_val();
|
||||||
|
assert_eq!(original, cast_back);
|
||||||
|
|
||||||
|
// the first round trip should cast back into the same round trip
|
||||||
|
let second_cast: ZVal = cast_back.into();
|
||||||
|
let cast_back: PhpVal = second_cast.as_php_val();
|
||||||
|
assert_eq!(original, cast_back);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue