pub struct MockServiceRuntime<Application>where
    Application: Service,{ /* private fields */ }Expand description
The runtime available during execution of a query.
Implementations§
Source§impl<Application> MockServiceRuntime<Application>where
    Application: Service,
 
impl<Application> MockServiceRuntime<Application>where
    Application: Service,
Sourcepub fn new() -> Self
 
pub fn new() -> Self
Creates a new MockServiceRuntime instance for a service.
Sourcepub fn key_value_store(&self) -> KeyValueStore
 
pub fn key_value_store(&self) -> KeyValueStore
Returns the key-value store to interface with storage.
Sourcepub fn root_view_storage_context(&self) -> ViewStorageContext
 
pub fn root_view_storage_context(&self) -> ViewStorageContext
Returns a storage context suitable for a root view.
Sourcepub fn with_application_parameters(
    self,
    application_parameters: Application::Parameters,
) -> Self
 
pub fn with_application_parameters( self, application_parameters: Application::Parameters, ) -> Self
Configures the application parameters to return during the test.
Sourcepub fn set_application_parameters(
    &self,
    application_parameters: Application::Parameters,
) -> &Self
 
pub fn set_application_parameters( &self, application_parameters: Application::Parameters, ) -> &Self
Configures the application parameters to return during the test.
Sourcepub fn application_parameters(&self) -> Application::Parameters
 
pub fn application_parameters(&self) -> Application::Parameters
Returns the application parameters provided when the application was created.
Sourcepub fn with_application_id(
    self,
    application_id: ApplicationId<Application::Abi>,
) -> Self
 
pub fn with_application_id( self, application_id: ApplicationId<Application::Abi>, ) -> Self
Configures the application ID to return during the test.
Sourcepub fn set_application_id(
    &self,
    application_id: ApplicationId<Application::Abi>,
) -> &Self
 
pub fn set_application_id( &self, application_id: ApplicationId<Application::Abi>, ) -> &Self
Configures the application ID to return during the test.
Sourcepub fn application_id(&self) -> ApplicationId<Application::Abi>
 
pub fn application_id(&self) -> ApplicationId<Application::Abi>
Returns the ID of the current application.
Sourcepub fn with_application_creator_chain_id(
    self,
    application_creator_chain_id: ChainId,
) -> Self
 
pub fn with_application_creator_chain_id( self, application_creator_chain_id: ChainId, ) -> Self
Configures the application creator chain ID to return during the test.
Sourcepub fn set_application_creator_chain_id(
    &self,
    application_creator_chain_id: ChainId,
) -> &Self
 
pub fn set_application_creator_chain_id( &self, application_creator_chain_id: ChainId, ) -> &Self
Configures the application creator chain ID to return during the test.
Sourcepub fn application_creator_chain_id(&self) -> ChainId
 
pub fn application_creator_chain_id(&self) -> ChainId
Returns the chain ID of the current application creator.
Sourcepub fn with_chain_id(self, chain_id: ChainId) -> Self
 
pub fn with_chain_id(self, chain_id: ChainId) -> Self
Configures the chain ID to return during the test.
Sourcepub fn set_chain_id(&self, chain_id: ChainId) -> &Self
 
pub fn set_chain_id(&self, chain_id: ChainId) -> &Self
Configures the chain ID to return during the test.
Sourcepub fn with_next_block_height(self, next_block_height: BlockHeight) -> Self
 
pub fn with_next_block_height(self, next_block_height: BlockHeight) -> Self
Configures the next block height to return during the test.
Sourcepub fn set_next_block_height(&self, next_block_height: BlockHeight) -> &Self
 
pub fn set_next_block_height(&self, next_block_height: BlockHeight) -> &Self
Configures the block height to return during the test.
Sourcepub fn next_block_height(&self) -> BlockHeight
 
pub fn next_block_height(&self) -> BlockHeight
Returns the height of the next block that can be added to the current chain.
Sourcepub fn with_system_time(self, timestamp: Timestamp) -> Self
 
pub fn with_system_time(self, timestamp: Timestamp) -> Self
Configures the system time to return during the test.
Sourcepub fn set_system_time(&self, timestamp: Timestamp) -> &Self
 
pub fn set_system_time(&self, timestamp: Timestamp) -> &Self
Configures the system time to return during the test.
Sourcepub fn system_time(&self) -> Timestamp
 
pub fn system_time(&self) -> Timestamp
Retrieves the current system time, i.e. the timestamp of the block in which this is called.
Sourcepub fn with_chain_balance(self, chain_balance: Amount) -> Self
 
