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
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