difftreelog
NFTPAR-142 Off-chain and on-chain data schema. set_variable_meta_data tests.
in: master
2 files changed
pallets/nft/src/lib.rsdiffbeforeafterboth1162 let target_collection = <Collection<T>>::get(collection_id);1162 let target_collection = <Collection<T>>::get(collection_id);1163 ensure!(Self::is_item_owner(sender.clone(), collection_id, item_id) ||1163 ensure!(Self::is_item_owner(sender.clone(), collection_id, item_id) ||1164 Self::is_owner_or_admin_permissions(collection_id, sender.clone()),1164 Self::is_owner_or_admin_permissions(collection_id, sender.clone()),1165 "Only item owner, collection owner and admins can modify item");1165 "Only item owner, collection owner and admins can modify item.");116611661167 Self::item_exists(collection_id, item_id, &target_collection.mode)?;1167 Self::item_exists(collection_id, item_id, &target_collection.mode)?;116811681169 match target_collection.mode1169 match target_collection.mode1170 {1170 {1171 CollectionMode::NFT => Self::set_nft_variable_data(collection_id, item_id, data)?,1171 CollectionMode::NFT => Self::set_nft_variable_data(collection_id, item_id, data)?,1172 CollectionMode::ReFungible(_) => Self::set_re_fungible_variable_data(collection_id, item_id, data)?,1172 CollectionMode::ReFungible(_) => Self::set_re_fungible_variable_data(collection_id, item_id, data)?,1173 CollectionMode::Fungible(_) => fail!("Can't store metadata in fungible tokens"),1173 CollectionMode::Fungible(_) => fail!("Can't store metadata in fungible tokens."),1174 _ => fail!("Unexpected collection type.")1174 _ => fail!("Unexpected collection type.")1175 };1175 };11761176pallets/nft/src/tests.rsdiffbeforeafterboth1768 });1768 });1769}1769}17701771#[test]1772fn set_variable_meta_data_on_nft_token_stores_variable_meta_data() {1773 new_test_ext().execute_with(|| {1774 default_limits();17751776 let collection_id = create_test_collection(&CollectionMode::NFT, 1);17771778 let origin1 = Origin::signed(1);1779 1780 let data = default_nft_data();1781 create_test_item(1, &data.into());1782 1783 let variable_data = b"test set_variable_meta_data method.".to_vec();1784 assert_ok!(TemplateModule::set_variable_meta_data(origin1, collection_id, 1, variable_data.clone()));17851786 assert_eq!(TemplateModule::nft_item_id(collection_id, 1).variable_data, variable_data);1787 });1788}17891790#[test]1791fn set_variable_meta_data_on_re_fungible_token_stores_variable_meta_data() {1792 new_test_ext().execute_with(|| {1793 default_limits();17941795 let collection_id = create_test_collection(&CollectionMode::ReFungible(3), 1);17961797 let origin1 = Origin::signed(1);17981799 let data = default_re_fungible_data();1800 create_test_item(1, &data.into());18011802 let variable_data = b"test set_variable_meta_data method.".to_vec();1803 assert_ok!(TemplateModule::set_variable_meta_data(origin1, collection_id, 1, variable_data.clone()));18041805 assert_eq!(TemplateModule::refungible_item_id(collection_id, 1).variable_data, variable_data);1806 });1807}180818091810#[test]1811fn set_variable_meta_data_on_fungible_token_fails() {1812 new_test_ext().execute_with(|| {1813 default_limits();18141815 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);18161817 let origin1 = Origin::signed(1);18181819 let data = default_fungible_data();1820 create_test_item(1, &data.into());18211822 let variable_data = b"test set_variable_meta_data method.".to_vec();1823 assert_noop!(TemplateModule::set_variable_meta_data(origin1, collection_id, 1, variable_data.clone()), "Can't store metadata in fungible tokens.");1824 });1825}