serde_test.rs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. use flowy_ot::{
  2. attributes::AttrsBuilder,
  3. delta::Delta,
  4. operation::{OpBuilder, Operation, Retain},
  5. };
  6. #[test]
  7. fn operation_insert_serialize_test() {
  8. let attributes = AttrsBuilder::new().bold(true).italic(true).build();
  9. let operation = OpBuilder::insert("123").attributes(attributes).build();
  10. let json = serde_json::to_string(&operation).unwrap();
  11. eprintln!("{}", json);
  12. let insert_op: Operation = serde_json::from_str(&json).unwrap();
  13. assert_eq!(insert_op, operation);
  14. }
  15. #[test]
  16. fn operation_retain_serialize_test() {
  17. let operation = Operation::Retain(12.into());
  18. let json = serde_json::to_string(&operation).unwrap();
  19. eprintln!("{}", json);
  20. let insert_op: Operation = serde_json::from_str(&json).unwrap();
  21. assert_eq!(insert_op, operation);
  22. }
  23. #[test]
  24. fn operation_delete_serialize_test() {
  25. let operation = Operation::Delete(2);
  26. let json = serde_json::to_string(&operation).unwrap();
  27. let insert_op: Operation = serde_json::from_str(&json).unwrap();
  28. assert_eq!(insert_op, operation);
  29. }
  30. #[test]
  31. fn delta_serialize_test() {
  32. let mut delta = Delta::default();
  33. let attributes = AttrsBuilder::new().bold(true).italic(true).build();
  34. let retain = OpBuilder::insert("123").attributes(attributes).build();
  35. delta.add(retain);
  36. delta.add(Operation::Retain(5.into()));
  37. delta.add(Operation::Delete(3));
  38. let json = serde_json::to_string(&delta).unwrap();
  39. eprintln!("{}", json);
  40. let delta_from_json: Delta = serde_json::from_str(&json).unwrap();
  41. assert_eq!(delta_from_json, delta);
  42. }