From b1e1aa24609a80cec87768a8cc0bb93ebad1dbe7 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 3 Nov 2010 23:20:05 -0400 Subject: [PATCH] INT-1580 cleaned up Roster endpoint, added tests --- .../xmpp/config/XmppNamespaceHandler.java | 2 +- .../messages/XmppMessageDrivenEndpoint.java | 1 - .../XmppRosterEventMessageDrivenEndpoint.java | 35 ++++----- .../XmppHeaderEnricherParserTests-context.xml | 18 +---- .../ConsoleChatTests-context.xml | 0 .../ConsoleChatTests.java | 2 +- .../InboundXmppEndpointTests-context.xml | 0 .../InboundXmppEndpointTests.java | 2 +- ...dXmppRosterEventsEndpointTests-context.xml | 23 +----- .../InboundXmppRosterEventsEndpointTests.java | 2 +- .../OutboundXmppEndpointTests-context.xml | 0 .../OutboundXmppEndpointTests.java | 2 +- ...dXmppRosterEventsEndpointTests-context.xml | 0 ...OutboundXmppRosterEventsEndpointTests.java | 3 +- .../PresenceMessageComboTests.java | 2 +- .../XmppMessageConsumer.java | 2 +- .../XmppMessageProducer.java | 2 +- .../XmppRosterEventConsumer.java | 2 +- .../XmppRosterEventProducer.java | 4 +- ...RosterEventMessageDrivenEndpointTests.java | 77 +++++++++++++++++++ .../src/test/java/test.properties | 16 ++-- 21 files changed, 117 insertions(+), 78 deletions(-) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{messages => ignore}/ConsoleChatTests-context.xml (100%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{messages => ignore}/ConsoleChatTests.java (95%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{messages => ignore}/InboundXmppEndpointTests-context.xml (100%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{messages => ignore}/InboundXmppEndpointTests.java (95%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{presence => ignore}/InboundXmppRosterEventsEndpointTests-context.xml (67%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{presence => ignore}/InboundXmppRosterEventsEndpointTests.java (95%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{messages => ignore}/OutboundXmppEndpointTests-context.xml (100%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{messages => ignore}/OutboundXmppEndpointTests.java (95%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{presence => ignore}/OutboundXmppRosterEventsEndpointTests-context.xml (100%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{presence => ignore}/OutboundXmppRosterEventsEndpointTests.java (89%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{presence => ignore}/PresenceMessageComboTests.java (96%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{messages => ignore}/XmppMessageConsumer.java (96%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{messages => ignore}/XmppMessageProducer.java (97%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{presence => ignore}/XmppRosterEventConsumer.java (96%) rename spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/{presence => ignore}/XmppRosterEventProducer.java (92%) create mode 100644 spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventMessageDrivenEndpointTests.java diff --git a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppNamespaceHandler.java b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppNamespaceHandler.java index 888e16e782..ce7f21aeac 100644 --- a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppNamespaceHandler.java +++ b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppNamespaceHandler.java @@ -123,7 +123,7 @@ public class XmppNamespaceHandler extends NamespaceHandlerSupport { Assert.hasText(connectionName, "'xmpp-connection' must be defined"); builder.addPropertyReference("xmppConnection", connectionName); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "channel", "requestChannel"); - IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "extract-payload"); + //IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "extract-payload"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "auto-startup"); } } diff --git a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/messages/XmppMessageDrivenEndpoint.java b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/messages/XmppMessageDrivenEndpoint.java index fda5e3989d..5c435eba7d 100644 --- a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/messages/XmppMessageDrivenEndpoint.java +++ b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/messages/XmppMessageDrivenEndpoint.java @@ -112,7 +112,6 @@ public class XmppMessageDrivenEndpoint extends AbstractEndpoint { @Override protected void doStart() { Assert.isTrue(this.initialized, this.getComponentType() + " must be initialized"); - logger.debug("start: " + xmppConnection.isConnected() + ":" + xmppConnection.isAuthenticated()); xmppConnection.addPacketListener(this.packetListener, null); } diff --git a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/presence/XmppRosterEventMessageDrivenEndpoint.java b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/presence/XmppRosterEventMessageDrivenEndpoint.java index 77a3bfbd86..2bcd884f94 100644 --- a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/presence/XmppRosterEventMessageDrivenEndpoint.java +++ b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/presence/XmppRosterEventMessageDrivenEndpoint.java @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.integration.xmpp.presence; +import java.util.Collection; + import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.logging.Log; @@ -23,14 +24,12 @@ import org.apache.commons.logging.LogFactory; import org.jivesoftware.smack.RosterListener; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.Presence; -import org.springframework.context.Lifecycle; import org.springframework.integration.Message; import org.springframework.integration.MessageChannel; import org.springframework.integration.core.MessagingTemplate; import org.springframework.integration.endpoint.AbstractEndpoint; import org.springframework.integration.mapping.InboundMessageMapper; - -import java.util.Collection; +import org.springframework.util.Assert; /** @@ -41,11 +40,10 @@ import java.util.Collection; * @author Josh Long * @since 2.0 */ -public class XmppRosterEventMessageDrivenEndpoint extends AbstractEndpoint implements Lifecycle { +public class XmppRosterEventMessageDrivenEndpoint extends AbstractEndpoint { private static final Log logger = LogFactory.getLog(XmppRosterEventMessageDrivenEndpoint.class); - private volatile MessageChannel requestChannel; private volatile XMPPConnection xmppConnection; @@ -53,14 +51,17 @@ public class XmppRosterEventMessageDrivenEndpoint extends AbstractEndpoint imple private InboundMessageMapper messageMapper; private final MessagingTemplate messagingTemplate = new MessagingTemplate(); + + private final EventForwardingRosterListener rosterListener = new EventForwardingRosterListener(); + private volatile boolean initialized; /** * This will be injected or configured via a xmpp-connection-factory element. * * @param xmppConnection the connection */ - public void setXmppConnection(final XMPPConnection xmppConnection) { + public void setXmppConnection(XMPPConnection xmppConnection) { this.xmppConnection = xmppConnection; } @@ -71,20 +72,20 @@ public class XmppRosterEventMessageDrivenEndpoint extends AbstractEndpoint imple this.messagingTemplate.setDefaultChannel(requestChannel); this.requestChannel = requestChannel; } + + public void setMessageMapper(InboundMessageMapper messageMapper) { + this.messageMapper = messageMapper; + } @Override protected void doStart() { - logger.debug("start: " + xmppConnection.isConnected() + ":" + - xmppConnection.isAuthenticated()); + Assert.isTrue(this.initialized, this.getComponentType() + " must be initialized"); + this.xmppConnection.getRoster().addRosterListener(rosterListener); } @Override protected void doStop() { - if (this.xmppConnection.isConnected()) { - logger.debug("shutting down " + XmppRosterEventMessageDrivenEndpoint.class.getName() + - "."); - this.xmppConnection.disconnect(); - } + this.xmppConnection.getRoster().removeRosterListener(rosterListener); } @Override @@ -94,7 +95,7 @@ public class XmppRosterEventMessageDrivenEndpoint extends AbstractEndpoint imple } this.messagingTemplate.afterPropertiesSet(); - this.xmppConnection.getRoster().addRosterListener(new EventForwardingRosterListener()); + this.initialized = true; } /** @@ -112,10 +113,6 @@ public class XmppRosterEventMessageDrivenEndpoint extends AbstractEndpoint imple } } - public void setMessageMapper(InboundMessageMapper messageMapper) { - this.messageMapper = messageMapper; - } - /** * Subscribes to a given {@link org.jivesoftware.smack.Roster}s events and forwards them to components on the bus. */ diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppHeaderEnricherParserTests-context.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppHeaderEnricherParserTests-context.xml index 2ea13eccec..0ffe11c8c6 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppHeaderEnricherParserTests-context.xml +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppHeaderEnricherParserTests-context.xml @@ -1,19 +1,4 @@ - - - + diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/ConsoleChatTests-context.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/ConsoleChatTests-context.xml similarity index 100% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/ConsoleChatTests-context.xml rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/ConsoleChatTests-context.xml diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/ConsoleChatTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/ConsoleChatTests.java similarity index 95% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/ConsoleChatTests.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/ConsoleChatTests.java index 643e82aaf3..cdf972aee0 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/ConsoleChatTests.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/ConsoleChatTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.messages; +package org.springframework.integration.xmpp.ignore; import org.junit.Ignore; import org.junit.Test; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests-context.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppEndpointTests-context.xml similarity index 100% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests-context.xml rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppEndpointTests-context.xml diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppEndpointTests.java similarity index 95% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppEndpointTests.java index cc65cc5bac..cdaa561a1e 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppEndpointTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.messages; +package org.springframework.integration.xmpp.ignore; import org.junit.Ignore; import org.junit.Test; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/InboundXmppRosterEventsEndpointTests-context.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppRosterEventsEndpointTests-context.xml similarity index 67% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/InboundXmppRosterEventsEndpointTests-context.xml rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppRosterEventsEndpointTests-context.xml index 7ddd60c8e6..3a02802460 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/InboundXmppRosterEventsEndpointTests-context.xml +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppRosterEventsEndpointTests-context.xml @@ -1,15 +1,4 @@ - - - - - - - + + @@ -41,10 +26,6 @@ user="${user.1.login}" password="${user.1.password}" host="${user.1.host}" - port="${user.1.port}" - resource="${user.1.resource}" - sasl-mechanism-supported="${user.1.sasl.mechanism}" - sasl-mechanism-supported-index="${user.1.sasl.index}" service-name="${user.1.service}" /> diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/InboundXmppRosterEventsEndpointTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppRosterEventsEndpointTests.java similarity index 95% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/InboundXmppRosterEventsEndpointTests.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppRosterEventsEndpointTests.java index 02f4e5db4f..497b2c46f9 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/InboundXmppRosterEventsEndpointTests.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/InboundXmppRosterEventsEndpointTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.presence; +package org.springframework.integration.xmpp.ignore; import org.junit.Ignore; import org.junit.Test; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/OutboundXmppEndpointTests-context.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppEndpointTests-context.xml similarity index 100% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/OutboundXmppEndpointTests-context.xml rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppEndpointTests-context.xml diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/OutboundXmppEndpointTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppEndpointTests.java similarity index 95% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/OutboundXmppEndpointTests.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppEndpointTests.java index 1b9e094517..e631f0a8a6 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/OutboundXmppEndpointTests.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppEndpointTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.messages; +package org.springframework.integration.xmpp.ignore; import org.junit.Ignore; import org.junit.Test; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/OutboundXmppRosterEventsEndpointTests-context.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppRosterEventsEndpointTests-context.xml similarity index 100% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/OutboundXmppRosterEventsEndpointTests-context.xml rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppRosterEventsEndpointTests-context.xml diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/OutboundXmppRosterEventsEndpointTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppRosterEventsEndpointTests.java similarity index 89% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/OutboundXmppRosterEventsEndpointTests.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppRosterEventsEndpointTests.java index 61c5fe3a10..349670e21e 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/OutboundXmppRosterEventsEndpointTests.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/OutboundXmppRosterEventsEndpointTests.java @@ -14,11 +14,12 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.presence; +package org.springframework.integration.xmpp.ignore; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.integration.xmpp.presence.XmppRosterEventMessageSendingHandler; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/PresenceMessageComboTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/PresenceMessageComboTests.java similarity index 96% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/PresenceMessageComboTests.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/PresenceMessageComboTests.java index 9547a8ca33..221d4e2c42 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/PresenceMessageComboTests.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/PresenceMessageComboTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.presence; +package org.springframework.integration.xmpp.ignore; import org.junit.Ignore; import org.junit.Test; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/XmppMessageConsumer.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppMessageConsumer.java similarity index 96% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/XmppMessageConsumer.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppMessageConsumer.java index 2f44267563..3aab8fe3a1 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/XmppMessageConsumer.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppMessageConsumer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.messages; +package org.springframework.integration.xmpp.ignore; import org.jivesoftware.smack.packet.Message; import org.springframework.integration.annotation.ServiceActivator; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/XmppMessageProducer.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppMessageProducer.java similarity index 97% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/XmppMessageProducer.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppMessageProducer.java index bf4b440c24..bde5dd4923 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/XmppMessageProducer.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppMessageProducer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.messages; +package org.springframework.integration.xmpp.ignore; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventConsumer.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppRosterEventConsumer.java similarity index 96% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventConsumer.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppRosterEventConsumer.java index f75da61f3f..7049af120d 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventConsumer.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppRosterEventConsumer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.presence; +package org.springframework.integration.xmpp.ignore; import org.apache.commons.lang.StringUtils; import org.springframework.integration.Message; diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventProducer.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppRosterEventProducer.java similarity index 92% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventProducer.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppRosterEventProducer.java index fbe97a2743..60cc7dfc61 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventProducer.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/ignore/XmppRosterEventProducer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.xmpp.presence; +package org.springframework.integration.xmpp.ignore; import org.apache.commons.lang.StringUtils; import org.jivesoftware.smack.packet.Presence; @@ -25,7 +25,7 @@ import org.springframework.integration.xmpp.XmppHeaders; /** * This is used in - * {@link org.springframework.integration.xmpp.presence.OutboundXmppRosterEventsEndpointTests} + * {@link org.springframework.integration.xmpp.ignore.OutboundXmppRosterEventsEndpointTests} * to produce fake status / presence updates. * * @author Josh Long diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventMessageDrivenEndpointTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventMessageDrivenEndpointTests.java new file mode 100644 index 0000000000..57042e7c61 --- /dev/null +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/presence/XmppRosterEventMessageDrivenEndpointTests.java @@ -0,0 +1,77 @@ +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.integration.xmpp.presence; + +import static junit.framework.Assert.assertEquals; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.HashSet; +import java.util.Set; + +import org.jivesoftware.smack.Roster; +import org.jivesoftware.smack.RosterListener; +import org.jivesoftware.smack.XMPPConnection; +import org.junit.Test; +import org.mockito.Mockito; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; + +/** + * @author Oleg Zhurakousky + * + */ +public class XmppRosterEventMessageDrivenEndpointTests { + + @Test + public void testEndpointLifecycle(){ + final Set rosterSet = new HashSet(); + XMPPConnection connection = mock(XMPPConnection.class); + Roster roster = mock(Roster.class); + when(connection.getRoster()).thenReturn(roster); + + doAnswer(new Answer() { + @Override + public Object answer(InvocationOnMock invocation) throws Throwable { + rosterSet.add((RosterListener) invocation.getArguments()[0]); + return null; + } + }).when(roster).addRosterListener(Mockito.any(RosterListener.class)); + + doAnswer(new Answer() { + @Override + public Object answer(InvocationOnMock invocation) throws Throwable { + rosterSet.remove((RosterListener) invocation.getArguments()[0]); + return null; + } + }).when(roster).removeRosterListener(Mockito.any(RosterListener.class)); + XmppRosterEventMessageDrivenEndpoint rosterEndpoint = new XmppRosterEventMessageDrivenEndpoint(); + rosterEndpoint.setXmppConnection(connection); + rosterEndpoint.afterPropertiesSet(); + assertEquals(0, rosterSet.size()); + rosterEndpoint.start(); + assertEquals(1, rosterSet.size()); + rosterEndpoint.stop(); + assertEquals(0, rosterSet.size()); + } + + @Test(expected=IllegalArgumentException.class) + public void testNonInitializedFailure(){ + XmppRosterEventMessageDrivenEndpoint rosterEndpoint = new XmppRosterEventMessageDrivenEndpoint(); + rosterEndpoint.start(); + } +} diff --git a/spring-integration-xmpp/src/test/java/test.properties b/spring-integration-xmpp/src/test/java/test.properties index d2447e3cb2..02213f3b6d 100644 --- a/spring-integration-xmpp/src/test/java/test.properties +++ b/spring-integration-xmpp/src/test/java/test.properties @@ -14,11 +14,11 @@ # limitations under the License. # # to be able to run these tests, put this file on your desktop and configure as appropriate -user.2.login=springintegration.eip@gmail.com -user.2.password=spr1ng1p -user.2.host=talk.google.com -user.2.service=gmail.com -#user.2.sasl.mechanism=PLAIN -#user.2.sasl.index=0 -#user.2.resource=resource -#user.2.port=5222 +user.1.login=user@gmail.com +user.1.password=password +user.1.host=talk.google.com +user.1.service=gmail.com +#user.1.sasl.mechanism=PLAIN +#user.1.sasl.index=0 +#user.1.resource=resource +#user.1.port=5222