use crate::{
engine::off_chain::{
impls::TopicsBuilder,
test_api::set_account_balance,
},
event::TopicsBuilderBackend,
types::Environment,
DefaultEnvironment,
Result,
};
#[test]
fn topics_builder() -> Result<()> {
crate::test::run_test::<crate::DefaultEnvironment, _>(|_| {
let mut builder = TopicsBuilder::default();
TopicsBuilderBackend::<crate::DefaultEnvironment>::push_topic(&mut builder, &13);
TopicsBuilderBackend::<crate::DefaultEnvironment>::push_topic(&mut builder, &17);
assert_eq!(builder.topics.len(), 2);
let topics_len_compact = &scale::Compact(2u32);
let topics_len_encoded = scale::Encode::encode(&topics_len_compact);
let output = TopicsBuilderBackend::<crate::DefaultEnvironment>::output(builder);
#[rustfmt::skip]
let expected = vec![topics_len_encoded[0], 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
assert_eq!(output, expected);
Ok(())
})
}
#[test]
fn test_set_account_balance() -> Result<()> {
pub use ink_engine::ext::ChainSpec;
crate::test::run_test::<DefaultEnvironment, _>(|_| {
let minimum_balance = ChainSpec::default().minimum_balance;
let result = std::panic::catch_unwind(|| {
set_account_balance::<DefaultEnvironment>(
<DefaultEnvironment as Environment>::AccountId::from([0x1; 32]),
<DefaultEnvironment as Environment>::Balance::from(minimum_balance - 1),
)
});
assert!(result.is_err());
set_account_balance::<DefaultEnvironment>(
<DefaultEnvironment as Environment>::AccountId::from([0x1; 32]),
<DefaultEnvironment as Environment>::Balance::from(0u128),
);
set_account_balance::<DefaultEnvironment>(
<DefaultEnvironment as Environment>::AccountId::from([0x1; 32]),
<DefaultEnvironment as Environment>::Balance::from(minimum_balance + 1),
);
Ok(())
})
}