pub struct StubRuntime { /* private fields */ }Expand description
An implementation of Runtime that returns pre-defined results from a queue.
This runtime is primarily intended for testing purposes.
§Examples
use candid::Principal;
use ic_canister_runtime::{IcError, Runtime, StubRuntime};
const PRINCIPAL: Principal = Principal::from_slice(&[0x9d, 0xf7, 0x01]);
const METHOD: &str = "method";
const ARGS: (&str,) = ("args",);
let runtime = StubRuntime::new()
.add_stub_response(1_u64)
.add_stub_response("two")
.add_stub_response(Some(3_u128));
let result_1: Result<u64, IcError> = runtime
.update_call(PRINCIPAL, METHOD, ARGS, 0)
.await;
assert_eq!(result_1, Ok(1_u64));
let result_2: Result<String, IcError> = runtime
.query_call(PRINCIPAL, METHOD, ARGS)
.await;
assert_eq!(result_2, Ok("two".to_string()));
let result_3: Result<Option<u128>, IcError> = runtime
.update_call(PRINCIPAL, METHOD, ARGS, 0)
.await;
assert_eq!(result_3, Ok(Some
(3_u128)));Implementations§
Source§impl StubRuntime
impl StubRuntime
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new empty StubRuntime.
Sourcepub fn add_stub_response<Out: CandidType>(self, stub_response: Out) -> Self
pub fn add_stub_response<Out: CandidType>(self, stub_response: Out) -> Self
Mutate the StubRuntime instance to add the given stub response.
Panics if the stub response cannot be encoded using Candid.
Trait Implementations§
Source§impl Debug for StubRuntime
impl Debug for StubRuntime
Source§impl Default for StubRuntime
impl Default for StubRuntime
Source§fn default() -> StubRuntime
fn default() -> StubRuntime
Returns the “default value” for a type. Read more
Source§impl Runtime for StubRuntime
impl Runtime for StubRuntime
Source§fn update_call<'life0, 'life1, 'async_trait, In, Out>(
&'life0 self,
_id: Principal,
_method: &'life1 str,
_args: In,
_cycles: u128,
) -> Pin<Box<dyn Future<Output = Result<Out, IcError>> + Send + 'async_trait>>where
In: ArgumentEncoder + Send + 'async_trait,
Out: CandidType + DeserializeOwned + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_call<'life0, 'life1, 'async_trait, In, Out>(
&'life0 self,
_id: Principal,
_method: &'life1 str,
_args: In,
_cycles: u128,
) -> Pin<Box<dyn Future<Output = Result<Out, IcError>> + Send + 'async_trait>>where
In: ArgumentEncoder + Send + 'async_trait,
Out: CandidType + DeserializeOwned + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Defines how asynchronous inter-canister update calls are made.
Source§fn query_call<'life0, 'life1, 'async_trait, In, Out>(
&'life0 self,
_id: Principal,
_method: &'life1 str,
_args: In,
) -> Pin<Box<dyn Future<Output = Result<Out, IcError>> + Send + 'async_trait>>where
In: ArgumentEncoder + Send + 'async_trait,
Out: CandidType + DeserializeOwned + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query_call<'life0, 'life1, 'async_trait, In, Out>(
&'life0 self,
_id: Principal,
_method: &'life1 str,
_args: In,
) -> Pin<Box<dyn Future<Output = Result<Out, IcError>> + Send + 'async_trait>>where
In: ArgumentEncoder + Send + 'async_trait,
Out: CandidType + DeserializeOwned + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Defines how asynchronous inter-canister query calls are made.
Auto Trait Implementations§
impl !Freeze for StubRuntime
impl RefUnwindSafe for StubRuntime
impl Send for StubRuntime
impl Sync for StubRuntime
impl Unpin for StubRuntime
impl UnwindSafe for StubRuntime
Blanket Implementations§
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
Mutably borrows from an owned value. Read more