Struct KubernetesMocker

Source
pub struct KubernetesMocker { /* private fields */ }
Expand description

The main mocker struct. Holds all the information about expected API calls, and provides functionality to set up expected requests and responses before testing with .run().

Implementations§

Source§

impl KubernetesMocker

Source

pub async fn expect<'a, Fut, T, F>( &mut self, expected_api_call: F, result: MockReturn<'a, T>, ) -> Result<&mut Self, MockError>
where Fut: Future<Output = ()> + Send, T: Resource + Serialize + Clone, F: FnOnce() -> Fut,

mocker.expect() - takes a closure producing a future and what to return when receiving the API call given by the closure. Each closure should only have 1 API call. More will be ignored, fewer will return an error.

Will return an error on panic, timeout, or if the closure does not make a request - feel free to use unwrap() liberally!

Returns Ok(&mut self) on success, meaning you can chain .expect().await.unwrap().expect().await.unwrap()

§Errors
§Examples
let (client, mut mocker) = make_mocker();
let api: Api<Node> = Api::all(client);
mocker.expect(|| async {
      api.list(&ListParams::default()).await.unwrap();
    },
    MockReturn::List(&[Node::default()]),
  ).await.unwrap()
  .expect(|| async {
      api.create(&PostParams::default(), &Node::default()).await.unwrap();
    },
    MockReturn::Single(Node::default()),
  ).await.unwrap();
Source

pub async fn run(self) -> Result<(), MockRunError>

KubernetesMocker::run() - produces a future which will compare the received API calls past this point, and compare them to the ones received during the expect() calls.

§Errors

Should be run with tokio::task::spawn so it runs concurrently with whatever is being tested.

§Examples

See examples for make_mocker().

§Panics

Should not panic, if an HTTP body fails to be made it should be presented as an error during expect(). Still uses unwrap() for brevity, and to avoid a duplicate of MockError::HttpBody in MockRunError.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T