serde_test.rs 1.8 KB

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