git.delta.rocks / unique-network / refs/commits / da8632783f1a

difftreelog

tests added

str-mv2020-05-07parent: #e058322.patch.diff
in: master

2 files changed

modifiedpallets/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(())
modifiedpallets/nft/src/tests.rsdiffbeforeafterboth
before · pallets/nft/src/tests.rs
1// 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// }
after · pallets/nft/src/tests.rs
1// 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);2021        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));22        assert_ok!(TemplateModule::change_collection_owner(origin1.clone(), 1, 2));23        assert_eq!(TemplateModule::collection(1).owner, 2);24	});25}2627#[test]28fn destroy_collection() {29	new_test_ext().execute_with(|| {30        let size = 1024;31        let origin1 = Origin::signed(1);3233        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));34        assert_ok!(TemplateModule::destroy_collection(origin1.clone(), 1));35	});36}3738#[test]39fn create_item() {40	new_test_ext().execute_with(|| {41        let size = 1024;42        let origin1 = Origin::signed(1);43        let origin2 = Origin::signed(2);4445        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));46        assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));47        assert_ok!(TemplateModule::create_item(origin2.clone(), 1, [1,1,1].to_vec()));4849        // check balance (collection with id = 1, user id = 2)50        assert_eq!(TemplateModule::balance_count((1, 2)), 1);51	});52}5354#[test]55fn burn_item() {56	new_test_ext().execute_with(|| {57        let size = 1024;58        let origin1 = Origin::signed(1);59        let origin2 = Origin::signed(2);6061        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));62        assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));63        assert_ok!(TemplateModule::create_item(origin2.clone(), 1, [1,1,1].to_vec()));6465        // 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 151        // check balance (collection with id = 1, user id = 2)152        assert_eq!(TemplateModule::balance_count((1, 1)), 1);153        assert_eq!(TemplateModule::item_id((1,1)).owner, 1);154        });155}156157#[test]158fn transfer() {159	new_test_ext().execute_with(|| {160        let size = 1024;161        let origin1 = Origin::signed(1);162        let origin2 = Origin::signed(2);163        let origin3 = Origin::signed(3);164165        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));166        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));167        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));168169        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}