pub struct StubRouter {
settings: StubSettings,
server_settings: StubServerSettings,
clients: HashMap<String, StubClient>,
}
Expand description
##Stub router
This will create a testing router who’s behavior is determined
by the messages that it handles. This router can be used for
local development and testing. The Stub router can be controlled
by specifying the action in the app_id
of the subscription URL.
The success
app_id
is always defined.
for example, using a subscription registration URL of
/v1/stub/success/registration
with the request body of
"{\"token\":\"success\", \"key\":"..."}"
will return a successful
registration endpoint that uses the provided VAPID key. Calling that endpoint
with a VAPID signed request will succeed.
Likewise, using a subscription registration URL of
/v1/stub/error/registration
with the request body of
"{\"token\":\"General Error\", \"key\":"..."}"
will return that error
when the subscription endpoint is called.
Fields§
§settings: StubSettings
§server_settings: StubServerSettings
§clients: HashMap<String, StubClient>
A map from application ID to an authenticated FCM client
Implementations§
source§impl StubRouter
impl StubRouter
sourcepub fn new(settings: StubSettings) -> Result<Self, StubError>
pub fn new(settings: StubSettings) -> Result<Self, StubError>
Create a new StubRouter
sourcefn create_clients(
server_settings: &StubServerSettings,
) -> HashMap<String, StubClient>
fn create_clients( server_settings: &StubServerSettings, ) -> HashMap<String, StubClient>
Create Test clients for each application. Tests can specify which client
to use by designating the value in the app_id
of the subscription URL.
While the success
client is always defined, the error
client can take on
different error results based on the server configuration. See StubServerSettings
for details.
Trait Implementations§
source§impl Router for StubRouter
impl Router for StubRouter
source§fn register(
&self,
router_data_input: &RouterDataInput,
app_id: &str,
) -> Result<HashMap<String, Value>, RouterError>
fn register( &self, router_data_input: &RouterDataInput, app_id: &str, ) -> Result<HashMap<String, Value>, RouterError>
router_data
field.source§fn route_notification<'life0, 'life1, 'async_trait>(
&'life0 self,
notification: &'life1 Notification,
) -> Pin<Box<dyn Future<Output = Result<RouterResponse, ApiError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn route_notification<'life0, 'life1, 'async_trait>(
&'life0 self,
notification: &'life1 Notification,
) -> Pin<Box<dyn Future<Output = Result<RouterResponse, ApiError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl Freeze for StubRouter
impl RefUnwindSafe for StubRouter
impl Send for StubRouter
impl Sync for StubRouter
impl Unpin for StubRouter
impl UnwindSafe for StubRouter
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more