11use starknet :: {ContractAddress , contract_address_const, get_caller_address};
22
3- use openzeppelin :: token :: erc721 :: interface :: IERC721 ;
4- // use openzeppelin::token::erc721::interface::{IERC721Dispatcher, IERC721DispatcherTrait};
5-
6- use openzeppelin :: token :: erc721 :: interface :: {
7- IERC721Dispatcher ,
8- IERC721DispatcherTrait ,
9- IERC721Metadata ,
10- IERC721MetadataDispatcher ,
11- IERC721MetadataDispatcherTrait
12- };
13-
143use snforge_std as snf;
154use snforge_std :: {
165 ContractClassTrait , EventSpy , start_cheat_caller_address, stop_cheat_caller_address, spy_events,
@@ -21,45 +10,49 @@ use carbon_locker::components::certificate::interface::{
2110 INFTComponent , INFTComponentDispatcher , INFTComponentDispatcherTrait
2211};
2312
24- use carbon_locker :: contracts :: certificate :: Certificate ;
13+ use carbon_locker :: contracts :: certificate :: NFTCertificate ;
14+
15+ use openzeppelin :: token :: erc721 :: interface :: IERC721 ;
16+
17+ use openzeppelin :: token :: erc721 :: interface :: {
18+ IERC721Dispatcher ,
19+ IERC721DispatcherTrait ,
20+ IERC721Metadata ,
21+ IERC721MetadataDispatcher ,
22+ IERC721MetadataDispatcherTrait
23+ };
2524
2625fn deploy_nft_certificate () -> ContractAddress {
27- let contract = snf :: declare (" Certificate " ). expect (' Declaration failed' );
26+ let contract = snf :: declare (" NFTCertificate " ). expect (' Declaration failed' );
2827
2928 let mut calldata : Array <felt252 > = array! [];
29+ let (contract_address , _ ) = contract . deploy (@ calldata ). expect (' Certificate deployment failed' );
3030
31- let (contract_address , _ ) = contract . deploy (@ calldata ). expect (' NFT deployment failed' );
3231 contract_address
3332}
3433
3534#[test]
3635fn test_proper_initialization () {
3736 let certificate_address = deploy_nft_certificate ();
3837 let user_address : ContractAddress = contract_address_const :: <' USER' >();
39- start_cheat_caller_address (certificate_address , user_address );
4038 let erc721 = IERC721Dispatcher { contract_address : certificate_address };
4139 let erc721_metadata = IERC721MetadataDispatcher { contract_address : certificate_address };
4240
43- let name = erc721_metadata . name ();
44- assert (name == " Certificate" , ' Name should be Certificate' );
45- let symbol = erc721_metadata . symbol ();
46- assert (symbol == " CERT" , ' Symbol should be CERT' );
47-
48- let balance = erc721 . balance_of (user_address );
41+ let mut balance = erc721 . balance_of (user_address );
4942 assert (balance == 0 , ' Balance should be 0' );
43+
44+ let name = erc721_metadata . name ();
45+ assert (name == " Certificate" , ' Token name mismatch' );
5046}
5147
5248#[test]
53- fn test_mint () {
49+ fn test_mint_function () {
5450 let certificate_address = deploy_nft_certificate ();
55- let erc721 = IERC721Dispatcher { contract_address : certificate_address };
51+ let certificate = INFTComponentDispatcher { contract_address : certificate_address };
5652 let user_address : ContractAddress = contract_address_const :: <' USER' >();
57- start_cheat_caller_address (certificate_address , user_address );
58-
59- let nft_component = INFTComponentDispatcher { contract_address : certificate_address };
60- let nft_id = 1 ;
61- nft_component . mint (user_address , nft_id );
53+ let erc721 = IERC721Dispatcher { contract_address : certificate_address };
6254
63- let balance = erc721 . balance_of (user_address );
55+ certificate . mint (user_address , 1 );
56+ let mut balance = erc721 . balance_of (user_address );
6457 assert (balance == 1 , ' Balance should be 1' );
6558}
0 commit comments