#![cfg(feature = "NSData")] use crate::{NSData, NSMutableData}; #[test] fn test_bytes_mut() { let data = NSMutableData::with_bytes(&[7, 16]); unsafe { data.as_mut_bytes_unchecked()[0] = 3 }; assert_eq!(data.to_vec(), [3, 16]); } #[test] fn test_set_len() { let data = NSMutableData::with_bytes(&[7, 16]); data.setLength(4); assert_eq!(data.len(), 4); assert_eq!(data.to_vec(), [7, 16, 0, 0]); data.setLength(1); assert_eq!(data.len(), 1); assert_eq!(data.to_vec(), [7]); } #[test] fn test_append() { let data = NSMutableData::with_bytes(&[7, 16]); data.extend_from_slice(&[3, 52]); assert_eq!(data.len(), 4); assert_eq!(data.to_vec(), [7, 16, 3, 52]); } #[test] #[cfg(feature = "NSRange")] fn test_replace() { let data = NSMutableData::with_bytes(&[7, 16]); data.replace_range(0..0, &[3]); assert_eq!(data.to_vec(), [3, 7, 16]); data.replace_range(1..2, &[52, 13]); assert_eq!(data.to_vec(), [3, 52, 13, 16]); data.replace_range(2..4, &[6]); assert_eq!(data.to_vec(), [3, 52, 6]); data.set_bytes(&[8, 17]); assert_eq!(data.to_vec(), [8, 17]); } #[test] fn test_from_data() { let data = NSData::with_bytes(&[1, 2]); let mut_data = NSMutableData::dataWithData(&data); assert_eq!(&*data, &**mut_data); } #[test] fn test_with_capacity() { let data = NSMutableData::dataWithCapacity(5).unwrap(); assert_eq!(data.to_vec(), &[]); data.extend_from_slice(&[1, 2, 3, 4, 5]); assert_eq!(data.to_vec(), &[1, 2, 3, 4, 5]); data.extend_from_slice(&[6, 7]); assert_eq!(data.to_vec(), &[1, 2, 3, 4, 5, 6, 7]); } #[test] fn test_extend() { let mut data = NSMutableData::with_bytes(&[1, 2]); data.extend(3..=5); assert_eq!(data.to_vec(), &[1, 2, 3, 4, 5]); (&data).extend(&*NSData::with_bytes(&[6, 7])); assert_eq!(data.to_vec(), &[1, 2, 3, 4, 5, 6, 7]); }