Skip to content

Commit 7fedfa8

Browse files
Merge pull request #6 from triblespace/codex/create-tests-for-src/view.rs
Add split view tests
2 parents e931bad + 5d1e6fd commit 7fedfa8

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

src/view.rs

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,7 @@ where
342342

343343
#[cfg(test)]
344344
mod tests {
345+
use super::ViewError;
345346
use crate::Bytes;
346347
use crate::View;
347348

@@ -376,4 +377,68 @@ mod tests {
376377
let view_value = view.as_ref();
377378
assert_eq!(&value, view_value);
378379
}
380+
381+
#[test]
382+
fn view_prefix_split() {
383+
let mut bytes = Bytes::from_source(vec![1u8, 2, 3, 4]);
384+
let view = bytes.view_prefix::<[u8; 2]>().unwrap();
385+
assert_eq!(*view, [1u8, 2]);
386+
assert_eq!(&bytes[..], [3u8, 4].as_slice());
387+
}
388+
389+
#[test]
390+
fn view_prefix_with_elems_split() {
391+
let mut bytes = Bytes::from_source(vec![10u8, 11, 12, 13]);
392+
let view = bytes.view_prefix_with_elems::<[u8]>(2).unwrap();
393+
assert_eq!(view.as_ref(), [10u8, 11].as_slice());
394+
assert_eq!(&bytes[..], [12u8, 13].as_slice());
395+
}
396+
397+
#[test]
398+
fn view_suffix_split() {
399+
let mut bytes = Bytes::from_source(vec![5u8, 6, 7, 8]);
400+
let view = bytes.view_suffix::<[u8; 2]>().unwrap();
401+
assert_eq!(*view, [7u8, 8]);
402+
assert_eq!(&bytes[..], [5u8, 6].as_slice());
403+
}
404+
405+
#[test]
406+
fn view_suffix_with_elems_split() {
407+
let mut bytes = Bytes::from_source(vec![20u8, 21, 22, 23]);
408+
let view = bytes.view_suffix_with_elems::<[u8]>(2).unwrap();
409+
assert_eq!(view.as_ref(), [22u8, 23].as_slice());
410+
assert_eq!(&bytes[..], [20u8, 21].as_slice());
411+
}
412+
413+
#[test]
414+
fn view_prefix_size_error() {
415+
let mut bytes = Bytes::from_source(vec![1u8, 2, 3]);
416+
let res = bytes.view_prefix::<[u8; 4]>();
417+
assert!(matches!(res, Err(ViewError::Size(_))));
418+
assert_eq!(&bytes[..], [1u8, 2, 3].as_slice());
419+
}
420+
421+
#[test]
422+
fn view_prefix_with_elems_size_error() {
423+
let mut bytes = Bytes::from_source(vec![1u8, 2, 3]);
424+
let res = bytes.view_prefix_with_elems::<[u8]>(4);
425+
assert!(matches!(res, Err(ViewError::Size(_))));
426+
assert_eq!(&bytes[..], [1u8, 2, 3].as_slice());
427+
}
428+
429+
#[test]
430+
fn view_suffix_size_error() {
431+
let mut bytes = Bytes::from_source(vec![1u8, 2, 3]);
432+
let res = bytes.view_suffix::<[u8; 4]>();
433+
assert!(matches!(res, Err(ViewError::Size(_))));
434+
assert_eq!(&bytes[..], [1u8, 2, 3].as_slice());
435+
}
436+
437+
#[test]
438+
fn view_suffix_with_elems_size_error() {
439+
let mut bytes = Bytes::from_source(vec![1u8, 2, 3]);
440+
let res = bytes.view_suffix_with_elems::<[u8]>(4);
441+
assert!(matches!(res, Err(ViewError::Size(_))));
442+
assert_eq!(&bytes[..], [1u8, 2, 3].as_slice());
443+
}
379444
}

0 commit comments

Comments
 (0)