@@ -145,3 +145,104 @@ impl<'a> CwIbcConnection<'a> {
145
145
Ok ( ( ) )
146
146
}
147
147
}
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
+ }
0 commit comments