Skip to content

Commit fe06610

Browse files
committed
cloudevents#9 Encoders for MQTT
1 parent dc04020 commit fe06610

File tree

2 files changed

+23
-27
lines changed

2 files changed

+23
-27
lines changed

Diff for: cloudevents-sdk-paho-mqtt/src/mqtt_consumer_record.rs

+14-24
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ impl MessageExt for Message {
101101
#[cfg(test)]
102102
mod tests {
103103
use super::*;
104-
use crate::mqtt_producer_record::MessageRecord;
105104

105+
use crate::headers::MqttVersion::{MQTT_3, MQTT_5};
106106
use crate::MessageBuilderExt;
107107
use chrono::Utc;
108108
use cloudevents::event::Data;
@@ -127,27 +127,23 @@ mod tests {
127127
.build()
128128
.unwrap();
129129

130-
let message_record = MessageRecord::from_event(
131-
EventBuilderV10::new()
132-
.id("0001")
133-
.ty("example.test")
134-
.time(time)
135-
.source("http://localhost")
136-
.extension("someint", "10")
137-
.data("application/json", json!({"hello": "world"}))
138-
.build()
139-
.unwrap(),
140-
headers::MqttVersion::V5,
141-
)
142-
.unwrap();
130+
let event = EventBuilderV10::new()
131+
.id("0001")
132+
.ty("example.test")
133+
.time(time)
134+
.source("http://localhost")
135+
.extension("someint", "10")
136+
.data("application/json", json!({"hello": "world"}))
137+
.build()
138+
.unwrap();
143139

144140
let msg = MessageBuilder::new()
145141
.topic("test")
146-
.message_record(&message_record)
142+
.event(event, MQTT_5)
147143
.qos(1)
148144
.finalize();
149145

150-
assert_eq!(msg.to_event(headers::MqttVersion::V5).unwrap(), expected)
146+
assert_eq!(msg.to_event().unwrap(), expected)
151147
}
152148

153149
#[test]
@@ -172,18 +168,12 @@ mod tests {
172168
.build()
173169
.unwrap();
174170

175-
let serialized_event =
176-
StructuredDeserializer::deserialize_structured(input, MessageRecord::new()).unwrap();
177-
178171
let msg = MessageBuilder::new()
179172
.topic("test")
180-
.message_record(&serialized_event)
173+
.event(input, MQTT_3)
181174
.qos(1)
182175
.finalize();
183176

184-
assert_eq!(
185-
msg.to_event(headers::MqttVersion::V3_1_1).unwrap(),
186-
expected
187-
)
177+
assert_eq!(msg.to_event().unwrap(), expected)
188178
}
189179
}

Diff for: cloudevents-sdk-paho-mqtt/src/mqtt_producer_record.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use super::headers;
2+
use crate::headers::MqttVersion::MQTT_5;
23
use cloudevents::event::SpecVersion;
34
use cloudevents::message::{
45
BinaryDeserializer, BinarySerializer, Error, MessageAttributeValue, Result,
@@ -22,7 +23,7 @@ impl MessageRecord {
2223
}
2324
}
2425

25-
pub fn from_event(event: Event, version: headers::MqttVersion) -> Result<Self> {
26+
pub fn from_event(event: Event, version: &headers::MqttVersion) -> Result<Self> {
2627
match version {
2728
headers::MqttVersion::MQTT_5 => {
2829
BinaryDeserializer::deserialize_binary(event, MessageRecord::new())
@@ -130,9 +131,14 @@ pub trait MessageBuilderExt {
130131
impl MessageBuilderExt for MessageBuilder {
131132
fn event(mut self, event: Event, version: headers::MqttVersion) -> MessageBuilder {
132133
let message_record =
133-
MessageRecord::from_event(event, version).expect("error while serializing the event");
134+
MessageRecord::from_event(event, &version).expect("error while serializing the event");
134135

135-
self = self.properties(message_record.headers.clone());
136+
match version {
137+
MQTT_5 => {
138+
self = self.properties(message_record.headers.clone());
139+
}
140+
_ => (),
141+
}
136142

137143
if let Some(s) = message_record.payload.as_ref() {
138144
self = self.payload(s.to_vec());

0 commit comments

Comments
 (0)