revision_disk_test.rs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. use crate::revision_test::script::RevisionScript::*;
  2. use crate::revision_test::script::{InvalidRevisionObject, RevisionTest};
  3. #[tokio::test]
  4. async fn revision_write_to_disk_test() {
  5. let test = RevisionTest::new_with_configuration(2).await;
  6. test.run_script(AddLocalRevision {
  7. content: "123".to_string(),
  8. })
  9. .await;
  10. test.run_scripts(vec![
  11. AssertNumberOfRevisionsInDisk { num: 0 },
  12. WaitWhenWriteToDisk,
  13. AssertNumberOfRevisionsInDisk { num: 1 },
  14. ])
  15. .await;
  16. }
  17. #[tokio::test]
  18. async fn revision_write_to_disk_with_merge_test() {
  19. let test = RevisionTest::new_with_configuration(100).await;
  20. for i in 0..1000 {
  21. test.run_script(AddLocalRevision {
  22. content: format!("{}", i),
  23. })
  24. .await;
  25. }
  26. test.run_scripts(vec![
  27. AssertNumberOfRevisionsInDisk { num: 0 },
  28. AssertNumberOfSyncRevisions { num: 10 },
  29. WaitWhenWriteToDisk,
  30. AssertNumberOfRevisionsInDisk { num: 10 },
  31. ])
  32. .await;
  33. }
  34. #[tokio::test]
  35. async fn revision_read_from_disk_test() {
  36. let test = RevisionTest::new_with_configuration(2).await;
  37. test.run_scripts(vec![
  38. AddLocalRevision {
  39. content: "123".to_string(),
  40. },
  41. AssertNumberOfRevisionsInDisk { num: 0 },
  42. WaitWhenWriteToDisk,
  43. AssertNumberOfRevisionsInDisk { num: 1 },
  44. ])
  45. .await;
  46. let test = RevisionTest::new_with_other(test).await;
  47. test.run_scripts(vec![
  48. AssertNextSyncRevisionId { rev_id: Some(1) },
  49. AddLocalRevision {
  50. content: "456".to_string(),
  51. },
  52. AckRevision { rev_id: 1 },
  53. AssertNextSyncRevisionId { rev_id: Some(2) },
  54. ])
  55. .await;
  56. }
  57. #[tokio::test]
  58. async fn revision_read_from_disk_with_invalid_record_test() {
  59. let test = RevisionTest::new_with_configuration(2).await;
  60. test.run_scripts(vec![AddLocalRevision {
  61. content: "123".to_string(),
  62. }])
  63. .await;
  64. test.run_scripts(vec![
  65. AddInvalidLocalRevision {
  66. bytes: InvalidRevisionObject::new().to_bytes(),
  67. },
  68. WaitWhenWriteToDisk,
  69. ])
  70. .await;
  71. let test = RevisionTest::new_with_other(test).await;
  72. test.run_scripts(vec![AssertNextSyncRevisionContent {
  73. expected: "123".to_string(),
  74. }])
  75. .await;
  76. }