serde_test.rs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. use flowy_ot::{client::Document, core::*};
  2. #[test]
  3. fn operation_insert_serialize_test() {
  4. let attributes = AttributeBuilder::new()
  5. .add(Attribute::Bold(true))
  6. .add(Attribute::Italic(true))
  7. .build();
  8. let operation = OpBuilder::insert("123").attributes(attributes).build();
  9. let json = serde_json::to_string(&operation).unwrap();
  10. eprintln!("{}", json);
  11. let insert_op: Operation = serde_json::from_str(&json).unwrap();
  12. assert_eq!(insert_op, operation);
  13. }
  14. #[test]
  15. fn operation_retain_serialize_test() {
  16. let operation = Operation::Retain(12.into());
  17. let json = serde_json::to_string(&operation).unwrap();
  18. eprintln!("{}", json);
  19. let insert_op: Operation = serde_json::from_str(&json).unwrap();
  20. assert_eq!(insert_op, operation);
  21. }
  22. #[test]
  23. fn operation_delete_serialize_test() {
  24. let operation = Operation::Delete(2);
  25. let json = serde_json::to_string(&operation).unwrap();
  26. let insert_op: Operation = serde_json::from_str(&json).unwrap();
  27. assert_eq!(insert_op, operation);
  28. }
  29. #[test]
  30. fn delta_serialize_test() {
  31. let mut delta = Delta::default();
  32. let attributes = AttributeBuilder::new()
  33. .add(Attribute::Bold(true))
  34. .add(Attribute::Italic(true))
  35. .build();
  36. let retain = OpBuilder::insert("123").attributes(attributes).build();
  37. delta.add(retain);
  38. delta.add(Operation::Retain(5.into()));
  39. delta.add(Operation::Delete(3));
  40. let json = serde_json::to_string(&delta).unwrap();
  41. eprintln!("{}", json);
  42. let delta_from_json = Delta::from_json(&json).unwrap();
  43. assert_eq!(delta_from_json, delta);
  44. }
  45. #[test]
  46. fn document_insert_serde_test() {
  47. let mut document = Document::new();
  48. document.insert(0, "\n");
  49. document.insert(0, "123");
  50. let json = document.to_json();
  51. assert_eq!(r#"[{"insert":"123\n"}]"#, json);
  52. assert_eq!(r#"[{"insert":"123\n"}]"#, Document::from_json(&json).unwrap().to_json());
  53. }