update_entity_permissions.rs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. use super::*;
  2. #[test]
  3. fn update_entity_permissions_success() {
  4. with_test_externalities(|| {
  5. // Create simple class with default permissions
  6. assert_ok!(create_simple_class(LEAD_ORIGIN, ClassType::Valid));
  7. let actor = Actor::Lead;
  8. // Create entity
  9. assert_ok!(create_entity(LEAD_ORIGIN, FIRST_CLASS_ID, actor));
  10. // Runtime state before tested call
  11. // Ensure entity permissions of newly created Entity are equal to default ones.
  12. let mut entity_permissions = EntityPermissions::default();
  13. assert_eq!(
  14. entity_by_id(FIRST_ENTITY_ID).get_permissions(),
  15. entity_permissions
  16. );
  17. // Events number before tested call
  18. let number_of_events_before_call = System::events().len();
  19. // Update entity permissions for chosen entity
  20. assert_ok!(update_entity_permissions(
  21. LEAD_ORIGIN,
  22. FIRST_ENTITY_ID,
  23. None,
  24. Some(false)
  25. ));
  26. // Runtime tested state after call
  27. entity_permissions.set_referencable(false);
  28. assert_eq!(
  29. entity_by_id(FIRST_ENTITY_ID).get_permissions(),
  30. entity_permissions
  31. );
  32. let entity_permissions_updated_event =
  33. get_test_event(RawEvent::EntityPermissionsUpdated(FIRST_ENTITY_ID));
  34. // Last event checked
  35. assert_event_success(
  36. entity_permissions_updated_event,
  37. number_of_events_before_call + 1,
  38. );
  39. })
  40. }
  41. #[test]
  42. fn update_entity_permissions_lead_auth_failed() {
  43. with_test_externalities(|| {
  44. // Create simple class with default permissions
  45. assert_ok!(create_simple_class(LEAD_ORIGIN, ClassType::Valid));
  46. let actor = Actor::Lead;
  47. // Create entity
  48. assert_ok!(create_entity(LEAD_ORIGIN, FIRST_CLASS_ID, actor));
  49. // Runtime state before tested call
  50. // Events number before tested call
  51. let number_of_events_before_call = System::events().len();
  52. // Make an attempt to update entity permissions for chosen entity under non lead origin
  53. let update_entity_permissions_result =
  54. update_entity_permissions(FIRST_MEMBER_ORIGIN, FIRST_ENTITY_ID, None, Some(false));
  55. // Failure checked
  56. assert_failure(
  57. update_entity_permissions_result,
  58. Error::<Runtime>::LeadAuthFailed,
  59. number_of_events_before_call,
  60. );
  61. })
  62. }
  63. #[test]
  64. fn update_entity_permissions_of_non_existent_entity() {
  65. with_test_externalities(|| {
  66. // Create simple class with default permissions
  67. assert_ok!(create_simple_class(LEAD_ORIGIN, ClassType::Valid));
  68. // Runtime state before tested call
  69. // Events number before tested call
  70. let number_of_events_before_call = System::events().len();
  71. // Make an attempt to update entity permissions for chosen entity under non lead origin
  72. let update_entity_permissions_result =
  73. update_entity_permissions(LEAD_ORIGIN, UNKNOWN_ENTITY_ID, None, Some(false));
  74. // Failure checked
  75. assert_failure(
  76. update_entity_permissions_result,
  77. Error::<Runtime>::EntityNotFound,
  78. number_of_events_before_call,
  79. );
  80. })
  81. }