Add serialization test for muc item element

Paul Fariello created

Change summary

xmpp-parsers/src/muc/user.rs | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)

Detailed changes

xmpp-parsers/src/muc/user.rs 🔗

@@ -690,6 +690,36 @@ mod tests {
 
     #[test]
     fn test_serialize_item() {
-        assert!(false);
+        let reference: Element = "<item xmlns='http://jabber.org/protocol/muc#user' affiliation='member' role='moderator'><actor nick='foobar'/><continue thread='foobar'/><reason>foobar</reason></item>"
+        .parse()
+        .unwrap();
+
+        let elem: Element = "<actor xmlns='http://jabber.org/protocol/muc#user' nick='foobar'/>"
+          .parse()
+          .unwrap();
+        let actor = Actor::try_from(elem).unwrap();
+
+        let elem: Element = "<continue xmlns='http://jabber.org/protocol/muc#user' thread='foobar'/>"
+          .parse()
+          .unwrap();
+        let continue_ = Continue::try_from(elem).unwrap();
+
+        let elem: Element = "<reason xmlns='http://jabber.org/protocol/muc#user'>foobar</reason>"
+          .parse()
+          .unwrap();
+        let reason = Reason::try_from(elem).unwrap();
+
+        let item = Item {
+            affiliation: Affiliation::Member,
+            role: Role::Moderator,
+            jid: None,
+            nick: None,
+            actor: Some(actor),
+            reason: Some(reason),
+            continue_: Some(continue_),
+        };
+
+        let serialized: Element = item.into();
+        assert_eq!(serialized, reference);
     }
 }