difftreelog
tests added
in: master
2 files changed
pallets/nft/src/lib.rsdiffbeforeafterboth58decl_storage! {58decl_storage! {59 // It is important to update your storage name so that your pallet's59 // It is important to update your storage name so that your pallet's60 // storage items are isolated from other pallets.60 // storage items are isolated from other pallets.61 trait Store for Module<T: Trait> as TemplateModule {61 trait Store for Module<T: Trait> as Nft {626263 /// Next available collection ID63 /// Next available collection ID64 pub NextCollectionID get(next_collection_id): u64 = 1;64 pub NextCollectionID get(fn next_collection_id): u64;656566 /// Collection map66 /// Collection map67 pub Collection get(collection): map hasher(blake2_128_concat) u64 => CollectionType<T::AccountId>;67 pub Collection get(collection): map hasher(identity) u64 => CollectionType<T::AccountId>;686869 /// Admins map (collection)69 /// Admins map (collection)70 pub AdminList get(admin_list_collection): map hasher(blake2_128_concat) u64 => Vec<T::AccountId>;70 pub AdminList get(admin_list_collection): map hasher(identity) u64 => Vec<T::AccountId>;717172 /// Balance owner per collection map72 /// Balance owner per collection map73 pub Balance get(balance_count): map hasher(blake2_128_concat) (u64, T::AccountId) => u64;73 pub Balance get(balance_count): map hasher(blake2_128_concat) (u64, T::AccountId) => u64;113 let who = ensure_signed(origin)?;113 let who = ensure_signed(origin)?;114114115 // Generate next collection ID115 // Generate next collection ID116 let next_id = Self::next_collection_id();116 let next_id = NextCollectionID::get()117 .checked_add(1)118 .expect("collection id error");;119117 <NextCollectionID>::put(next_id+1);120 NextCollectionID::put(next_id);118121119 // Create new collection122 // Create new collection120 let new_collection = CollectionType {123 let new_collection = CollectionType {245 data: properties,248 data: properties,246 };249 };247250248 let current_index = <ItemListIndex>::get(collection_id);251 let current_index = <ItemListIndex>::get(collection_id) + 1;249 <ItemListIndex>::insert(collection_id, current_index+1);252 <ItemListIndex>::insert(collection_id, current_index);250 <ItemList<T>>::insert((collection_id, current_index), new_item);253 <ItemList<T>>::insert((collection_id, current_index), new_item);251254252 Ok(())255 Ok(())pallets/nft/src/tests.rsdiffbeforeafterboth17 new_test_ext().execute_with(|| {17 new_test_ext().execute_with(|| {18 let size = 1024;18 let size = 1024;19 let origin1 = Origin::signed(1);19 let origin1 = Origin::signed(1);20 let origin2 = Origin::signed(2);212022 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));21 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));23 assert_ok!(TemplateModule::change_collection_owner(origin1.clone(), 1, 2));22 assert_ok!(TemplateModule::change_collection_owner(origin1.clone(), 1, 2));52 });51 });53}52}545355// #[test]54#[test]56// fn burn_item() {55fn burn_item() {57// new_test_ext().execute_with(|| {56 new_test_ext().execute_with(|| {58// let size = 1024;57 let size = 1024;59// let origin1 = Origin::signed(1);58 let origin1 = Origin::signed(1);60// let origin2 = Origin::signed(2);59 let origin2 = Origin::signed(2);616062// assert_ok!(TemplateModule::create_collection(origin1.clone(), size));61 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));63// assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));62 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));64// assert_ok!(TemplateModule::create_item(origin2.clone(), 1, [1,1,1].to_vec()));63 assert_ok!(TemplateModule::create_item(origin2.clone(), 1, [1,1,1].to_vec()));656465 // check balance (collection with id = 1, user id = 2)66 assert_eq!(TemplateModule::balance_count((1, 2)), 1);6768 // burn item69 assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1));70 assert_noop!(TemplateModule::burn_item(origin1.clone(), 1, 1), "Item does not exists");71 });72}737475#[test]76fn add_collection_admin() {77 new_test_ext().execute_with(|| {78 let size = 1024;79 let origin1 = Origin::signed(1);80 let origin2 = Origin::signed(2);81 let origin3 = Origin::signed(3);8283 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));84 assert_ok!(TemplateModule::create_collection(origin2.clone(), size));85 assert_ok!(TemplateModule::create_collection(origin3.clone(), size));8687 assert_eq!(TemplateModule::collection(1).owner, 1);88 assert_eq!(TemplateModule::collection(2).owner, 2);89 assert_eq!(TemplateModule::collection(3).owner, 3);9091 // collection admin92 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));93 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 3));9495 assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);96 assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);97 });98}99100#[test]101fn remove_collection_admin() {102 new_test_ext().execute_with(|| {103 let size = 1024;104 let origin1 = Origin::signed(1);105 let origin2 = Origin::signed(2);106 let origin3 = Origin::signed(3);107108 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));109 assert_ok!(TemplateModule::create_collection(origin2.clone(), size));110 assert_ok!(TemplateModule::create_collection(origin3.clone(), size));111112 assert_eq!(TemplateModule::collection(1).owner, 1);113 assert_eq!(TemplateModule::collection(2).owner, 2);114 assert_eq!(TemplateModule::collection(3).owner, 3);115116 // collection admin117 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));118 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 3));119120 assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);121 assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);122123 // remove admin124 assert_ok!(TemplateModule::remove_collection_admin(origin2.clone(), 1, 3));125 assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), false);126 });127}128129#[test]130fn balance_of() {131 new_test_ext().execute_with(|| {132 let size = 1024;133 let origin1 = Origin::signed(1);134 let origin2 = Origin::signed(2);135 let origin3 = Origin::signed(3);136137 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));138 assert_ok!(TemplateModule::create_collection(origin2.clone(), size));139 assert_ok!(TemplateModule::create_collection(origin3.clone(), size));140141 assert_eq!(TemplateModule::collection(1).owner, 1);142 assert_eq!(TemplateModule::collection(2).owner, 2);143 assert_eq!(TemplateModule::collection(3).owner, 3);144145 // check balance before146 assert_eq!(TemplateModule::balance_count((1, 1)), 0);147148 // create item149 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,1,1].to_vec()));150 66// // check balance (collection with id = 1, user id = 2)151 // check balance (collection with id = 1, user id = 2)67// assert_eq!(TemplateModule::balance_count((1, 2)), 1);152 assert_eq!(TemplateModule::balance_count((1, 1)), 1);68153 assert_eq!(TemplateModule::item_id((1,1)).owner, 1);69// // burn item154 });70// assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1));155}71// assert_noop!(TemplateModule::burn_item(origin1.clone(), 1, 1), "Item does not exists");15672// });157#[test]73// }158fn transfer() {74159 new_test_ext().execute_with(|| {75// #[test]160 let size = 1024;76// fn correct_error_for_none_value() {161 let origin1 = Origin::signed(1);77// new_test_ext().execute_with(|| {162 let origin2 = Origin::signed(2);78// // Ensure the correct error is thrown on None value163 let origin3 = Origin::signed(3);79// assert_noop!(16480// TemplateModule::cause_error(Origin::signed(1)),165 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));81// Error::<Test>::NoneValue166 assert_ok!(TemplateModule::create_collection(origin2.clone(), size));82// );167 assert_ok!(TemplateModule::create_collection(origin3.clone(), size));83// });16884// }169 assert_eq!(TemplateModule::collection(1).owner, 1);170 assert_eq!(TemplateModule::collection(2).owner, 2);171 assert_eq!(TemplateModule::collection(3).owner, 3);172173 // create item174 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,1,1].to_vec()));175176 // transfer177 assert_ok!(TemplateModule::transfer(origin1.clone(), 1, 1, 2));178 assert_eq!(TemplateModule::item_id((1,1)).owner, 2);179 });180}85181