add_curator_to_group.rs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. use super::*;
  2. #[test]
  3. fn add_curator_to_group_success() {
  4. with_test_externalities(|| {
  5. // Add curator group
  6. assert_ok!(add_curator_group(LEAD_ORIGIN));
  7. // Runtime tested state before call
  8. // Events number before tested call
  9. let number_of_events_before_call = System::events().len();
  10. // Add curator to group
  11. assert_ok!(add_curator_to_group(
  12. LEAD_ORIGIN,
  13. FIRST_CURATOR_GROUP_ID,
  14. FIRST_CURATOR_ID
  15. ));
  16. // Runtime tested state after call
  17. // Ensure curator added to group
  18. let mut curator_group = CuratorGroup::default();
  19. curator_group.get_curators_mut().insert(FIRST_CURATOR_ID);
  20. assert_eq!(curator_group_by_id(FIRST_CURATOR_GROUP_ID), curator_group);
  21. let curator_group_curator_added_event = get_test_event(RawEvent::CuratorAdded(
  22. FIRST_CURATOR_GROUP_ID,
  23. FIRST_CURATOR_ID,
  24. ));
  25. // Event checked
  26. assert_event_success(
  27. curator_group_curator_added_event,
  28. number_of_events_before_call + 1,
  29. );
  30. })
  31. }
  32. #[test]
  33. fn add_curator_to_group_lead_auth_failed() {
  34. with_test_externalities(|| {
  35. // Add curator group
  36. assert_ok!(add_curator_group(LEAD_ORIGIN));
  37. // Runtime tested state before call
  38. // Events number before tested call
  39. let number_of_events_before_call = System::events().len();
  40. // Make an attempt to add curator to group from non lead origin
  41. let add_curator_to_group_result = add_curator_to_group(
  42. FIRST_MEMBER_ORIGIN,
  43. FIRST_CURATOR_GROUP_ID,
  44. FIRST_CURATOR_ID,
  45. );
  46. // Failure checked
  47. assert_failure(
  48. add_curator_to_group_result,
  49. Error::<Runtime>::LeadAuthFailed,
  50. number_of_events_before_call,
  51. );
  52. })
  53. }
  54. #[test]
  55. fn add_curator_to_non_existent_group() {
  56. with_test_externalities(|| {
  57. // Runtime tested state before call
  58. // Events number before tested call
  59. let number_of_events_before_call = System::events().len();
  60. // Make an attempt to add curator to group that does not exist
  61. let add_curator_to_group_result =
  62. add_curator_to_group(LEAD_ORIGIN, UNKNOWN_CURATOR_GROUP_ID, FIRST_CURATOR_ID);
  63. // Failure checked
  64. assert_failure(
  65. add_curator_to_group_result,
  66. Error::<Runtime>::CuratorGroupDoesNotExist,
  67. number_of_events_before_call,
  68. );
  69. })
  70. }
  71. #[test]
  72. fn add_curator_to_group_curators_limit_reached() {
  73. with_test_externalities(|| {
  74. // Add curator group
  75. assert_ok!(add_curator_group(LEAD_ORIGIN));
  76. // Runtime tested state before call
  77. // Events number before tested call
  78. let number_of_events_before_call = System::events().len();
  79. let mut number_of_curators_added = 0;
  80. // Adding curators to the same group until limit reached
  81. let add_curator_to_group_result = loop {
  82. // Add curator to group
  83. let add_curator_to_group_result = add_curator_to_group(
  84. LEAD_ORIGIN,
  85. FIRST_CURATOR_GROUP_ID,
  86. number_of_curators_added,
  87. );
  88. if add_curator_to_group_result.is_err() {
  89. break add_curator_to_group_result;
  90. } else {
  91. number_of_curators_added += 1;
  92. }
  93. };
  94. // Ensure number of curators added is equal to the MaxNumberOfCuratorsPerGroup runtime limit
  95. assert_eq!(
  96. number_of_curators_added as u32,
  97. MaxNumberOfCuratorsPerGroup::get()
  98. );
  99. // Failure checked
  100. assert_failure(
  101. add_curator_to_group_result,
  102. Error::<Runtime>::CuratorsPerGroupLimitReached,
  103. number_of_events_before_call + number_of_curators_added as usize,
  104. );
  105. })
  106. }