task_order_test.rs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. use crate::task_test::script::{
  2. make_text_background_task, make_text_user_interactive_task, SearchScript::*, SearchTest,
  3. };
  4. #[tokio::test]
  5. async fn task_add_single_background_task_test() {
  6. let test = SearchTest::new().await;
  7. let (task, ret) = make_text_background_task(test.next_task_id().await, "");
  8. test.run_scripts(vec![AddTask { task }]).await;
  9. let result = ret.await.unwrap();
  10. assert!(result.state.is_done())
  11. }
  12. #[tokio::test]
  13. async fn task_add_multiple_background_tasks_test() {
  14. let test = SearchTest::new().await;
  15. let (task_1, ret_1) = make_text_background_task(test.next_task_id().await, "");
  16. let (task_2, ret_2) = make_text_background_task(test.next_task_id().await, "");
  17. let (task_3, ret_3) = make_text_background_task(test.next_task_id().await, "");
  18. test
  19. .run_scripts(vec![
  20. AddTask { task: task_1 },
  21. AddTask { task: task_2 },
  22. AddTask { task: task_3 },
  23. AssertExecuteOrder {
  24. execute_order: vec![3, 2, 1],
  25. rets: vec![ret_1, ret_2, ret_3],
  26. },
  27. ])
  28. .await;
  29. }
  30. #[tokio::test]
  31. async fn task_add_multiple_user_interactive_tasks_test() {
  32. let test = SearchTest::new().await;
  33. let (task_1, ret_1) = make_text_user_interactive_task(test.next_task_id().await, "");
  34. let (task_2, ret_2) = make_text_user_interactive_task(test.next_task_id().await, "");
  35. let (task_3, ret_3) = make_text_user_interactive_task(test.next_task_id().await, "");
  36. test
  37. .run_scripts(vec![
  38. AddTask { task: task_1 },
  39. AddTask { task: task_2 },
  40. AddTask { task: task_3 },
  41. AssertExecuteOrder {
  42. execute_order: vec![3, 2, 1],
  43. rets: vec![ret_1, ret_2, ret_3],
  44. },
  45. ])
  46. .await;
  47. }
  48. #[tokio::test]
  49. async fn task_add_multiple_different_kind_tasks_test() {
  50. let test = SearchTest::new().await;
  51. let (task_1, ret_1) = make_text_background_task(test.next_task_id().await, "");
  52. let (task_2, ret_2) = make_text_user_interactive_task(test.next_task_id().await, "");
  53. let (task_3, ret_3) = make_text_background_task(test.next_task_id().await, "");
  54. test
  55. .run_scripts(vec![
  56. AddTask { task: task_1 },
  57. AddTask { task: task_2 },
  58. AddTask { task: task_3 },
  59. AssertExecuteOrder {
  60. execute_order: vec![2, 3, 1],
  61. rets: vec![ret_1, ret_2, ret_3],
  62. },
  63. ])
  64. .await;
  65. }
  66. #[tokio::test]
  67. async fn task_add_multiple_different_kind_tasks_test2() {
  68. let test = SearchTest::new().await;
  69. let mut tasks = vec![];
  70. let mut rets = vec![];
  71. for i in 0..10 {
  72. let (task, ret) = if i % 2 == 0 {
  73. make_text_background_task(test.next_task_id().await, "")
  74. } else {
  75. make_text_user_interactive_task(test.next_task_id().await, "")
  76. };
  77. tasks.push(task);
  78. rets.push(ret);
  79. }
  80. test
  81. .run_scripts(vec![
  82. AddTasks { tasks },
  83. AssertExecuteOrder {
  84. execute_order: vec![10, 8, 6, 4, 2, 9, 7, 5, 3, 1],
  85. rets,
  86. },
  87. ])
  88. .await;
  89. }
  90. // #[tokio::test]
  91. // async fn task_add_1000_tasks_test() {
  92. // let test = SearchTest::new().await;
  93. // let mut tasks = vec![];
  94. // let mut execute_order = vec![];
  95. // let mut rets = vec![];
  96. //
  97. // for i in 1..1000 {
  98. // let (task, ret) = make_text_background_task(test.next_task_id().await, "");
  99. // execute_order.push(i);
  100. // tasks.push(task);
  101. // rets.push(ret);
  102. // }
  103. // execute_order.reverse();
  104. //
  105. // test.run_scripts(vec![AddTasks { tasks }, AssertExecuteOrder { execute_order, rets }])
  106. // .await;
  107. // }