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
58decl_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's
60 // 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 {
6262
63 /// Next available collection ID63 /// Next available collection ID
64 pub NextCollectionID get(next_collection_id): u64 = 1;64 pub NextCollectionID get(fn next_collection_id): u64;
6565
66 /// Collection map66 /// Collection map
67 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>;
6868
69 /// 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>;
7171
72 /// Balance owner per collection map72 /// Balance owner per collection map
73 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)?;
114114
115 // Generate next collection ID115 // Generate next collection ID
116 let next_id = Self::next_collection_id();116 let next_id = NextCollectionID::get()
117 .checked_add(1)
118 .expect("collection id error");;
119
117 <NextCollectionID>::put(next_id+1);120 NextCollectionID::put(next_id);
118121
119 // Create new collection122 // Create new collection
120 let new_collection = CollectionType {123 let new_collection = CollectionType {
245 data: properties,248 data: properties,
246 };249 };
247250
248 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);
251254
252 Ok(())255 Ok(())
modifiedpallets/nft/src/tests.rsdiffbeforeafterboth
--- a/pallets/nft/src/tests.rs
+++ b/pallets/nft/src/tests.rs
@@ -17,7 +17,6 @@
 	new_test_ext().execute_with(|| {
         let size = 1024;
         let origin1 = Origin::signed(1);
-        let origin2 = Origin::signed(2);
 
         assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
         assert_ok!(TemplateModule::change_collection_owner(origin1.clone(), 1, 2));
@@ -52,33 +51,130 @@
 	});
 }
 
-// #[test]
-// fn burn_item() {
-// 	new_test_ext().execute_with(|| {
-//         let size = 1024;
-//         let origin1 = Origin::signed(1);
-//         let origin2 = Origin::signed(2);
+#[test]
+fn burn_item() {
+	new_test_ext().execute_with(|| {
+        let size = 1024;
+        let origin1 = Origin::signed(1);
+        let origin2 = Origin::signed(2);
+
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));
+        assert_ok!(TemplateModule::create_item(origin2.clone(), 1, [1,1,1].to_vec()));
+
+        // check balance (collection with id = 1, user id = 2)
+        assert_eq!(TemplateModule::balance_count((1, 2)), 1);
+
+        // burn item
+        assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1));
+        assert_noop!(TemplateModule::burn_item(origin1.clone(), 1, 1), "Item does not exists");
+	});
+}
+
+
+#[test]
+fn add_collection_admin() {
+	new_test_ext().execute_with(|| {
+        let size = 1024;
+        let origin1 = Origin::signed(1);
+        let origin2 = Origin::signed(2);
+        let origin3 = Origin::signed(3);
+
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
+
+        assert_eq!(TemplateModule::collection(1).owner, 1);
+        assert_eq!(TemplateModule::collection(2).owner, 2);
+        assert_eq!(TemplateModule::collection(3).owner, 3);
+
+        // collection admin
+        assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));
+        assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 3));
+
+        assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);
+        assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);
+        });
+}
+
+#[test]
+fn remove_collection_admin() {
+	new_test_ext().execute_with(|| {
+        let size = 1024;
+        let origin1 = Origin::signed(1);
+        let origin2 = Origin::signed(2);
+        let origin3 = Origin::signed(3);
+
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
+
+        assert_eq!(TemplateModule::collection(1).owner, 1);
+        assert_eq!(TemplateModule::collection(2).owner, 2);
+        assert_eq!(TemplateModule::collection(3).owner, 3);
+
+        // collection admin
+        assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));
+        assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 3));
+
+        assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);
+        assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);
+
+        // remove admin
+        assert_ok!(TemplateModule::remove_collection_admin(origin2.clone(), 1, 3));
+        assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), false);
+        });
+}
+
+#[test]
+fn balance_of() {
+	new_test_ext().execute_with(|| {
+        let size = 1024;
+        let origin1 = Origin::signed(1);
+        let origin2 = Origin::signed(2);
+        let origin3 = Origin::signed(3);
 
-//         assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
-//         assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));
-//         assert_ok!(TemplateModule::create_item(origin2.clone(), 1, [1,1,1].to_vec()));
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
 
-//         // check balance (collection with id = 1, user id = 2)
-//         assert_eq!(TemplateModule::balance_count((1, 2)), 1);
+        assert_eq!(TemplateModule::collection(1).owner, 1);
+        assert_eq!(TemplateModule::collection(2).owner, 2);
+        assert_eq!(TemplateModule::collection(3).owner, 3);
 
-//         // burn item
-//         assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1));
-//         assert_noop!(TemplateModule::burn_item(origin1.clone(), 1, 1), "Item does not exists");
-// 	});
-// }
+        // check balance before
+        assert_eq!(TemplateModule::balance_count((1, 1)), 0);
 
-// #[test]
-// fn correct_error_for_none_value() {
-// 	new_test_ext().execute_with(|| {
-// 		// Ensure the correct error is thrown on None value
-// 		assert_noop!(
-// 			TemplateModule::cause_error(Origin::signed(1)),
-// 			Error::<Test>::NoneValue
-// 		);
-// 	});
-// }
+        // create item
+        assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,1,1].to_vec()));
+ 
+        // check balance (collection with id = 1, user id = 2)
+        assert_eq!(TemplateModule::balance_count((1, 1)), 1);
+        assert_eq!(TemplateModule::item_id((1,1)).owner, 1);
+        });
+}
+
+#[test]
+fn transfer() {
+	new_test_ext().execute_with(|| {
+        let size = 1024;
+        let origin1 = Origin::signed(1);
+        let origin2 = Origin::signed(2);
+        let origin3 = Origin::signed(3);
+
+        assert_ok!(TemplateModule::create_collection(origin1.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin2.clone(), size));
+        assert_ok!(TemplateModule::create_collection(origin3.clone(), size));
+
+        assert_eq!(TemplateModule::collection(1).owner, 1);
+        assert_eq!(TemplateModule::collection(2).owner, 2);
+        assert_eq!(TemplateModule::collection(3).owner, 3);
+
+        // create item
+        assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,1,1].to_vec()));
+
+        // transfer
+        assert_ok!(TemplateModule::transfer(origin1.clone(), 1, 1, 2));
+        assert_eq!(TemplateModule::item_id((1,1)).owner, 2);
+        });
+}