tx-test-tube 6.0.0

CosmWasm integration testing for TX
use test_tube_tx::{fn_execute, fn_query, Module};
use tx_wasm_sdk::types::cosmos::nft::v1beta1::{
    MsgSend, MsgSendResponse, QueryBalanceRequest, QueryBalanceResponse, QueryClassRequest,
    QueryClassResponse, QueryClassesRequest, QueryClassesResponse, QueryNfTsRequest,
    QueryNfTsResponse, QueryNftRequest, QueryNftResponse, QueryOwnerRequest, QueryOwnerResponse,
    QuerySupplyRequest, QuerySupplyResponse,
};

use test_tube_tx::runner::Runner;

pub struct NFT<'a, R: Runner<'a>> {
    runner: &'a R,
}

impl<'a, R: Runner<'a>> Module<'a, R> for NFT<'a, R> {
    fn new(runner: &'a R) -> Self {
        Self { runner }
    }
}

impl<'a, R> NFT<'a, R>
where
    R: Runner<'a>,
{
    fn_execute! { pub send: MsgSend => MsgSendResponse }

    fn_query! {
        pub query_balance ["/cosmos.nft.v1beta1.Query/Balance"]: QueryBalanceRequest => QueryBalanceResponse
    }

    fn_query! {
        pub query_owner ["/cosmos.nft.v1beta1.Query/Owner"]: QueryOwnerRequest => QueryOwnerResponse
    }

    fn_query! {
        pub query_supply ["/cosmos.nft.v1beta1.Query/Supply"]: QuerySupplyRequest => QuerySupplyResponse
    }

    fn_query! {
        pub query_nfts ["/cosmos.nft.v1beta1.Query/NFTs"]: QueryNfTsRequest => QueryNfTsResponse
    }

    fn_query! {
        pub query_nft["/cosmos.nft.v1beta1.Query/NFT"]: QueryNftRequest => QueryNftResponse
    }

    fn_query! {
        pub query_class ["/cosmos.nft.v1beta1.Query/Class"]: QueryClassRequest => QueryClassResponse
    }

    fn_query! {
        pub query_classes ["/cosmos.nft.v1beta1.Query/Classes"]: QueryClassesRequest => QueryClassesResponse
    }
}