1#![cfg(not(target_arch = "wasm32"))]
2
3use crate::msg::{ExecuteMsg, InstantiateMsg, 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 PauserContract {
11 pub addr: Addr,
12 pub init: InstantiateMsg,
13}
14
15impl TestingContract<InstantiateMsg, ExecuteMsg, QueryMsg> for PauserContract {
16 fn wrapper() -> Box<dyn Contract<Empty>> {
17 Box::new(ContractWrapper::new(
18 crate::contract::execute,
19 crate::contract::instantiate,
20 crate::contract::query,
21 ))
22 }
23
24 fn default_init(app: &mut App, _env: &Env) -> InstantiateMsg {
25 InstantiateMsg {
26 owner: app.api().addr_make("owner").to_string(),
27 initial_paused: false,
28 }
29 }
30
31 fn new(app: &mut App, env: &Env, msg: Option<InstantiateMsg>) -> Self {
32 let init = msg.unwrap_or(Self::default_init(app, env));
33 let code_id = Self::store_code(app);
34 let addr = Self::instantiate(app, code_id, "pauser", &init);
35 Self { addr, init }
36 }
37
38 fn addr(&self) -> &Addr {
39 &self.addr
40 }
41}