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
17 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);
2120
22 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}
5453
55// #[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);
6160
62// 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()));
6564
65 // check balance (collection with id = 1, user id = 2)
66 assert_eq!(TemplateModule::balance_count((1, 2)), 1);
67
68 // burn item
69 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}
73
74
75#[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);
82
83 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));
86
87 assert_eq!(TemplateModule::collection(1).owner, 1);
88 assert_eq!(TemplateModule::collection(2).owner, 2);
89 assert_eq!(TemplateModule::collection(3).owner, 3);
90
91 // collection admin
92 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));
93 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 3));
94
95 assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);
96 assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);
97 });
98}
99
100#[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);
107
108 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));
111
112 assert_eq!(TemplateModule::collection(1).owner, 1);
113 assert_eq!(TemplateModule::collection(2).owner, 2);
114 assert_eq!(TemplateModule::collection(3).owner, 3);
115
116 // collection admin
117 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));
118 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 3));
119
120 assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);
121 assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);
122
123 // remove admin
124 assert_ok!(TemplateModule::remove_collection_admin(origin2.clone(), 1, 3));
125 assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), false);
126 });
127}
128
129#[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);
136
137 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));
140
141 assert_eq!(TemplateModule::collection(1).owner, 1);
142 assert_eq!(TemplateModule::collection(2).owner, 2);
143 assert_eq!(TemplateModule::collection(3).owner, 3);
144
145 // check balance before
146 assert_eq!(TemplateModule::balance_count((1, 1)), 0);
147
148 // create item
149 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");156
72// });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!(164
80// 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// });168
84// }169 assert_eq!(TemplateModule::collection(1).owner, 1);
170 assert_eq!(TemplateModule::collection(2).owner, 2);
171 assert_eq!(TemplateModule::collection(3).owner, 3);
172
173 // create item
174 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,1,1].to_vec()));
175
176 // transfer
177 assert_ok!(TemplateModule::transfer(origin1.clone(), 1, 1, 2));
178 assert_eq!(TemplateModule::item_id((1,1)).owner, 2);
179 });
180}
85181