diff --git a/cumulus/primitives/parachain-inherent/src/mock.rs b/cumulus/primitives/parachain-inherent/src/mock.rs
index 5168b46a14d03def1ccfe72c9244e71bfb202d84..e40cb49acddd1f7cd9d01e37c4f1c869a3043c6a 100644
--- a/cumulus/primitives/parachain-inherent/src/mock.rs
+++ b/cumulus/primitives/parachain-inherent/src/mock.rs
@@ -61,6 +61,8 @@ pub struct MockValidationDataInherentDataProvider<R = ()> {
 	pub raw_downward_messages: Vec<Vec<u8>>,
 	// Inbound Horizontal messages sorted by channel
 	pub raw_horizontal_messages: Vec<(ParaId, Vec<u8>)>,
+	// Additional key-value pairs that should be injected.
+	pub additional_key_values: Option<Vec<(Vec<u8>, Vec<u8>)>>,
 }
 
 pub trait GenerateRandomness<I> {
@@ -210,6 +212,10 @@ impl<R: Send + Sync + GenerateRandomness<u64>> InherentDataProvider
 		sproof_builder.randomness =
 			self.relay_randomness_config.generate_randomness(self.current_para_block.into());
 
+		if let Some(key_values) = &self.additional_key_values {
+			sproof_builder.additional_key_values = key_values.clone()
+		}
+
 		let (relay_parent_storage_root, proof) = sproof_builder.into_state_root_and_proof();
 
 		inherent_data.put_data(