pub fn with_chain_balance(self, chain_balance: Amount) -> Self
Configures the chain balance to return during the test.
Sourcepub fn set_chain_balance(&self, chain_balance: Amount) -> &Self
 
pub fn set_chain_balance(&self, chain_balance: Amount) -> &Self
Configures the chain balance to return during the test.
Sourcepub fn chain_balance(&self) -> Amount
 
pub fn chain_balance(&self) -> Amount
Returns the current chain balance.
Sourcepub fn with_owner_balances(
    self,
    owner_balances: impl IntoIterator<Item = (AccountOwner, Amount)>,
) -> Self
 
pub fn with_owner_balances( self, owner_balances: impl IntoIterator<Item = (AccountOwner, Amount)>, ) -> Self
Configures the balances on the chain to use during the test.
Sourcepub fn set_owner_balances(
    &self,
    owner_balances: impl IntoIterator<Item = (AccountOwner, Amount)>,
) -> &Self
 
pub fn set_owner_balances( &self, owner_balances: impl IntoIterator<Item = (AccountOwner, Amount)>, ) -> &Self
Configures the balances on the chain to use during the test.
Sourcepub fn with_owner_balance(self, owner: AccountOwner, balance: Amount) -> Self
 
pub fn with_owner_balance(self, owner: AccountOwner, balance: Amount) -> Self
Configures the balance of one account on the chain to use during the test.
Sourcepub fn set_owner_balance(&self, owner: AccountOwner, balance: Amount) -> &Self
 
pub fn set_owner_balance(&self, owner: AccountOwner, balance: Amount) -> &Self
Configures the balance of one account on the chain to use during the test.
Sourcepub fn owner_balance(&self, owner: AccountOwner) -> Amount
 
pub fn owner_balance(&self, owner: AccountOwner) -> Amount
Returns the balance of one of the accounts on this chain.
Sourcepub fn owner_balances(&self) -> Vec<(AccountOwner, Amount)>
 
pub fn owner_balances(&self) -> Vec<(AccountOwner, Amount)>
Returns the balances of all accounts on the chain.
Sourcepub fn balance_owners(&self) -> Vec<AccountOwner>
 
pub fn balance_owners(&self) -> Vec<AccountOwner>
Returns the owners of accounts on this chain.
Sourcepub fn schedule_raw_operation(&self, operation: Vec<u8>)
 
pub fn schedule_raw_operation(&self, operation: Vec<u8>)
Schedules an operation to be included in the block being built.
The operation is specified as an opaque blob of bytes.
Sourcepub fn schedule_operation(&self, operation: &impl Serialize)
 
pub fn schedule_operation(&self, operation: &impl Serialize)
Schedules an operation to be included in the block being built.
The operation is serialized using BCS.
Sourcepub fn raw_scheduled_operations(&self) -> Vec<Vec<u8>>
 
pub fn raw_scheduled_operations(&self) -> Vec<Vec<u8>>
Returns the list of operations scheduled since the most recent of:
- the last call to this method;
- the last call to Self::scheduled_operations;
- or since the mock runtime was created.
Sourcepub fn scheduled_operations<Operation>(&self) -> Vec<Operation>where
    Operation: DeserializeOwned,
 
pub fn scheduled_operations<Operation>(&self) -> Vec<Operation>where
    Operation: DeserializeOwned,
Returns the list of operations scheduled since the most recent of:
- the last call to this method;
- the last call to Self::raw_scheduled_operations;
- or since the mock runtime was created.
All operations are deserialized using BCS into the Operation generic type.
Sourcepub fn with_query_application_handler(
    self,
    handler: impl FnMut(ApplicationId, Vec<u8>) -> Vec<u8> + Send + 'static,
) -> Self
 
