INT-1554 added more tests and refactored/cleaned XmppPresenceMapper. Removed Presence Type header as unneccessery, since the only two payloads that are supported is Presence itself or Presentce.Type
This commit is contained in:
@@ -18,6 +18,7 @@ package org.springframework.integration.xmpp.ignore;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jivesoftware.smack.packet.Presence;
|
||||
import org.jivesoftware.smack.packet.Presence.Type;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.core.MessageSource;
|
||||
import org.springframework.integration.support.MessageBuilder;
|
||||
@@ -40,12 +41,11 @@ public class XmppRosterEventProducer implements MessageSource<String> {
|
||||
catch (InterruptedException e) {
|
||||
// eat it
|
||||
}
|
||||
return (Math.random() > .5) ? MessageBuilder.withPayload(StringUtils.EMPTY).setHeader(
|
||||
XmppHeaders.PRESENCE_MODE, Presence.Mode.chat).setHeader(XmppHeaders.PRESENCE_TYPE,
|
||||
Presence.Type.available).setHeader(XmppHeaders.PRESENCE_STATUS, "She Loves me").build()
|
||||
return (Math.random() > .5) ? MessageBuilder.withPayload("available").setHeader(
|
||||
XmppHeaders.PRESENCE_MODE, Presence.Mode.chat)
|
||||
.setHeader(XmppHeaders.PRESENCE_STATUS, "She Loves me").build()
|
||||
: MessageBuilder.withPayload(StringUtils.EMPTY).setHeader(XmppHeaders.PRESENCE_MODE, Presence.Mode.dnd)
|
||||
.setHeader(XmppHeaders.PRESENCE_TYPE, Presence.Type.available).setHeader(
|
||||
XmppHeaders.PRESENCE_STATUS, "She Loves me not").build();
|
||||
.setHeader(XmppHeaders.PRESENCE_STATUS, "She Loves me not").build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -32,6 +32,14 @@ import org.springframework.integration.xmpp.XmppHeaders;
|
||||
*/
|
||||
public class XmppPresenceMessageMapperTests {
|
||||
|
||||
@Test
|
||||
public void testToMessage() throws Exception{
|
||||
Presence presence = new Presence(Type.available, "Hello", 1, Mode.chat);
|
||||
XmppPresenceMessageMapper mapper = new XmppPresenceMessageMapper();
|
||||
Message<Presence> presenceMessage = mapper.toMessage(presence);
|
||||
assertEquals(presence, presenceMessage.getPayload());
|
||||
// TODO look into why presence attributes are also duplicated as headers
|
||||
}
|
||||
@Test
|
||||
public void testFromMessageWithPayloadPresence() throws Exception{
|
||||
Presence presence = new Presence(Type.available, "Hello", 1, Mode.chat);
|
||||
@@ -50,7 +58,6 @@ public class XmppPresenceMessageMapperTests {
|
||||
.setHeader(XmppHeaders.PRESENCE_FROM, "oleg")
|
||||
.setHeader(XmppHeaders.PRESENCE_MODE, Mode.chat)
|
||||
.setHeader(XmppHeaders.PRESENCE_STATUS, "hello")
|
||||
.setHeader(XmppHeaders.PRESENCE_TYPE, Type.subscribed)
|
||||
.setHeader(XmppHeaders.PRESENCE_PRIORITY, 1)
|
||||
.build();
|
||||
XmppPresenceMessageMapper mapper = new XmppPresenceMessageMapper();
|
||||
@@ -66,7 +73,6 @@ public class XmppPresenceMessageMapperTests {
|
||||
.setHeader(XmppHeaders.PRESENCE_FROM, "oleg")
|
||||
.setHeader(XmppHeaders.PRESENCE_MODE, "chat")
|
||||
.setHeader(XmppHeaders.PRESENCE_STATUS, "hello")
|
||||
.setHeader(XmppHeaders.PRESENCE_TYPE, "subscribed")
|
||||
.setHeader(XmppHeaders.PRESENCE_PRIORITY, 1)
|
||||
.build();
|
||||
XmppPresenceMessageMapper mapper = new XmppPresenceMessageMapper();
|
||||
@@ -87,16 +93,6 @@ public class XmppPresenceMessageMapperTests {
|
||||
mapper.fromMessage(message);
|
||||
}
|
||||
|
||||
@Test(expected=MessageMappingException.class)
|
||||
public void testFromMessageWithPayloadPresenceTypeUnsupportedType() throws Exception{
|
||||
|
||||
Message<?> message = MessageBuilder.withPayload(Type.available)
|
||||
.setHeader(XmppHeaders.PRESENCE_TYPE, 1)
|
||||
.build();
|
||||
XmppPresenceMessageMapper mapper = new XmppPresenceMessageMapper();
|
||||
mapper.fromMessage(message);
|
||||
}
|
||||
|
||||
@Test(expected=MessageMappingException.class)
|
||||
public void testFromMessageWithUnsupportedPayload() throws Exception{
|
||||
Message<?> message = MessageBuilder.withPayload("hello").build();
|
||||
|
||||
Reference in New Issue
Block a user