add_class_schema.rs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. use super::*;
  2. #[test]
  3. fn add_class_schema_success() {
  4. with_test_externalities(|| {
  5. // Create simple class with default permissions
  6. assert_ok!(create_simple_class_with_default_permissions(LEAD_ORIGIN));
  7. // Runtime tested state before call
  8. // Events number before tested calls
  9. let number_of_events_before_call = System::events().len();
  10. let first_property =
  11. Property::default_with_name(PropertyNameLengthConstraint::get().max() as usize);
  12. let second_property =
  13. Property::default_with_name((PropertyNameLengthConstraint::get().max() - 1) as usize);
  14. // Add first class schema
  15. assert_ok!(add_class_schema(
  16. LEAD_ORIGIN,
  17. FIRST_CLASS_ID,
  18. BTreeSet::new(),
  19. vec![first_property.clone()]
  20. ));
  21. // Add second class schema
  22. assert_ok!(add_class_schema(
  23. LEAD_ORIGIN,
  24. FIRST_CLASS_ID,
  25. BTreeSet::from_iter(vec![FIRST_PROPERTY_ID].into_iter()),
  26. vec![second_property.clone()]
  27. ));
  28. // Runtime tested state after call
  29. // Ensure class schemas added succesfully
  30. let mut class = create_class_with_default_permissions();
  31. class.properties = vec![first_property, second_property];
  32. class.schemas = vec![
  33. Schema::new(BTreeSet::from_iter(vec![FIRST_PROPERTY_ID].into_iter())),
  34. Schema::new(BTreeSet::from_iter(
  35. vec![FIRST_PROPERTY_ID, SECOND_PROPERTY_ID].into_iter(),
  36. )),
  37. ];
  38. assert_eq!(class_by_id(FIRST_CLASS_ID), class);
  39. let class_schema_added_event =
  40. get_test_event(RawEvent::ClassSchemaAdded(FIRST_CLASS_ID, SECOND_SCHEMA_ID));
  41. // Last event checked
  42. assert_event_success(class_schema_added_event, number_of_events_before_call + 2);
  43. })
  44. }