addresses tests
This commit is contained in:
parent
c91c8f5a0d
commit
a432f65848
@ -64,3 +64,46 @@ impl<'a, Ctx: 'a + Context, F: Factory<'a, Ctx>> ExtFactory<'a, Ctx> for F {
|
|||||||
_parse_slice::<Ctx, F::Mtbl>(self, slice, resolver)
|
_parse_slice::<Ctx, F::Mtbl>(self, slice, resolver)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use crate::core::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_read_one_address() {
|
||||||
|
let mut addresses = Addresses::start();
|
||||||
|
let point = b"A".repeat(HASH_SIZE);
|
||||||
|
let mut deserializer = SliceDeserializer::from(point.as_slice());
|
||||||
|
let address = addresses.next(&mut deserializer).unwrap();
|
||||||
|
assert_eq!(address.point, point.as_slice());
|
||||||
|
assert_eq!(address.index, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_read_three_addresses_and_fail_on_extra_tail() {
|
||||||
|
let mut addresses = Addresses::start();
|
||||||
|
let point0 = b"A".repeat(HASH_SIZE);
|
||||||
|
let point1 = b"B".repeat(HASH_SIZE);
|
||||||
|
let point2 = b"C".repeat(HASH_SIZE);
|
||||||
|
let tail = b"tail";
|
||||||
|
let mut source = Vec::new();
|
||||||
|
source.extend(&point0);
|
||||||
|
source.extend(&point1);
|
||||||
|
source.extend(&point2);
|
||||||
|
source.extend(tail);
|
||||||
|
let mut deserializer = SliceDeserializer::from(source.as_slice());
|
||||||
|
let address = addresses.next(&mut deserializer).unwrap();
|
||||||
|
assert_eq!(address.point, point0.as_slice());
|
||||||
|
assert_eq!(address.index, 0);
|
||||||
|
let address = addresses.next(&mut deserializer).unwrap();
|
||||||
|
assert_eq!(address.point, point1.as_slice());
|
||||||
|
assert_eq!(address.index, 1);
|
||||||
|
let address = addresses.next(&mut deserializer).unwrap();
|
||||||
|
assert_eq!(address.point, point2.as_slice());
|
||||||
|
assert_eq!(address.index, 2);
|
||||||
|
if tail.len() < HASH_SIZE {
|
||||||
|
let err = addresses.next(&mut deserializer).unwrap_err();
|
||||||
|
assert_eq!(err, tail);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user