Changed Subscription equals to use also cleanSession flag in equality check

This commit is contained in:
andrea
2015-06-28 16:26:10 +02:00
parent 5416a87149
commit b8af814940
4 changed files with 54 additions and 26 deletions
@@ -0,0 +1,33 @@
package org.eclipse.moquette.spi.impl.subscriptions;
import static junit.framework.Assert.assertEquals;
import static org.eclipse.moquette.proto.messages.AbstractMessage.QOSType.*;
import org.junit.Test;
import java.util.Set;
public class TreeNodeTest {
public static final String CLIENT_ID = "FAKE_CLIENT_ID";
@Test
public void testAddSubscriptionOverwriteAnExistingWithDifferentCleanSessionFlag() throws Exception {
TreeNode root = new TreeNode(null);
Subscription existingSub = new Subscription(CLIENT_ID, "/topic", LEAST_ONE, false);
root.addSubscription(existingSub);
Set<Subscription> subs = root.findAllByClientID(CLIENT_ID);
assertEquals(1, subs.size());
//Exercise
Subscription overwritingSub = new Subscription(CLIENT_ID, "/topic", LEAST_ONE, true);
root.addSubscription(overwritingSub);
//Verify
//the second subscription has overwritten the first one
subs = root.findAllByClientID(CLIENT_ID);
assertEquals(1, subs.size());
Subscription storedSub = subs.iterator().next();
assertEquals(overwritingSub.isCleanSession(), storedSub.isCleanSession());
}
}