integration.rs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. use cosmwasm_std::{
  2. from_slice,
  3. testing::{
  4. mock_dependencies,
  5. mock_env,
  6. mock_info,
  7. MockApi,
  8. MockQuerier,
  9. MockStorage,
  10. },
  11. Coin,
  12. OwnedDeps,
  13. Response,
  14. Storage,
  15. };
  16. use cosmwasm_storage::to_length_prefixed;
  17. use wormhole::{
  18. contract::instantiate,
  19. msg::InstantiateMsg,
  20. state::{
  21. ConfigInfo,
  22. GuardianAddress,
  23. GuardianSetInfo,
  24. CONFIG_KEY,
  25. },
  26. };
  27. use hex;
  28. static INITIALIZER: &str = "initializer";
  29. static GOV_ADDR: &[u8] = b"GOVERNANCE_ADDRESS";
  30. fn get_config_info<S: Storage>(storage: &S) -> ConfigInfo {
  31. let key = to_length_prefixed(CONFIG_KEY);
  32. let data = storage
  33. .get(&key)
  34. .expect("data should exist");
  35. from_slice(&data).expect("invalid data")
  36. }
  37. fn do_init(guardians: &[GuardianAddress]) -> OwnedDeps<MockStorage, MockApi, MockQuerier> {
  38. let mut deps = mock_dependencies(&[]);
  39. let init_msg = InstantiateMsg {
  40. gov_chain: 0,
  41. gov_address: GOV_ADDR.into(),
  42. initial_guardian_set: GuardianSetInfo {
  43. addresses: guardians.to_vec(),
  44. expiration_time: 100,
  45. },
  46. guardian_set_expirity: 50,
  47. };
  48. let env = mock_env();
  49. let info = mock_info(INITIALIZER, &[]);
  50. let res: Response = instantiate(deps.as_mut(), env, info, init_msg).unwrap();
  51. assert_eq!(0, res.messages.len());
  52. // query the store directly
  53. assert_eq!(
  54. get_config_info(&deps.storage),
  55. ConfigInfo {
  56. guardian_set_index: 0,
  57. guardian_set_expirity: 50,
  58. gov_chain: 0,
  59. gov_address: GOV_ADDR.to_vec(),
  60. fee: Coin::new(0, "uluna"),
  61. }
  62. );
  63. deps
  64. }
  65. #[test]
  66. fn init_works() {
  67. let guardians = [GuardianAddress::from(GuardianAddress {
  68. bytes: hex::decode("beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe")
  69. .expect("Decoding failed")
  70. .into(),
  71. })];
  72. let _deps = do_init(&guardians);
  73. }