task_order_test.rs 3.5 KB

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