bvs_registry/
testing.rs

1#![cfg(not(target_arch = "wasm32"))]
2
3use crate::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg};
4use bvs_library::testing::TestingContract;
5use cosmwasm_std::{Addr, Empty, Env};
6use cw_multi_test::{App, Contract, ContractWrapper};
7use serde::{Deserialize, Serialize};
8
9#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
10pub struct RegistryContract {
11    pub addr: Addr,
12    pub init: InstantiateMsg,
13}
14
15impl TestingContract<InstantiateMsg, ExecuteMsg, QueryMsg, MigrateMsg> for RegistryContract {
16    fn wrapper() -> Box<dyn Contract<Empty>> {
17        Box::new(
18            ContractWrapper::new(
19                crate::contract::execute,
20                crate::contract::instantiate,
21                crate::contract::query,
22            )
23            .with_migrate(crate::contract::migrate),
24        )
25    }
26
27    fn default_init(app: &mut App, _env: &Env) -> InstantiateMsg {
28        InstantiateMsg {
29            owner: app.api().addr_make("owner").to_string(),
30            pauser: Self::get_contract_addr(app, "pauser").to_string(),
31        }
32    }
33
34    fn new(app: &mut App, env: &Env, msg: Option<InstantiateMsg>) -> Self {
35        let init = msg.unwrap_or(Self::default_init(app, env));
36        let code_id = Self::store_code(app);
37        let addr = Self::instantiate(app, code_id, "registry", &init);
38        Self { addr, init }
39    }
40
41    fn addr(&self) -> &Addr {
42        &self.addr
43    }
44}