difftreelog
tests added
in: master
2 files changed
pallets/nft/src/lib.rsdiffbeforeafterboth--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -58,16 +58,16 @@
decl_storage! {
// It is important to update your storage name so that your pallet's
// storage items are isolated from other pallets.
- trait Store for Module<T: Trait> as TemplateModule {
+ trait Store for Module<T: Trait> as Nft {
/// Next available collection ID
- pub NextCollectionID get(next_collection_id): u64 = 1;
+ pub NextCollectionID get(fn next_collection_id): u64;
/// Collection map
- pub Collection get(collection): map hasher(blake2_128_concat) u64 => CollectionType<T::AccountId>;
+ pub Collection get(collection): map hasher(identity) u64 => CollectionType<T::AccountId>;
/// Admins map (collection)
- pub AdminList get(admin_list_collection): map hasher(blake2_128_concat) u64 => Vec<T::AccountId>;
+ pub AdminList get(admin_list_collection): map hasher(identity) u64 => Vec<T::AccountId>;
/// Balance owner per collection map
pub Balance get(balance_count): map hasher(blake2_128_concat) (u64, T::AccountId) => u64;
@@ -113,8 +113,11 @@
let who = ensure_signed(origin)?;
// Generate next collection ID
- let next_id = Self::next_collection_id();
- <NextCollectionID>::put(next_id+1);
+ let next_id = NextCollectionID::get()
+ .checked_add(1)
+ .expect("collection id error");;
+
+ NextCollectionID::put(next_id);
// Create new collection
let new_collection = CollectionType {
@@ -245,8 +248,8 @@
data: properties,
};
- let current_index = <ItemListIndex>::get(collection_id);
- <ItemListIndex>::insert(collection_id, current_index+1);
+ let current_index = <ItemListIndex>::get(collection_id) + 1;
+ <ItemListIndex>::insert(collection_id, current_index);
<ItemList<T>>::insert((collection_id, current_index), new_item);
Ok(())
pallets/nft/src/tests.rsdiffbeforeafterboth1// Tests to be written here2use crate::{ mock::*};3use frame_support::{assert_ok, assert_noop};45#[test]6fn create_collection_test() {7 new_test_ext().execute_with(|| {8 let size = 1024;9 let origin1 = Origin::signed(1);10 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));11 assert_eq!(TemplateModule::collection(1).owner, 1);12 });13}1415#[test]16fn change_collection_owner() {17 new_test_ext().execute_with(|| {18 let size = 1024;19 let origin1 = Origin::signed(1);20 let origin2 = Origin::signed(2);2122 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));23 assert_ok!(TemplateModule::change_collection_owner(origin1.clone(), 1, 2));24 assert_eq!(TemplateModule::collection(1).owner, 2);25 });26}2728#[test]29fn destroy_collection() {30 new_test_ext().execute_with(|| {31 let size = 1024;32 let origin1 = Origin::signed(1);3334 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));35 assert_ok!(TemplateModule::destroy_collection(origin1.clone(), 1));36 });37}3839#[test]40fn create_item() {41 new_test_ext().execute_with(|| {42 let size = 1024;43 let origin1 = Origin::signed(1);44 let origin2 = Origin::signed(2);4546 assert_ok!(TemplateModule::create_collection(origin1.clone(), size));47 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));48 assert_ok!(TemplateModule::create_item(origin2.clone(), 1, [1,1,1].to_vec()));4950 // check balance (collection with id = 1, user id = 2)51 assert_eq!(TemplateModule::balance_count((1, 2)), 1);52 });53}5455// #[test]56// fn burn_item() {57// new_test_ext().execute_with(|| {58// let size = 1024;59// let origin1 = Origin::signed(1);60// let origin2 = Origin::signed(2);6162// assert_ok!(TemplateModule::create_collection(origin1.clone(), size));63// assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));64// assert_ok!(TemplateModule::create_item(origin2.clone(), 1, [1,1,1].to_vec()));6566// // check balance (collection with id = 1, user id = 2)67// assert_eq!(TemplateModule::balance_count((1, 2)), 1);6869// // burn item70// assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1));71// assert_noop!(TemplateModule::burn_item(origin1.clone(), 1, 1), "Item does not exists");72// });73// }7475// #[test]76// fn correct_error_for_none_value() {77// new_test_ext().execute_with(|| {78// // Ensure the correct error is thrown on None value79// assert_noop!(80// TemplateModule::cause_error(Origin::signed(1)),81// Error::<Test>::NoneValue82// );83// });84// }