Namespace Kuestenlogik.Bowire.Protocol.Mqtt.Mock

Classes

MqttMockTransportHost

MQTT transport host for the Bowire mock server. Spins up an embedded MQTTnet broker on its own port, then orchestrates the proactive emitter (replays captured publishes) and the reactive responder (matches incoming publishes against pattern-based recordings and emits paired responses).

MqttProactiveEmitter

Proactive emitter for Phase 2f: replays the MQTT publishes captured in a BowireRecording onto an embedded MQTTnet broker on a schedule. No HTTP trigger needed — the scheduler fires as soon as a subscriber is attached (or after the startup-grace timeout, whichever comes first). Subscribers that connect late miss already-fired publishes (retained messages stick around per MQTT semantics).

MqttReactiveResponder

MQTT reactive matcher / responder. Watches incoming client publishes via the broker's InterceptingPublishAsync event and emits paired responses for every recorded step whose topic pattern matches.

MqttTopicMatcher

MQTT topic-pattern matcher. Supports the two wildcards the MQTT spec defines on subscriptions:

  • + — exactly one level (e.g. sensors/+/temp matches sensors/room1/temp but not sensors/a/b/temp).
  • # — zero or more trailing levels, must be the last segment (e.g. sensors/# matches sensors, sensors/a, sensors/a/b/c).

On a successful match, the positional wildcard values are returned so callers can expose them to the dynamic-value substitutor as \({topic.0}</code>, <code>\){topic.1}, …, and the # tail as ${topic.rest}.