Test pallet owner calls using macro

Define macro that generates tests for set_owner() and set_operating_mode()
in order to avoid duplicate code.

Signed-off-by: Serban Iorga <serban@parity.io>
This commit is contained in:
Serban Iorga
2022-06-29 16:34:58 +03:00
committed by Bastian Köcher
parent 6b67d6b262
commit ec76490ddb
4 changed files with 100 additions and 196 deletions
+4 -99
View File
@@ -600,8 +600,8 @@ mod tests {
use crate::mock::{run_test, test_header, Origin, TestHeader, TestNumber, TestRuntime};
use bp_runtime::BasicOperatingMode;
use bp_test_utils::{
authority_list, make_default_justification, make_justification_for_header,
JustificationGeneratorParams, ALICE, BOB,
authority_list, generate_owned_bridge_module_tests, make_default_justification,
make_justification_for_header, JustificationGeneratorParams, ALICE, BOB,
};
use codec::Encode;
use frame_support::{
@@ -715,103 +715,6 @@ mod tests {
})
}
#[test]
fn pallet_owner_may_change_owner() {
run_test(|| {
PalletOwner::<TestRuntime>::put(2);
assert_ok!(Pallet::<TestRuntime>::set_owner(Origin::root(), Some(1)));
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
BasicOperatingMode::Halted
),
DispatchError::BadOrigin,
);
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::root(),
BasicOperatingMode::Halted
));
assert_ok!(Pallet::<TestRuntime>::set_owner(Origin::signed(1), None));
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(1),
BasicOperatingMode::Normal
),
DispatchError::BadOrigin,
);
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
BasicOperatingMode::Normal
),
DispatchError::BadOrigin,
);
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::root(),
BasicOperatingMode::Normal
));
});
}
#[test]
fn pallet_may_be_halted_by_root() {
run_test(|| {
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::root(),
BasicOperatingMode::Halted
));
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::root(),
BasicOperatingMode::Normal
));
});
}
#[test]
fn pallet_may_be_halted_by_owner() {
run_test(|| {
PalletOwner::<TestRuntime>::put(2);
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
BasicOperatingMode::Halted
));
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
BasicOperatingMode::Normal
));
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(1),
BasicOperatingMode::Halted
),
DispatchError::BadOrigin,
);
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(1),
BasicOperatingMode::Normal
),
DispatchError::BadOrigin,
);
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
BasicOperatingMode::Halted
));
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(1),
BasicOperatingMode::Normal
),
DispatchError::BadOrigin,
);
});
}
#[test]
fn pallet_rejects_transactions_if_halted() {
run_test(|| {
@@ -1184,4 +1087,6 @@ mod tests {
bp_header_chain::storage_keys::best_finalized_key("Grandpa").0,
);
}
generate_owned_bridge_module_tests!(BasicOperatingMode::Normal, BasicOperatingMode::Halted);
}
+1
View File
@@ -31,6 +31,7 @@ sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", d
[dev-dependencies]
sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" }
pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" }
bp-test-utils = { path = "../../primitives/test-utils" }
[features]
default = ["std"]
+6 -97
View File
@@ -1120,6 +1120,7 @@ mod tests {
REGULAR_PAYLOAD, TEST_LANE_ID, TEST_RELAYER_A, TEST_RELAYER_B,
};
use bp_messages::{UnrewardedRelayer, UnrewardedRelayersState};
use bp_test_utils::generate_owned_bridge_module_tests;
use frame_support::{
assert_noop, assert_ok,
storage::generator::{StorageMap, StorageValue},
@@ -1223,103 +1224,6 @@ mod tests {
);
}
#[test]
fn pallet_owner_may_change_owner() {
run_test(|| {
PalletOwner::<TestRuntime>::put(2);
assert_ok!(Pallet::<TestRuntime>::set_owner(Origin::root(), Some(1)));
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
MessagesOperatingMode::Basic(BasicOperatingMode::Halted)
),
DispatchError::BadOrigin,
);
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::root(),
MessagesOperatingMode::Basic(BasicOperatingMode::Halted)
));
assert_ok!(Pallet::<TestRuntime>::set_owner(Origin::signed(1), None));
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(1),
MessagesOperatingMode::Basic(BasicOperatingMode::Normal)
),
DispatchError::BadOrigin,
);
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
MessagesOperatingMode::Basic(BasicOperatingMode::Normal)
),
DispatchError::BadOrigin,
);
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::root(),
MessagesOperatingMode::Basic(BasicOperatingMode::Normal)
));
});
}
#[test]
fn pallet_may_be_halted_by_root() {
run_test(|| {
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::root(),
MessagesOperatingMode::Basic(BasicOperatingMode::Halted)
));
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::root(),
MessagesOperatingMode::Basic(BasicOperatingMode::Normal)
));
});
}
#[test]
fn pallet_may_be_halted_by_owner() {
run_test(|| {
PalletOwner::<TestRuntime>::put(2);
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
MessagesOperatingMode::Basic(BasicOperatingMode::Halted)
));
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
MessagesOperatingMode::Basic(BasicOperatingMode::Normal)
));
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(1),
MessagesOperatingMode::Basic(BasicOperatingMode::Halted)
),
DispatchError::BadOrigin,
);
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(1),
MessagesOperatingMode::Basic(BasicOperatingMode::Normal)
),
DispatchError::BadOrigin,
);
assert_ok!(Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(2),
MessagesOperatingMode::Basic(BasicOperatingMode::Halted)
));
assert_noop!(
Pallet::<TestRuntime>::set_operating_mode(
Origin::signed(1),
MessagesOperatingMode::Basic(BasicOperatingMode::Normal)
),
DispatchError::BadOrigin,
);
});
}
#[test]
fn pallet_parameter_may_be_updated_by_root() {
run_test(|| {
@@ -2411,4 +2315,9 @@ mod tests {
);
});
}
generate_owned_bridge_module_tests!(
MessagesOperatingMode::Basic(BasicOperatingMode::Normal),
MessagesOperatingMode::Basic(BasicOperatingMode::Halted)
);
}