Skip to content

Commit c277c32

Browse files
authored
chore: add test coverage for xcall-ibc-connection (#853)
1 parent 8160977 commit c277c32

File tree

8 files changed

+900
-347
lines changed

8 files changed

+900
-347
lines changed

contracts/cosmwasm-vm/cw-xcall-ibc-connection/src/assertion.rs

+101
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,104 @@ impl<'a> CwIbcConnection<'a> {
145145
Ok(())
146146
}
147147
}
148+
149+
#[cfg(test)]
150+
mod test {
151+
use crate::state::CwIbcConnection;
152+
use cosmwasm_std::{
153+
testing::{mock_dependencies, mock_info},
154+
Addr,
155+
};
156+
157+
#[test]
158+
fn test_ensure_length() {
159+
let contract = CwIbcConnection::new();
160+
161+
let res = contract.ensure_data_length(20 as usize);
162+
assert!(res.is_ok())
163+
}
164+
165+
#[test]
166+
#[should_panic(expected = "MaxDataSizeExceeded")]
167+
fn test_ensure_length_fail() {
168+
let contract = CwIbcConnection::new();
169+
170+
contract.ensure_data_length(u64::MAX as usize).unwrap();
171+
}
172+
173+
#[test]
174+
fn test_ensure_rollback_length() {
175+
let contract = CwIbcConnection::new();
176+
177+
let rollback_size: Vec<u8> = Vec::new();
178+
let res = contract.ensure_rollback_length(&rollback_size);
179+
assert!(res.is_ok())
180+
}
181+
182+
#[test]
183+
#[should_panic(expected = "MaxRollbackSizeExceeded")]
184+
fn test_ensure_rollback_length_fail() {
185+
let contract = CwIbcConnection::new();
186+
187+
let rollback_size: Vec<u8> = vec![0; 2048];
188+
contract.ensure_rollback_length(&rollback_size).unwrap()
189+
}
190+
191+
#[test]
192+
fn test_ensure_owner() {
193+
let mut deps = mock_dependencies();
194+
let contract = CwIbcConnection::new();
195+
let info = mock_info("owner", &[]);
196+
197+
contract
198+
.add_owner(deps.as_mut().storage, Addr::unchecked("owner"))
199+
.unwrap();
200+
201+
let res = contract.ensure_owner(deps.as_ref().storage, &info).unwrap();
202+
assert_eq!(res, ())
203+
}
204+
205+
#[test]
206+
#[should_panic(expected = "Unauthorized")]
207+
fn test_ensure_owner_fail() {
208+
let mut deps = mock_dependencies();
209+
let contract = CwIbcConnection::new();
210+
let info = mock_info("owner", &[]);
211+
212+
contract
213+
.add_owner(deps.as_mut().storage, Addr::unchecked("test_owner"))
214+
.unwrap();
215+
216+
contract.ensure_owner(deps.as_ref().storage, &info).unwrap();
217+
}
218+
219+
#[test]
220+
#[should_panic(expected = "OnlyIbcHandler")]
221+
fn test_ensure_xcall_handler_fail() {
222+
let mut deps = mock_dependencies();
223+
let contract = CwIbcConnection::new();
224+
225+
contract
226+
.set_xcall_host(deps.as_mut().storage, Addr::unchecked("xcall_host"))
227+
.unwrap();
228+
229+
contract
230+
.ensure_xcall_handler(deps.as_ref().storage, Addr::unchecked("ibc_host"))
231+
.unwrap()
232+
}
233+
234+
#[test]
235+
#[should_panic(expected = "OnlyIbcHandler")]
236+
fn test_ensure_ibc_handler_fail() {
237+
let mut deps = mock_dependencies();
238+
let contract = CwIbcConnection::new();
239+
240+
contract
241+
.set_ibc_host(deps.as_mut().storage, Addr::unchecked("ibc_host"))
242+
.unwrap();
243+
244+
contract
245+
.ensure_ibc_handler(deps.as_ref().storage, Addr::unchecked("xcall_host"))
246+
.unwrap()
247+
}
248+
}

contracts/cosmwasm-vm/cw-xcall-ibc-connection/src/fee.rs

+59
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,62 @@ impl<'a> CwIbcConnection<'a> {
5454
self.get_unclaimed_packet_fee(store, &nid, &address)
5555
}
5656
}
57+
58+
#[cfg(test)]
59+
mod test {
60+
use cosmwasm_std::testing::{mock_dependencies, mock_info};
61+
use cosmwasm_std::Response;
62+
use cw_xcall_lib::network_address::NetId;
63+
64+
use super::CwIbcConnection;
65+
66+
#[test]
67+
#[should_panic(expected = "NoFeesAccrued")]
68+
fn test_claim_fees_on_zero_unclaimed_fee() {
69+
let mut deps = mock_dependencies();
70+
let contract = CwIbcConnection::new();
71+
let info = mock_info("relayer", &[]);
72+
73+
let nid = NetId::from("default".to_string());
74+
75+
contract
76+
.claim_fees(deps.as_mut(), info, nid, "relayer".to_string())
77+
.unwrap();
78+
}
79+
80+
#[test]
81+
fn test_set_fee() {
82+
let mut deps = mock_dependencies();
83+
let contract = CwIbcConnection::new();
84+
85+
let nid = NetId::from("default".to_string());
86+
87+
let res = contract
88+
.set_fee(deps.as_mut().storage, nid, 1_000, 1_000)
89+
.unwrap();
90+
91+
assert_eq!(res, Response::new())
92+
}
93+
94+
#[test]
95+
fn test_reset_unclaimed_ack_fees() {
96+
let mut deps = mock_dependencies();
97+
let contract = CwIbcConnection::new();
98+
99+
let nid = NetId::from("default".to_string());
100+
101+
contract
102+
.add_unclaimed_ack_fees(deps.as_mut().storage, &nid, 1, 10)
103+
.unwrap();
104+
105+
let ack_fee = contract.get_unclaimed_ack_fee(deps.as_ref().storage, nid.as_str(), 1);
106+
assert_eq!(ack_fee, 10);
107+
108+
contract
109+
.reset_unclaimed_ack_fees(deps.as_mut().storage, nid.as_str(), 1)
110+
.unwrap();
111+
112+
let ack_fee = contract.get_unclaimed_ack_fee(deps.as_ref().storage, nid.as_str(), 1);
113+
assert_eq!(ack_fee, 0)
114+
}
115+
}

0 commit comments

Comments
 (0)