Struct linera_sdk::service::MockServiceRuntime
source · 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_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_url_blobs(
self,
url_blobs: impl IntoIterator<Item = (String, Vec<u8>)>,
) -> Self
pub fn with_url_blobs( self, url_blobs: impl IntoIterator<Item = (String, Vec<u8>)>, ) -> Self
Configures the blobs returned when fetching from URLs during the test.
sourcepub fn set_url_blobs(
&self,
url_blobs: impl IntoIterator<Item = (String, Vec<u8>)>,
) -> &Self
pub fn set_url_blobs( &self, url_blobs: impl IntoIterator<Item = (String, Vec<u8>)>, ) -> &Self
Configures the blobs returned when fetching from URLs during the test.
sourcepub fn with_url_blob(self, url: impl Into<String>, blob: Vec<u8>) -> Self
pub fn with_url_blob(self, url: impl Into<String>, blob: Vec<u8>) -> Self
Configures the blob
returned when fetching from the url
during the test.
sourcepub fn set_url_blob(&self, url: impl Into<String>, blob: Vec<u8>) -> &Self
pub fn set_url_blob(&self, url: impl Into<String>, blob: Vec<u8>) -> &Self
Configures the blob
returned when fetching from the url
during the test.
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
§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> 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::Request
source§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
§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<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.