mars_core/testing/
mocks.rs1use cosmwasm_std::{
2 testing::{MockApi, MockQuerier, MockStorage, MOCK_CONTRACT_ADDR},
3 Addr, BlockInfo, Coin, ContractInfo, Env, MessageInfo, OwnedDeps, Timestamp,
4};
5
6use super::mars_mock_querier::MarsMockQuerier;
7
8pub struct MockEnvParams {
9 pub block_time: Timestamp,
10 pub block_height: u64,
11}
12
13impl Default for MockEnvParams {
14 fn default() -> Self {
15 MockEnvParams {
16 block_time: Timestamp::from_nanos(1_571_797_419_879_305_533),
17 block_height: 1,
18 }
19 }
20}
21
22pub fn mock_env(mock_env_params: MockEnvParams) -> Env {
24 Env {
25 block: BlockInfo {
26 height: mock_env_params.block_height,
27 time: mock_env_params.block_time,
28 chain_id: "cosmos-testnet-14002".to_string(),
29 },
30 contract: ContractInfo {
31 address: Addr::unchecked(MOCK_CONTRACT_ADDR),
32 },
33 }
34}
35
36pub fn mock_env_at_block_time(seconds: u64) -> Env {
37 mock_env(MockEnvParams {
38 block_time: Timestamp::from_seconds(seconds),
39 ..Default::default()
40 })
41}
42
43pub fn mock_env_at_block_height(block_height: u64) -> Env {
44 mock_env(MockEnvParams {
45 block_height,
46 ..Default::default()
47 })
48}
49
50pub fn mock_info(sender: &str) -> MessageInfo {
52 MessageInfo {
53 sender: Addr::unchecked(sender),
54 funds: vec![],
55 }
56}
57
58pub fn mock_dependencies(
60 contract_balance: &[Coin],
61) -> OwnedDeps<MockStorage, MockApi, MarsMockQuerier> {
62 let contract_addr = Addr::unchecked(MOCK_CONTRACT_ADDR);
63 let custom_querier: MarsMockQuerier = MarsMockQuerier::new(MockQuerier::new(&[(
64 &contract_addr.to_string(),
65 contract_balance,
66 )]));
67
68 OwnedDeps {
69 storage: MockStorage::default(),
70 api: MockApi::default(),
71 querier: custom_querier,
72 }
73}