Skip to content

Commit

Permalink
Merge branch 'main' into TM-erc115-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ametel01 committed Jan 13, 2024
2 parents 4837d8a + 80587ea commit 4f0d3d8
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 13 deletions.
1 change: 1 addition & 0 deletions flex_marketplace/src/lib.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,5 @@ mod marketplace {

mod mocks {
mod erc1155;
mod erc721;
}
27 changes: 27 additions & 0 deletions flex_marketplace/src/mocks/erc721.cairo
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#[starknet::interface]
trait IER721CamelOnly<TState> {
fn transferFrom(
ref self: TState,
from: starknet::ContractAddress,
to: starknet::ContractAddress,
token_id: u256
);
}

#[starknet::contract]
mod ERC721 {
use starknet::{ContractAddress, get_caller_address};

#[storage]
struct Storage {}

#[external(v0)]
impl IERC721CamelOnlyImpl of super::IER721CamelOnly<ContractState> {
fn transferFrom(
ref self: ContractState,
from: starknet::ContractAddress,
to: starknet::ContractAddress,
token_id: u256
) {}
}
}
49 changes: 36 additions & 13 deletions flex_marketplace/tests/transfer_manager_erc721_test.cairo
Original file line number Diff line number Diff line change
@@ -1,33 +1,56 @@
use tests::utils::{setup, initialize_test};
use snforge_std::{start_prank, stop_prank, PrintTrait, CheatTarget};
use tests::utils::{
setup, initialize_test, deploy_mock_nft, ACCOUNT1, ACCOUNT2, OWNER, ZERO_ADDRESS
};
use flex::marketplace::transfer_manager_ERC721::{
ITransferManagerNFTDispatcher, ITransferManagerNFTDispatcherTrait
};

const TOKEN_ID: u256 = 1;

#[test]
fn test_transfer_non_fungible_token_success() {
let dsp = setup();
initialize_test(dsp);
// TODO
let collection = deploy_mock_nft();

start_prank(
CheatTarget::One(dsp.transfer_manager_erc721.contract_address),
dsp.marketplace.contract_address
);
dsp
.transfer_manager_erc721
.transfer_non_fungible_token(collection, ACCOUNT1(), ACCOUNT2(), TOKEN_ID, 1);
}

#[test]
#[should_panic()]
#[should_panic(expected: ("TransferManagerNFT: caller 0 is not MarketPlace",))]
fn test_transfer_non_fungible_token_fails_caller_not_marketplace() {
let dsp = setup();
initialize_test(dsp);
assert(false, '');
// TODO
let collection = deploy_mock_nft();

start_prank(CheatTarget::One(dsp.transfer_manager_erc721.contract_address), ZERO_ADDRESS());
dsp
.transfer_manager_erc721
.transfer_non_fungible_token(collection, ACCOUNT1(), ACCOUNT2(), TOKEN_ID, 1);
}

#[test]
fn test_update_marketplace_success() {
let dsp = setup();
initialize_test(dsp);
// TODO
}
let collection = deploy_mock_nft();
let new_marketplace = starknet::contract_address_const::<'new_marketplace'>();

start_prank(
CheatTarget::One(dsp.transfer_manager_erc721.contract_address),
dsp.marketplace.contract_address
);
dsp.transfer_manager_erc721.update_marketplace(new_marketplace);

// TESTS VIEWSqs
#[test]
fn test_get_marketplace() {
let dsp = setup();
initialize_test(dsp);
// TODO
let actual_marketplace = dsp.transfer_manager_erc721.get_marketplace();

assert(actual_marketplace == new_marketplace, 'update marketplace failed');
}

6 changes: 6 additions & 0 deletions flex_marketplace/tests/utils.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ use flex::marketplace::{
TransferSelectorNFT, ITransferSelectorNFTDispatcher, ITransferSelectorNFTDispatcherTrait
},
};
use flex::mocks::erc721::ERC721;

use flex::mocks::erc1155::ERC1155;

Expand Down Expand Up @@ -165,6 +166,11 @@ fn deploy_mock_1155() -> ContractAddress {
contract.deploy(@array![]).expect('failed marketplace')
}

fn deploy_mock_nft() -> ContractAddress {
let contract = declare('ERC721');
contract.deploy(@array![]).expect('failed ERC721')
}

#[test]
fn deploy_test() {
let dsp = setup();
Expand Down

0 comments on commit 4f0d3d8

Please sign in to comment.