pub fn with_query_application_handler( self, handler: impl FnMut(ApplicationId, Vec<u8>) -> Vec<u8> + Send + 'static, ) -> Self
Configures the handler for application queries made during the test.
Sourcepub fn set_query_application_handler(
    &self,
    handler: impl FnMut(ApplicationId, Vec<u8>) -> Vec<u8> + Send + 'static,
) -> &Self
 
pub fn set_query_application_handler( &self, handler: impl FnMut(ApplicationId, Vec<u8>) -> Vec<u8> + Send + 'static, ) -> &Self
Configures the handler for application queries made during the test.
Sourcepub fn query_application<A: ServiceAbi>(
    &self,
    application: ApplicationId<A>,
    query: &A::Query,
) -> A::QueryResponse
 
pub fn query_application<A: ServiceAbi>( &self, application: ApplicationId<A>, query: &A::Query, ) -> A::QueryResponse
Queries another application.
Sourcepub fn add_expected_http_request(
    &mut self,
    request: Request,
    response: Response,
)
 
pub fn add_expected_http_request( &mut self, request: Request, response: Response, )
Adds an expected http_request call, and the response it should return in the test.
Sourcepub fn http_request(&self, request: Request) -> Response
 
pub fn http_request(&self, request: Request) -> Response
Makes an HTTP request as an oracle and returns the HTTP response.
Should only be used with queries where it is very likely that all validators will receive the same response, otherwise most block proposals will fail.
Cannot be used in fast blocks: A block using this call should be proposed by a regular owner, not a super owner.
Sourcepub fn with_blobs(
    self,
    blobs: impl IntoIterator<Item = (DataBlobHash, Vec<u8>)>,
) -> Self
 
pub fn with_blobs( self, blobs: impl IntoIterator<Item = (DataBlobHash, Vec<u8>)>, ) -> Self
Configures the blobs returned when fetching from hashes during the test.
Sourcepub fn set_blobs(
    &self,
    blobs: impl IntoIterator<Item = (DataBlobHash, Vec<u8>)>,
) -> &Self
 
pub fn set_blobs( &self, blobs: impl IntoIterator<Item = (DataBlobHash, Vec<u8>)>, ) -> &Self
Configures the blobs returned when fetching from hashes during the test.
Sourcepub fn with_blob(self, hash: impl Into<DataBlobHash>, blob: Vec<u8>) -> Self
 
pub fn with_blob(self, hash: impl Into<DataBlobHash>, blob: Vec<u8>) -> Self
Configures the blob returned when fetching from the given hash during the test.
Sourcepub fn set_blob(&self, hash: impl Into<DataBlobHash>, blob: Vec<u8>) -> &Self
 
pub fn set_blob(&self, hash: impl Into<DataBlobHash>, blob: Vec<u8>) -> &Self
Configures the blob returned when fetching from the hash during the test.
Sourcepub fn read_data_blob(&self, hash: DataBlobHash) -> Vec<u8> ⓘ
 
pub fn read_data_blob(&self, hash: DataBlobHash) -> Vec<u8> ⓘ
Fetches a blob from a given hash.
Sourcepub fn assert_blob_exists(&self, hash: DataBlobHash)
 
pub fn assert_blob_exists(&self, hash: DataBlobHash)
Asserts that a blob with the given hash exists in storage.
Trait Implementations§
Auto Trait Implementations§
impl<Application> !Freeze for MockServiceRuntime<Application>
impl<Application> RefUnwindSafe for MockServiceRuntime<Application>
impl<Application> Send for MockServiceRuntime<Application>
impl<Application> Sync for MockServiceRuntime<Application>
impl<Application> Unpin for MockServiceRuntime<Application>
impl<Application> UnwindSafe for MockServiceRuntime<Application>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
 
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
 
type ArchivedMetadata = ()
Source§fn pointer_metadata(
    _: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
 
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
 
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
 
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> FmtForward for T
 
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
 
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FutureExt for T
 
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
 
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
 
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
 
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
 
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
 
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
 
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> LayoutRaw for T
 
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
 
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T> MockResults for T
 
impl<T> MockResults for T
Source§type Results = T
 
type Results = T
MockInstance.Source§impl<T> Pipe for Twhere
    T: ?Sized,
 
impl<T> Pipe for Twhere
    T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
 
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
 
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R,
) -> R
 
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
 
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
 
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
 
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
 
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
    T: ?Sized,
 
impl<T> PolicyExt for Twhere
    T: ?Sized,
Source§impl<M, I> RuntimeMemory<&mut I> for Mwhere
    M: RuntimeMemory<I>,
 
impl<M, I> RuntimeMemory<&mut I> for Mwhere
    M: RuntimeMemory<I>,
Source§fn read<'instance>(
    &self,
    instance: &'instance &mut I,
    location: GuestPointer,
    length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
 
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length bytes from memory from the provided location.
Source§fn write(
    &mut self,
    instance: &mut &mut I,
    location: GuestPointer,
    bytes: &[u8],
) -> Result<(), RuntimeError>
 
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes to memory at the provided location.
Source§impl<T> Tap for T
 
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
 
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
 
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
 
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
 
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
 
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
 
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
 
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
 
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
 
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
 
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
 
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
 
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
 
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.