remove_maintainer_from_class.rs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. use super::*;
  2. #[test]
  3. fn remove_maintainer_from_class_success() {
  4. with_test_externalities(|| {
  5. // Create simple class with default permissions
  6. assert_ok!(create_simple_class(LEAD_ORIGIN, ClassType::Valid));
  7. // Add first curator group
  8. assert_ok!(add_curator_group(LEAD_ORIGIN));
  9. // Add second curator group
  10. assert_ok!(add_curator_group(LEAD_ORIGIN));
  11. // Add first maintainer to class
  12. assert_ok!(add_maintainer_to_class(
  13. LEAD_ORIGIN,
  14. FIRST_CLASS_ID,
  15. FIRST_CURATOR_GROUP_ID
  16. ));
  17. // Add second maintainer to class
  18. assert_ok!(add_maintainer_to_class(
  19. LEAD_ORIGIN,
  20. FIRST_CLASS_ID,
  21. SECOND_CURATOR_GROUP_ID
  22. ));
  23. // Runtime tested state before call
  24. // Events number before tested call
  25. let number_of_events_before_call = System::events().len();
  26. // Remove first maintainer from class
  27. assert_ok!(remove_maintainer_from_class(
  28. LEAD_ORIGIN,
  29. FIRST_CLASS_ID,
  30. FIRST_CURATOR_GROUP_ID
  31. ));
  32. // Runtime tested state after call
  33. // Ensure curator_group removed from class maintainers set
  34. let mut class = create_class_with_default_permissions();
  35. class
  36. .get_permissions_mut()
  37. .get_maintainers_mut()
  38. .insert(SECOND_CURATOR_GROUP_ID);
  39. assert_eq!(class_by_id(FIRST_CLASS_ID), class);
  40. let maintainer_removed_event = get_test_event(RawEvent::MaintainerRemoved(
  41. FIRST_CLASS_ID,
  42. FIRST_CURATOR_GROUP_ID,
  43. ));
  44. // Event checked
  45. assert_event(maintainer_removed_event, number_of_events_before_call + 1);
  46. })
  47. }
  48. #[test]
  49. fn remove_maintainer_from_class_lead_auth_failed() {
  50. with_test_externalities(|| {
  51. // Create simple class with default permissions
  52. assert_ok!(create_simple_class(LEAD_ORIGIN, ClassType::Valid));
  53. // Add curator group
  54. assert_ok!(add_curator_group(LEAD_ORIGIN));
  55. // Add maintainer to class
  56. assert_ok!(add_maintainer_to_class(
  57. LEAD_ORIGIN,
  58. FIRST_CLASS_ID,
  59. FIRST_CURATOR_GROUP_ID
  60. ));
  61. // Runtime tested state before call
  62. // Events number before tested call
  63. let number_of_events_before_call = System::events().len();
  64. // Make an attempt to remove maintainer from class under non lead origin
  65. let remove_maintainer_from_class_result = remove_maintainer_from_class(
  66. FIRST_MEMBER_ORIGIN,
  67. FIRST_CLASS_ID,
  68. FIRST_CURATOR_GROUP_ID,
  69. );
  70. // Failure checked
  71. assert_failure(
  72. remove_maintainer_from_class_result,
  73. Error::<Runtime>::LeadAuthFailed,
  74. number_of_events_before_call,
  75. );
  76. })
  77. }
  78. #[test]
  79. fn remove_maintainer_from_non_existent_class() {
  80. with_test_externalities(|| {
  81. // Add curator group
  82. assert_ok!(add_curator_group(LEAD_ORIGIN));
  83. // Runtime tested state before call
  84. // Events number before tested call
  85. let number_of_events_before_call = System::events().len();
  86. // Make an attempt to remove maintainer from non existent class
  87. let remove_maintainer_from_class_result =
  88. remove_maintainer_from_class(LEAD_ORIGIN, UNKNOWN_CLASS_ID, FIRST_CURATOR_GROUP_ID);
  89. // Failure checked
  90. assert_failure(
  91. remove_maintainer_from_class_result,
  92. Error::<Runtime>::ClassNotFound,
  93. number_of_events_before_call,
  94. );
  95. })
  96. }
  97. #[test]
  98. fn remove_maintainer_that_was_not_added_to_class_maintainers_set() {
  99. with_test_externalities(|| {
  100. // Create simple class with default permissions
  101. assert_ok!(create_simple_class(LEAD_ORIGIN, ClassType::Valid));
  102. // Add curator group
  103. assert_ok!(add_curator_group(LEAD_ORIGIN));
  104. // Runtime tested state before call
  105. // Events number before tested call
  106. let number_of_events_before_call = System::events().len();
  107. // Make an attempt to remove curator group maintainer, that was not added to corresponding class maintainers set yet
  108. let remove_maintainer_from_class_result =
  109. remove_maintainer_from_class(LEAD_ORIGIN, FIRST_CLASS_ID, UNKNOWN_CURATOR_GROUP_ID);
  110. // Failure checked
  111. assert_failure(
  112. remove_maintainer_from_class_result,
  113. Error::<Runtime>::MaintainerDoesNotExist,
  114. number_of_events_before_call,
  115. );
  116. })
  117. }