public void OnNonFungibleTokenReceived_Operator_Mint_And_Sell_Token_Success() { SetupMessage(creator, 0); var store = new NFTStore(mContractState.Object); SetupMessage(tokenContract, 0); SetupGetOwnerOfToken(TransferResult.Succeed(contract)); var price = 5_00_000_000ul; var priceBytes = BitConverter.GetBytes(price); mSerializer.Setup(m => m.ToUInt64(priceBytes)).Returns(price); store.OnNonFungibleTokenReceived(operatorAddress, Address.Zero, tokenId, priceBytes) .Should() .BeTrue(); store.GetSaleInfo(tokenContract, tokenId) .Should() .Be(new SaleInfo { Price = price, Seller = operatorAddress }); VerifyLog(new TokenOnSaleLog { Contract = tokenContract, TokenId = tokenId, Seller = operatorAddress, Operator = operatorAddress, Price = price }); }
public void OnNonFungibleTokenReceived_Selling_Already_OnSale_Token_Fails() { SetupMessage(creator, 0); var store = new NFTStore(mContractState.Object); SetupMessage(tokenContract, 0); SetupGetOwnerOfToken(TransferResult.Succeed(contract)); var price = 5_00_000_000ul; var priceBytes = BitConverter.GetBytes(price); mSerializer.Setup(m => m.ToUInt64(priceBytes)).Returns(price); store.OnNonFungibleTokenReceived(tokenOwner, tokenOwner, tokenId, priceBytes); store.Invoking(s => s.OnNonFungibleTokenReceived(tokenOwner, tokenOwner, tokenId, priceBytes)) .Should() .Throw <SmartContractAssertException>() .WithMessage("The token is already on sale."); }