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:
Oleg Zhurakousky
2010-11-04 10:38:46 -04:00
parent b1e3f76417
commit 9e8f14b05b
6 changed files with 43 additions and 72 deletions

View File

@@ -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();
}
}

View File

@@ -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();