diff --git a/broker/src/test/java/org/dna/mqtt/moquette/messaging/spi/impl/DummyStorageService.java b/broker/src/test/java/org/dna/mqtt/moquette/messaging/spi/impl/DummyStorageService.java index e4849ce8..a23208dd 100644 --- a/broker/src/test/java/org/dna/mqtt/moquette/messaging/spi/impl/DummyStorageService.java +++ b/broker/src/test/java/org/dna/mqtt/moquette/messaging/spi/impl/DummyStorageService.java @@ -1,5 +1,6 @@ package org.dna.mqtt.moquette.messaging.spi.impl; +import java.util.ArrayList; import org.dna.mqtt.moquette.messaging.spi.IMatchingCondition; import org.dna.mqtt.moquette.messaging.spi.IStorageService; import org.dna.mqtt.moquette.messaging.spi.impl.events.PublishEvent; @@ -8,11 +9,18 @@ import org.dna.mqtt.moquette.proto.messages.AbstractMessage; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; /** */ public class DummyStorageService implements IStorageService { + + private Map> m_persistentSubscriptions = new HashMap>(); + public void initStore() { //To change body of implemented methods use File | Settings | File Templates. } @@ -46,15 +54,27 @@ public class DummyStorageService implements IStorageService { } public void addNewSubscription(Subscription newSubscription, String clientID) { - //To change body of implemented methods use File | Settings | File Templates. + if (!m_persistentSubscriptions.containsKey(clientID)) { + m_persistentSubscriptions.put(clientID, new HashSet()); + } + + Set subs = m_persistentSubscriptions.get(clientID); + if (!subs.contains(newSubscription)) { + subs.add(newSubscription); + m_persistentSubscriptions.put(clientID, subs); + } } public void removeAllSubscriptions(String clientID) { - //To change body of implemented methods use File | Settings | File Templates. + m_persistentSubscriptions.remove(clientID); } public List retrieveAllSubscriptions() { - return Collections.EMPTY_LIST; + List allSubscriptions = new ArrayList(); + for (Map.Entry> entry : m_persistentSubscriptions.entrySet()) { + allSubscriptions.addAll(entry.getValue()); + } + return allSubscriptions; } public void close() { diff --git a/broker/src/test/java/org/dna/mqtt/moquette/messaging/spi/impl/ProtocolProcessorTest.java b/broker/src/test/java/org/dna/mqtt/moquette/messaging/spi/impl/ProtocolProcessorTest.java index 091fbd05..e4a35d71 100644 --- a/broker/src/test/java/org/dna/mqtt/moquette/messaging/spi/impl/ProtocolProcessorTest.java +++ b/broker/src/test/java/org/dna/mqtt/moquette/messaging/spi/impl/ProtocolProcessorTest.java @@ -231,7 +231,7 @@ public class ProtocolProcessorTest { } } }; - subs.init(m_storageService); + subs.init(new DummyStorageService()); //simulate a connect that register a clientID to an IoSession IMessaging mockedMessaging = mock(IMessaging.class);