pub struct EventBuilder { /* private fields */ }
Expand description

The EventBuilder struct can be used to easily generate valid sync responses for testing. These can be then fed into either Client or Room.

It supports generated a number of canned events, such as a member entering a room, his power level and display name changing and similar. It also supports insertion of custom events in the form of EventsJson values.

Important You must use the same builder when sending multiple sync responses to a single client. Otherwise, the subsequent responses will be ignored by the client because the next_batch sync token will not be rotated properly.

Example usage

use matrix_sdk_test::{EventBuilder, JoinedRoomBuilder, TimelineTestEvent};

let mut builder = EventBuilder::new();

// response1 now contains events that add an example member to the room and change their power
// level
let response1 = builder
    .add_joined_room(
        JoinedRoomBuilder::default()
            .add_timeline_event(TimelineTestEvent::Member)
            .add_timeline_event(TimelineTestEvent::PowerLevels)
    )
    .build_sync_response();

// response2 is now empty (nothing changed)
let response2 = builder.build_sync_response();

// response3 contains a display name change for member example
let response3 = builder
    .add_joined_room(
        JoinedRoomBuilder::default()
            .add_timeline_event(TimelineTestEvent::MemberNameChange)
            .add_timeline_event(TimelineTestEvent::PowerLevels)
    )
    .build_sync_response();

Implementations

Add a joined room to the next sync response.

If a room with the same room ID already exists, it is replaced by this one.

Add an invited room to the next sync response.

If a room with the same room ID already exists, it is replaced by this one.

Add a left room to the next sync response.

If a room with the same room ID already exists, it is replaced by this one.

Add a presence event.

Add presence in bulk.

Add global account data.

Add global account data in bulk.

Builds a sync response as a JSON Value containing the events we queued so far.

The next response returned by build_sync_response will then be empty if no further events were queued.

This method is raw JSON equivalent to build_sync_response(), use build_sync_response() if you need a typed response.

Builds a SyncResponse containing the events we queued so far.

The next response returned by build_sync_response will then be empty if no further events were queued.

This method is high level and typed equivalent to build_json_sync_response(), use build_json_sync_response() if you need an untyped response.

Trait Implementations

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

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

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more