| 1033 | |
| 1034 | #[test] |
| 1035 | fn test_change_serialize_deserialize() { |
| 1036 | let header = ChangeHeader::builder() |
| 1037 | .message("Test serialization") |
| 1038 | .author(Author::new("Bob", Some("bob@example.com"))) |
| 1039 | .build(); |
| 1040 | |
| 1041 | let contents = b"File contents here".to_vec(); |
| 1042 | let change = Change::new(header, vec![], contents, vec![]); |
| 1043 | |
| 1044 | // Serialize |
| 1045 | let mut buffer = Vec::new(); |
| 1046 | let hash = change.serialize(&mut buffer).unwrap(); |
| 1047 | |
| 1048 | // Verify V3 magic bytes |
| 1049 | assert_eq!(&buffer[0..4], b"ATOM"); |
| 1050 | |
| 1051 | // Deserialize |
| 1052 | let mut cursor = Cursor::new(buffer); |
| 1053 | let (loaded, loaded_hash) = Change::deserialize(&mut cursor).unwrap(); |
| 1054 | |
| 1055 | // Verify |
| 1056 | assert_eq!(hash, loaded_hash); |
| 1057 | assert_eq!(change.message(), loaded.message()); |
| 1058 | assert_eq!(change.contents, loaded.contents); |
| 1059 | } |
| 1060 | |
| 1061 | #[test] |
| 1062 | fn test_change_serialize_with_hunks() { |