1// Tests to be written here2use crate::mock::*;3use crate::{CollectionMode, Ownership, ApprovePermissions};4use frame_support::{assert_noop, assert_ok};56#[test]7fn create_nft_item() {8 new_test_ext().execute_with(|| {9 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();10 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();11 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();12 let mode: CollectionMode = CollectionMode::NFT(2000);1314 let origin1 = Origin::signed(1);15 assert_ok!(TemplateModule::create_collection(16 origin1.clone(),17 col_name1.clone(),18 col_desc1.clone(),19 token_prefix1.clone(),20 mode21 ));22 assert_eq!(TemplateModule::collection(1).owner, 1);232425 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));26 assert_eq!(TemplateModule::nft_item_id(1,1).data, [1,2,3].to_vec());27 });28}2930#[test]31fn create_refungible_item() {32 new_test_ext().execute_with(|| {33 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();34 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();35 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();36 let mode: CollectionMode = CollectionMode::ReFungible(2000, 3);3738 let origin1 = Origin::signed(1);39 assert_ok!(TemplateModule::create_collection(40 origin1.clone(),41 col_name1.clone(),42 col_desc1.clone(),43 token_prefix1.clone(),44 mode45 ));46 assert_eq!(TemplateModule::collection(1).owner, 1);474849 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));50 assert_eq!(TemplateModule::refungible_item_id(1,1).data, [1,2,3].to_vec());51 assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 1, fraction: 1000 });52 });53}5455#[test]56fn create_fungible_item() {57 new_test_ext().execute_with(|| {58 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();59 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();60 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();61 let mode: CollectionMode = CollectionMode::Fungible(3);6263 let origin1 = Origin::signed(1);64 assert_ok!(TemplateModule::create_collection(65 origin1.clone(),66 col_name1.clone(),67 col_desc1.clone(),68 token_prefix1.clone(),69 mode70 ));71 assert_eq!(TemplateModule::collection(1).owner, 1);7273 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [].to_vec(), 1));74 assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 1);75 assert_eq!(TemplateModule::balance_count(1,1), 1000);76 assert_eq!(TemplateModule::address_tokens(1,1), [1]);77 });78}7980#[test]81fn transfer_fungible_item() {82 new_test_ext().execute_with(|| {83 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();84 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();85 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();86 let mode: CollectionMode = CollectionMode::Fungible(3);8788 let origin1 = Origin::signed(1);89 let origin2 = Origin::signed(2);90 assert_ok!(TemplateModule::create_collection(91 origin1.clone(),92 col_name1.clone(),93 col_desc1.clone(),94 token_prefix1.clone(),95 mode96 ));97 assert_eq!(TemplateModule::collection(1).owner, 1);9899 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [].to_vec(), 1));100 assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 1);101 assert_eq!(TemplateModule::balance_count(1,1), 1000);102 assert_eq!(TemplateModule::address_tokens(1,1), [1]);103104 // change owner scenario105 assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1000));106 assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 2);107 assert_eq!(TemplateModule::fungible_item_id(1,1).value, 1000);108 assert_eq!(TemplateModule::balance_count(1,1), 0);109 assert_eq!(TemplateModule::balance_count(1,2), 1000);110 assert_eq!(TemplateModule::address_tokens(1,1), []);111 assert_eq!(TemplateModule::address_tokens(1,2), [1]);112113 // split item scenario114 assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 500));115 assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 2);116 assert_eq!(TemplateModule::fungible_item_id(1,2).owner, 3);117 assert_eq!(TemplateModule::balance_count(1,2), 500);118 assert_eq!(TemplateModule::balance_count(1,3), 500);119 assert_eq!(TemplateModule::address_tokens(1,2), [1]);120 assert_eq!(TemplateModule::address_tokens(1,3), [2]);121122 // split item and new owner has account scenario123 assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 200));124 assert_eq!(TemplateModule::fungible_item_id(1,1).value, 300);125 assert_eq!(TemplateModule::fungible_item_id(1,2).value, 700);126 assert_eq!(TemplateModule::balance_count(1,2), 300);127 assert_eq!(TemplateModule::balance_count(1,3), 700);128 assert_eq!(TemplateModule::address_tokens(1,2), [1]);129 assert_eq!(TemplateModule::address_tokens(1,3), [2]);130 });131}132133#[test]134fn transfer_refungible_item() {135 new_test_ext().execute_with(|| {136 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();137 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();138 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();139 let mode: CollectionMode = CollectionMode::ReFungible(2000, 3);140141 let origin1 = Origin::signed(1);142 let origin2 = Origin::signed(2);143 assert_ok!(TemplateModule::create_collection(144 origin1.clone(),145 col_name1.clone(),146 col_desc1.clone(),147 token_prefix1.clone(),148 mode149 ));150 assert_eq!(TemplateModule::collection(1).owner, 1);151152 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));153 assert_eq!(TemplateModule::refungible_item_id(1,1).data, [1,2,3].to_vec());154 assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 1, fraction: 1000 });155 assert_eq!(TemplateModule::balance_count(1,1), 1000);156 assert_eq!(TemplateModule::address_tokens(1,1), [1]);157158 // change owner scenario159 assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1000));160 assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 2, fraction: 1000 });161 assert_eq!(TemplateModule::balance_count(1,1), 0);162 assert_eq!(TemplateModule::balance_count(1,2), 1000);163 assert_eq!(TemplateModule::address_tokens(1,1), []);164 assert_eq!(TemplateModule::address_tokens(1,2), [1]);165166 // split item scenario167 assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 500));168 assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 2, fraction: 500 });169 assert_eq!(TemplateModule::refungible_item_id(1,1).owner[1], Ownership { owner: 3, fraction: 500 });170 assert_eq!(TemplateModule::balance_count(1,2), 500);171 assert_eq!(TemplateModule::balance_count(1,3), 500);172 assert_eq!(TemplateModule::address_tokens(1,2), [1]);173 assert_eq!(TemplateModule::address_tokens(1,3), [1]);174175 // split item and new owner has account scenario176 assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 200));177 assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 2, fraction: 300 });178 assert_eq!(TemplateModule::refungible_item_id(1,1).owner[1], Ownership { owner: 3, fraction: 700 });179 assert_eq!(TemplateModule::balance_count(1,2), 300);180 assert_eq!(TemplateModule::balance_count(1,3), 700);181 assert_eq!(TemplateModule::address_tokens(1,2), [1]);182 assert_eq!(TemplateModule::address_tokens(1,3), [1]);183 });184}185186187#[test]188fn transfer_nft_item() {189 new_test_ext().execute_with(|| {190 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();191 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();192 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();193 let mode: CollectionMode = CollectionMode::NFT(2000);194195 let origin1 = Origin::signed(1);196 assert_ok!(TemplateModule::create_collection(197 origin1.clone(),198 col_name1.clone(),199 col_desc1.clone(),200 token_prefix1.clone(),201 mode202 ));203 assert_eq!(TemplateModule::collection(1).owner, 1);204205206 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));207 assert_eq!(TemplateModule::nft_item_id(1,1).data, [1,2,3].to_vec());208 assert_eq!(TemplateModule::balance_count(1,1), 1);209 assert_eq!(TemplateModule::address_tokens(1,1), [1]);210211 // default scenario212 assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1000));213 assert_eq!(TemplateModule::nft_item_id(1,1).owner, 2);214 assert_eq!(TemplateModule::balance_count(1,1), 0);215 assert_eq!(TemplateModule::balance_count(1,2), 1);216 assert_eq!(TemplateModule::address_tokens(1,1), []);217 assert_eq!(TemplateModule::address_tokens(1,2), [1]); 218 });219}220221#[test]222fn nft_approve_and_transfer_from() {223 new_test_ext().execute_with(|| {224 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();225 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();226 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();227 let mode: CollectionMode = CollectionMode::NFT(2000);228229 let origin1 = Origin::signed(1);230 let origin2 = Origin::signed(2);231 assert_ok!(TemplateModule::create_collection(232 origin1.clone(),233 col_name1.clone(),234 col_desc1.clone(),235 token_prefix1.clone(),236 mode237 ));238 assert_eq!(TemplateModule::collection(1).owner, 1);239240241 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));242 assert_eq!(TemplateModule::nft_item_id(1,1).data, [1,2,3].to_vec());243 assert_eq!(TemplateModule::balance_count(1,1), 1);244 assert_eq!(TemplateModule::address_tokens(1,1), [1]);245246 assert_noop!(247 TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 1),248 "You do not have permissions to modify this collection"249 );250251 // do approve252 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));253 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);254 assert_ok!(TemplateModule::approve(origin1.clone(), 10, 1, 1));255 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 2);256 assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 2, amount: 100000000});257258 assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 1));259 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 0);260 });261}262263#[test]264fn refungible_approve_and_transfer_from() {265 new_test_ext().execute_with(|| {266 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();267 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();268 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();269 let mode: CollectionMode = CollectionMode::ReFungible(2000, 3);270271 let origin1 = Origin::signed(1);272 let origin2 = Origin::signed(2);273 assert_ok!(TemplateModule::create_collection(274 origin1.clone(),275 col_name1.clone(),276 col_desc1.clone(),277 token_prefix1.clone(),278 mode279 ));280 assert_eq!(TemplateModule::collection(1).owner, 1);281282 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [1,2,3].to_vec(), 1));283 assert_eq!(TemplateModule::refungible_item_id(1,1).data, [1,2,3].to_vec());284 assert_eq!(TemplateModule::refungible_item_id(1,1).owner[0], Ownership { owner: 1, fraction: 1000 });285 assert_eq!(TemplateModule::balance_count(1,1), 1000);286 assert_eq!(TemplateModule::address_tokens(1,1), [1]);287288 assert_noop!(289 TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 1),290 "You do not have permissions to modify this collection"291 );292293 // do approve294 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));295 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);296 assert_ok!(TemplateModule::approve(origin1.clone(), 10, 1, 1));297 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 2);298 assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 2, amount: 100000000});299300 assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 100));301 assert_eq!(TemplateModule::balance_count(1,1), 900);302 assert_eq!(TemplateModule::balance_count(1,3), 100);303 assert_eq!(TemplateModule::address_tokens(1,1), [1]);304 assert_eq!(TemplateModule::address_tokens(1,3), [1]);305306 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);307 assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 10, amount: 100000000});308 });309}310311#[test]312fn fungible_approve_and_transfer_from() {313 new_test_ext().execute_with(|| {314 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();315 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();316 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();317 let mode: CollectionMode = CollectionMode::Fungible(3);318319 let origin1 = Origin::signed(1);320 let origin2 = Origin::signed(2);321 assert_ok!(TemplateModule::create_collection(322 origin1.clone(),323 col_name1.clone(),324 col_desc1.clone(),325 token_prefix1.clone(),326 mode327 ));328 assert_eq!(TemplateModule::collection(1).owner, 1);329330 assert_ok!(TemplateModule::create_item(origin1.clone(), 1, [].to_vec(), 1));331 assert_eq!(TemplateModule::fungible_item_id(1,1).owner, 1);332 assert_eq!(TemplateModule::balance_count(1,1), 1000);333 assert_eq!(TemplateModule::address_tokens(1,1), [1]);334335 assert_noop!(336 TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 1),337 "You do not have permissions to modify this collection"338 );339340 // do approve341 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));342 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);343 assert_ok!(TemplateModule::approve(origin1.clone(), 10, 1, 1));344 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 2);345 assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 2, amount: 100000000});346347 assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 100));348 assert_eq!(TemplateModule::balance_count(1,1), 900);349 assert_eq!(TemplateModule::balance_count(1,3), 100);350 assert_eq!(TemplateModule::address_tokens(1,1), [1]);351 assert_eq!(TemplateModule::address_tokens(1,3), [2]);352353 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 1);354 assert_eq!(TemplateModule::approved(1,(1,1))[0], ApprovePermissions { approved: 10, amount: 100000000});355356 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));357 assert_ok!(TemplateModule::transfer_from(origin2.clone(), 1, 3, 1, 1, 900));358 assert_eq!(TemplateModule::balance_count(1,1), 0);359 assert_eq!(TemplateModule::balance_count(1,3), 1000);360 assert_eq!(TemplateModule::address_tokens(1,1), []);361 assert_eq!(TemplateModule::address_tokens(1,3), [2]);362363 assert_eq!(TemplateModule::approved(1,(1,1)).len(), 0);364 });365}366367368369370371372373374375376377378379380381382// #[test]383// fn create_collection_test() {384// new_test_ext().execute_with(|| {385// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();386// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();387// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();388389// let size = 1024;390// let origin1 = Origin::signed(1);391// assert_ok!(TemplateModule::create_collection(392// origin1.clone(),393// col_name1.clone(),394// col_desc1.clone(),395// token_prefix1.clone(),396// size397// ));398// assert_eq!(TemplateModule::collection(1).owner, 1);399// });400// }401402// #[test]403// fn change_collection_owner() {404// new_test_ext().execute_with(|| {405// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();406// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();407// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();408409// let size = 1024;410// let origin1 = Origin::signed(1);411412// assert_ok!(TemplateModule::create_collection(413// origin1.clone(),414// col_name1.clone(),415// col_desc1.clone(),416// token_prefix1.clone(),417// size418// ));419// assert_ok!(TemplateModule::change_collection_owner(420// origin1.clone(),421// 1,422// 2423// ));424// assert_eq!(TemplateModule::collection(1).owner, 2);425// });426// }427428// #[test]429// fn destroy_collection() {430// new_test_ext().execute_with(|| {431// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();432// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();433// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();434435// let size = 1024;436// let origin1 = Origin::signed(1);437438// assert_ok!(TemplateModule::create_collection(439// origin1.clone(),440// col_name1.clone(),441// col_desc1.clone(),442// token_prefix1.clone(),443// size444// ));445// assert_ok!(TemplateModule::destroy_collection(origin1.clone(), 1));446// });447// }448449// #[test]450// fn create_item() {451// new_test_ext().execute_with(|| {452// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();453// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();454// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();455456// let size = 1024;457// let origin1 = Origin::signed(1);458// let origin2 = Origin::signed(2);459460// assert_ok!(TemplateModule::create_collection(461// origin1.clone(),462// col_name1.clone(),463// col_desc1.clone(),464// token_prefix1.clone(),465// size466// ));467// assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));468// assert_ok!(TemplateModule::create_item(469// origin2.clone(),470// 1,471// [1, 1, 1].to_vec()472// ));473474// // check balance (collection with id = 1, user id = 2)475// assert_eq!(TemplateModule::balance_count((1, 2)), 1);476// });477// }478479// #[test]480// fn burn_item() {481// new_test_ext().execute_with(|| {482// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();483// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();484// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();485486// let size = 1024;487// let origin1 = Origin::signed(1);488// let origin2 = Origin::signed(2);489490// assert_ok!(TemplateModule::create_collection(491// origin1.clone(),492// col_name1.clone(),493// col_desc1.clone(),494// token_prefix1.clone(),495// size496// ));497// assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));498// assert_ok!(TemplateModule::create_item(499// origin2.clone(),500// 1,501// [1, 1, 1].to_vec()502// ));503504// // check balance (collection with id = 1, user id = 2)505// assert_eq!(TemplateModule::balance_count((1, 2)), 1);506507// // burn item508// assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 1));509// assert_noop!(510// TemplateModule::burn_item(origin1.clone(), 1, 1),511// "Item does not exists"512// );513514// assert_eq!(TemplateModule::balance_count((1, 1)), 0);515// });516// }517518// #[test]519// fn add_collection_admin() {520// new_test_ext().execute_with(|| {521// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();522// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();523// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();524525// let size = 1024;526// let origin1 = Origin::signed(1);527// let origin2 = Origin::signed(2);528// let origin3 = Origin::signed(3);529530// assert_ok!(TemplateModule::create_collection(531// origin1.clone(),532// col_name1.clone(),533// col_desc1.clone(),534// token_prefix1.clone(),535// size536// ));537// assert_ok!(TemplateModule::create_collection(538// origin2.clone(),539// col_name1.clone(),540// col_desc1.clone(),541// token_prefix1.clone(),542// size543// ));544// assert_ok!(TemplateModule::create_collection(545// origin3.clone(),546// col_name1.clone(),547// col_desc1.clone(),548// token_prefix1.clone(),549// size550// ));551552// assert_eq!(TemplateModule::collection(1).owner, 1);553// assert_eq!(TemplateModule::collection(2).owner, 2);554// assert_eq!(TemplateModule::collection(3).owner, 3);555556// // collection admin557// assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));558// assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 3));559560// assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);561// assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);562// });563// }564565// #[test]566// fn remove_collection_admin() {567// new_test_ext().execute_with(|| {568// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();569// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();570// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();571572// let size = 1024;573// let origin1 = Origin::signed(1);574// let origin2 = Origin::signed(2);575// let origin3 = Origin::signed(3);576577// assert_ok!(TemplateModule::create_collection(578// origin1.clone(),579// col_name1.clone(),580// col_desc1.clone(),581// token_prefix1.clone(),582// size583// ));584// assert_ok!(TemplateModule::create_collection(585// origin2.clone(),586// col_name1.clone(),587// col_desc1.clone(),588// token_prefix1.clone(),589// size590// ));591// assert_ok!(TemplateModule::create_collection(592// origin3.clone(),593// col_name1.clone(),594// col_desc1.clone(),595// token_prefix1.clone(),596// size597// ));598599// assert_eq!(TemplateModule::collection(1).owner, 1);600// assert_eq!(TemplateModule::collection(2).owner, 2);601// assert_eq!(TemplateModule::collection(3).owner, 3);602603// // collection admin604// assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));605// assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 3));606607// assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);608// assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);609610// // remove admin611// assert_ok!(TemplateModule::remove_collection_admin(612// origin2.clone(),613// 1,614// 3615// ));616// assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), false);617// });618// }619620// #[test]621// fn balance_of() {622// new_test_ext().execute_with(|| {623// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();624// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();625// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();626627// let size = 1024;628// let origin1 = Origin::signed(1);629// let origin2 = Origin::signed(2);630// let origin3 = Origin::signed(3);631632// assert_ok!(TemplateModule::create_collection(633// origin1.clone(),634// col_name1.clone(),635// col_desc1.clone(),636// token_prefix1.clone(),637// size638// ));639// assert_ok!(TemplateModule::create_collection(640// origin2.clone(),641// col_name1.clone(),642// col_desc1.clone(),643// token_prefix1.clone(),644// size645// ));646// assert_ok!(TemplateModule::create_collection(647// origin3.clone(),648// col_name1.clone(),649// col_desc1.clone(),650// token_prefix1.clone(),651// size652// ));653654// assert_eq!(TemplateModule::collection(1).owner, 1);655// assert_eq!(TemplateModule::collection(2).owner, 2);656// assert_eq!(TemplateModule::collection(3).owner, 3);657658// // check balance before659// assert_eq!(TemplateModule::balance_count((1, 1)), 0);660661// // create item662// assert_ok!(TemplateModule::create_item(663// origin1.clone(),664// 1,665// [1, 1, 1].to_vec()666// ));667668// // check balance (collection with id = 1, user id = 2)669// assert_eq!(TemplateModule::balance_count((1, 1)), 1);670// assert_eq!(TemplateModule::item_id((1, 1)).owner, 1);671// });672// }673674// #[test]675// fn transfer() {676// new_test_ext().execute_with(|| {677// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();678// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();679// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();680681// let size = 1024;682// let origin1 = Origin::signed(1);683// let origin2 = Origin::signed(2);684// let origin3 = Origin::signed(3);685686// assert_ok!(TemplateModule::create_collection(687// origin1.clone(),688// col_name1.clone(),689// col_desc1.clone(),690// token_prefix1.clone(),691// size692// ));693// assert_ok!(TemplateModule::create_collection(694// origin2.clone(),695// col_name1.clone(),696// col_desc1.clone(),697// token_prefix1.clone(),698// size699// ));700// assert_ok!(TemplateModule::create_collection(701// origin3.clone(),702// col_name1.clone(),703// col_desc1.clone(),704// token_prefix1.clone(),705// size706// ));707708// assert_eq!(TemplateModule::collection(1).owner, 1);709// assert_eq!(TemplateModule::collection(2).owner, 2);710// assert_eq!(TemplateModule::collection(3).owner, 3);711712// // create item713// assert_ok!(TemplateModule::create_item(714// origin1.clone(),715// 1,716// [1, 1, 1].to_vec()717// ));718719// // transfer720// assert_ok!(TemplateModule::transfer(origin1.clone(), 1, 1, 2));721// assert_eq!(TemplateModule::item_id((1, 1)).owner, 2);722723// // balance_of check724// assert_eq!(TemplateModule::balance_count((1, 1)), 0);725// assert_eq!(TemplateModule::balance_count((1, 2)), 1);726// });727// }728729// #[test]730// fn approve() {731// new_test_ext().execute_with(|| {732// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();733// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();734// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();735736// let size = 1024;737// let origin1 = Origin::signed(1);738// let origin2 = Origin::signed(2);739// let origin3 = Origin::signed(3);740741// assert_ok!(TemplateModule::create_collection(742// origin1.clone(),743// col_name1.clone(),744// col_desc1.clone(),745// token_prefix1.clone(),746// size747// ));748// assert_ok!(TemplateModule::create_collection(749// origin2.clone(),750// col_name1.clone(),751// col_desc1.clone(),752// token_prefix1.clone(),753// size754// ));755// assert_ok!(TemplateModule::create_collection(756// origin3.clone(),757// col_name1.clone(),758// col_desc1.clone(),759// token_prefix1.clone(),760// size761// ));762763// assert_eq!(TemplateModule::collection(1).owner, 1);764// assert_eq!(TemplateModule::collection(2).owner, 2);765// assert_eq!(TemplateModule::collection(3).owner, 3);766767// // create item768// assert_ok!(TemplateModule::create_item(769// origin1.clone(),770// 1,771// [1, 1, 1].to_vec()772// ));773774// // approve775// assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));776// assert_eq!(TemplateModule::approved((1, 1)).contains(&2), true);777// });778// }779780// #[test]781// fn get_approved() {782// new_test_ext().execute_with(|| {783// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();784// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();785// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();786787// let size = 1024;788// let origin1 = Origin::signed(1);789// let origin2 = Origin::signed(2);790// let origin3 = Origin::signed(3);791792// assert_ok!(TemplateModule::create_collection(793// origin1.clone(),794// col_name1.clone(),795// col_desc1.clone(),796// token_prefix1.clone(),797// size798// ));799// assert_ok!(TemplateModule::create_collection(800// origin2.clone(),801// col_name1.clone(),802// col_desc1.clone(),803// token_prefix1.clone(),804// size805// ));806// assert_ok!(TemplateModule::create_collection(807// origin3.clone(),808// col_name1.clone(),809// col_desc1.clone(),810// token_prefix1.clone(),811// size812// ));813814// assert_eq!(TemplateModule::collection(1).owner, 1);815// assert_eq!(TemplateModule::collection(2).owner, 2);816// assert_eq!(TemplateModule::collection(3).owner, 3);817818// // create item819// assert_ok!(TemplateModule::create_item(820// origin1.clone(),821// 1,822// [1, 1, 1].to_vec()823// ));824825// // approve826// assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));827// assert_eq!(TemplateModule::approved((1, 1)).contains(&2), true);828// });829// }830831// #[test]832// fn transfer_from() {833// new_test_ext().execute_with(|| {834// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();835// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();836// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();837838// let size = 1024;839// let origin1 = Origin::signed(1);840// let origin2 = Origin::signed(2);841// let origin3 = Origin::signed(3);842843// assert_ok!(TemplateModule::create_collection(844// origin1.clone(),845// col_name1.clone(),846// col_desc1.clone(),847// token_prefix1.clone(),848// size849// ));850// assert_ok!(TemplateModule::create_collection(851// origin2.clone(),852// col_name1.clone(),853// col_desc1.clone(),854// token_prefix1.clone(),855// size856// ));857// assert_ok!(TemplateModule::create_collection(858// origin3.clone(),859// col_name1.clone(),860// col_desc1.clone(),861// token_prefix1.clone(),862// size863// ));864865// assert_eq!(TemplateModule::collection(1).owner, 1);866// assert_eq!(TemplateModule::collection(2).owner, 2);867// assert_eq!(TemplateModule::collection(3).owner, 3);868869// // create item870// assert_ok!(TemplateModule::create_item(871// origin1.clone(),872// 1,873// [1, 1, 1].to_vec()874// ));875876// // approve877// assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1));878// assert_ok!(TemplateModule::transfer_from(origin1.clone(), 1, 1, 2));879// });880// }881882// #[test]883// fn index_list() {884// new_test_ext().execute_with(|| {885// let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();886// let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();887// let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();888889// let size = 1024;890// let origin1 = Origin::signed(1);891// let origin2 = Origin::signed(2);892// let origin3 = Origin::signed(3);893894// assert_ok!(TemplateModule::create_collection(895// origin1.clone(),896// col_name1.clone(),897// col_desc1.clone(),898// token_prefix1.clone(),899// size900// ));901// assert_ok!(TemplateModule::create_collection(902// origin2.clone(),903// col_name1.clone(),904// col_desc1.clone(),905// token_prefix1.clone(),906// size907// ));908// assert_ok!(TemplateModule::create_collection(909// origin3.clone(),910// col_name1.clone(),911// col_desc1.clone(),912// token_prefix1.clone(),913// size914// ));915916// assert_eq!(TemplateModule::collection(1).owner, 1);917// assert_eq!(TemplateModule::collection(2).owner, 2);918// assert_eq!(TemplateModule::collection(3).owner, 3);919// // create items920// assert_ok!(TemplateModule::create_item(921// origin1.clone(),922// 1,923// [1, 1, 1].to_vec()924// ));925// assert_ok!(TemplateModule::create_item(926// origin1.clone(),927// 1,928// [1, 1, 2].to_vec()929// ));930// assert_ok!(TemplateModule::create_item(931// origin1.clone(),932// 1,933// [1, 2, 3].to_vec()934// ));935// assert_eq!(TemplateModule::address_tokens((1, 1)).len(), 3);936// // burn one937// assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 2));938// assert_eq!(TemplateModule::address_tokens((1, 1)).len(), 2);939// // burn another one940// assert_ok!(TemplateModule::burn_item(origin1.clone(), 1, 3));941// assert_eq!(TemplateModule::address_tokens((1, 1))[0], 1);942// });943// }difftreelog
source
pallets/nft/src/tests.rs35.2 KiBsourcehistory