From 1bc4ff4581154d693dd6ac3bfbcd2323a3ee366a Mon Sep 17 00:00:00 2001 From: Andreas Mager Date: Thu, 19 Jan 2017 20:51:30 +0100 Subject: [PATCH 1/5] pom: assertj added to test deps --- broker/pom.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/broker/pom.xml b/broker/pom.xml index 6e320c73..29b74dd8 100644 --- a/broker/pom.xml +++ b/broker/pom.xml @@ -136,6 +136,15 @@ 9.2.0.M1 test + + + org.assertj + assertj-core + + 2.6.0 + test + + com.h2database h2 From 504ac3055eeb3a38ffd3077882844d20f49cd5dd Mon Sep 17 00:00:00 2001 From: Andreas Mager Date: Thu, 19 Jan 2017 20:52:16 +0100 Subject: [PATCH 2/5] SubscriptionsStoreTest: whitespaces removed --- .../subscriptions/SubscriptionsStoreTest.java | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java b/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java index 51efbf1c..a985abe6 100644 --- a/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java +++ b/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java @@ -35,7 +35,7 @@ import static org.junit.Assert.*; * @author andrea */ public class SubscriptionsStoreTest { - + private SubscriptionsStore store; private ISessionsStore sessionsStore; @@ -50,7 +50,7 @@ public class SubscriptionsStoreTest { this.sessionsStore = storageService.sessionsStore(); store.init(sessionsStore); } - + @Test public void testParseTopic() throws ParseException { List tokens = store.parseTopic("finance/stock/ibm"); @@ -115,24 +115,24 @@ public class SubscriptionsStoreTest { sessionsStore.addNewSubscription(slashFinanceSub); store.add(slashFinanceSub.asClientTopicCouple()); assertTrue(store.matches("finance").isEmpty()); - + assertTrue(store.matches("/finance").contains(slashFinanceSub)); assertTrue(store.matches("/").contains(slashSub)); } - + @Test public void testMatchSimpleMulti() { Subscription anySub = new Subscription("FAKE_CLI_ID_1", "#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(anySub); store.add(anySub.asClientTopicCouple()); assertTrue(store.matches("finance").contains(anySub)); - + Subscription financeAnySub = new Subscription("FAKE_CLI_ID_2", "finance/#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(financeAnySub); store.add(financeAnySub.asClientTopicCouple()); assertTrue(store.matches("finance").containsAll(Arrays.asList(financeAnySub, anySub))); } - + @Test public void testMatchingDeepMulti_one_layer() { Subscription anySub = new Subscription("FAKE_CLI_ID_1", "#", MqttQoS.AT_MOST_ONCE); @@ -141,47 +141,47 @@ public class SubscriptionsStoreTest { sessionsStore.addNewSubscription(financeAnySub); store.add(anySub.asClientTopicCouple()); store.add(financeAnySub.asClientTopicCouple()); - + //Verify assertTrue(store.matches("finance/stock").containsAll(Arrays.asList(financeAnySub, anySub))); assertTrue(store.matches("finance/stock/ibm").containsAll(Arrays.asList(financeAnySub, anySub))); } - - + + @Test public void testMatchingDeepMulti_two_layer() { Subscription financeAnySub = new Subscription("FAKE_CLI_ID_1", "finance/stock/#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(financeAnySub); store.add(financeAnySub.asClientTopicCouple()); - + //Verify assertTrue(store.matches("finance/stock/ibm").contains(financeAnySub)); } - + @Test public void testMatchSimpleSingle() { Subscription anySub = new Subscription("FAKE_CLI_ID_1", "+", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(anySub); store.add(anySub.asClientTopicCouple()); assertTrue(store.matches("finance").contains(anySub)); - + Subscription financeOne = new Subscription("FAKE_CLI_ID_1", "finance/+", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(financeOne); store.add(financeOne.asClientTopicCouple()); assertTrue(store.matches("finance/stock").contains(financeOne)); } - + @Test public void testMatchManySingle() { Subscription manySub = new Subscription("FAKE_CLI_ID_1", "+/+", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(manySub); store.add(manySub.asClientTopicCouple()); - + //verify assertTrue(store.matches("/finance").contains(manySub)); } - - + + @Test public void testMatchSlashSingle() { Subscription slashPlusSub = new Subscription("FAKE_CLI_ID_1", "/+", MqttQoS.AT_MOST_ONCE); @@ -190,24 +190,24 @@ public class SubscriptionsStoreTest { Subscription anySub = new Subscription("FAKE_CLI_ID_1", "+", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(anySub); store.add(anySub.asClientTopicCouple()); - + //Verify assertEquals(1, store.matches("/finance").size()); assertTrue(store.matches("/finance").contains(slashPlusSub)); assertFalse(store.matches("/finance").contains(anySub)); } - - + + @Test public void testMatchManyDeepSingle() { Subscription slashPlusSub = new Subscription("FAKE_CLI_ID_1", "/finance/+/ibm", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(slashPlusSub); store.add(slashPlusSub.asClientTopicCouple()); - + Subscription slashPlusDeepSub = new Subscription("FAKE_CLI_ID_2", "/+/stock/+", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(slashPlusDeepSub); store.add(slashPlusDeepSub.asClientTopicCouple()); - + //Verify assertTrue(store.matches("/finance/stock/ibm").containsAll(Arrays.asList(slashPlusSub, slashPlusDeepSub))); } @@ -229,7 +229,7 @@ public class SubscriptionsStoreTest { store.add(sub.asClientTopicCouple()); assertFalse(store.matches("finance").isEmpty()); } - + @Test public void rogerLightTopicMatches() { assertMatch("foo/bar", "foo/bar"); @@ -253,7 +253,7 @@ public class SubscriptionsStoreTest { assertMatch("foo/+/+/baz", "foo///baz"); assertMatch("foo/bar/+", "foo/bar/"); } - + private void assertMatch(String subscription, String topic) { store = new SubscriptionsStore(); MemoryStorageService memStore = new MemoryStorageService(); @@ -265,7 +265,7 @@ public class SubscriptionsStoreTest { store.add(sub.asClientTopicCouple()); assertFalse(store.matches(topic).isEmpty()); } - + private void assertNotMatch(String subscription, String topic) { store = new SubscriptionsStore(); MemoryStorageService memStore = new MemoryStorageService(); @@ -276,32 +276,32 @@ public class SubscriptionsStoreTest { store.add(sub.asClientTopicCouple()); assertTrue(store.matches(topic).isEmpty()); } - - + + @Test public void testRemoveClientSubscriptions_existingClientID() { String cliendID = "FAKE_CLID_1"; Subscription sub = new Subscription(cliendID, "finance/#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(sub); store.add(sub.asClientTopicCouple()); - + //Exercise store.removeForClient(cliendID); - + //Verify assertEquals(0, store.size()); } - + @Test public void testRemoveClientSubscriptions_notexistingClientID() { String clientID = "FAKE_CLID_1"; Subscription s = new Subscription(clientID, "finance/#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(s); store.add(s.asClientTopicCouple()); - + //Exercise store.removeForClient("FAKE_CLID_2"); - + //Verify assertEquals(1, store.size()); } @@ -347,7 +347,7 @@ public class SubscriptionsStoreTest { assertTrue(SubscriptionsStore.matchTopics("sport/", "sport/+")); assertFalse(SubscriptionsStore.matchTopics("/finance/stock", "+")); } - + @Test public void rogerLightMatchTopics() { assertTrue(SubscriptionsStore.matchTopics("foo/bar", "foo/bar")); @@ -355,22 +355,22 @@ public class SubscriptionsStoreTest { assertTrue(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+/baz")); assertTrue(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+/#")); assertTrue(SubscriptionsStore.matchTopics("foo/bar/baz", "#")); - + assertFalse(SubscriptionsStore.matchTopics("foo", "foo/bar")); assertFalse(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+")); assertFalse(SubscriptionsStore.matchTopics("foo/bar/bar", "foo/+/baz")); assertFalse(SubscriptionsStore.matchTopics("fo2/bar/baz", "foo/+/#")); - + assertTrue(SubscriptionsStore.matchTopics("/foo/bar", "#")); assertTrue(SubscriptionsStore.matchTopics("/foo/bar", "/#")); assertFalse(SubscriptionsStore.matchTopics("foo/bar", "/#")); - + assertTrue(SubscriptionsStore.matchTopics("foo//bar", "foo//bar")); assertTrue(SubscriptionsStore.matchTopics("foo//bar", "foo//+")); assertTrue(SubscriptionsStore.matchTopics("foo///baz", "foo/+/+/baz")); assertTrue(SubscriptionsStore.matchTopics("foo/bar/", "foo/bar/+")); } - + @Test public void removeSubscription_withDifferentClients_subscribedSameTopic() { SubscriptionsStore aStore = new SubscriptionsStore(); @@ -388,10 +388,10 @@ public class SubscriptionsStoreTest { Subscription slashSub2 = new Subscription("FAKE_CLI_ID_2", "/topic", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(slashSub2); aStore.add(new ClientTopicCouple("FAKE_CLI_ID_2", "/topic")); - + //Exercise aStore.removeSubscription("/topic", slashSub2.getClientId()); - + //Verify Subscription remainedSubscription = aStore.matches("/topic").get(0); assertEquals(slashSub.getClientId(), remainedSubscription.getClientId()); From f460d6a23023c2299a84177d1e8790e8c53003d2 Mon Sep 17 00:00:00 2001 From: Andreas Mager Date: Thu, 19 Jan 2017 20:53:20 +0100 Subject: [PATCH 3/5] SubscriptionsStoreTest: classname used for static access --- .../subscriptions/SubscriptionsStoreTest.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java b/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java index a985abe6..ad11a82d 100644 --- a/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java +++ b/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java @@ -53,55 +53,55 @@ public class SubscriptionsStoreTest { @Test public void testParseTopic() throws ParseException { - List tokens = store.parseTopic("finance/stock/ibm"); + List tokens = SubscriptionsStore.parseTopic("finance/stock/ibm"); assertEqualsSeq(asArray("finance", "stock", "ibm"), tokens); - tokens = store.parseTopic("/finance/stock/ibm"); + tokens = SubscriptionsStore.parseTopic("/finance/stock/ibm"); assertEqualsSeq(asArray(Token.EMPTY, "finance", "stock", "ibm"), tokens); - tokens = store.parseTopic("/"); + tokens = SubscriptionsStore.parseTopic("/"); assertEqualsSeq(asArray(Token.EMPTY, Token.EMPTY), tokens); } @Test public void testParseTopicMultiValid() throws ParseException { - List tokens = store.parseTopic("finance/stock/#"); + List tokens = SubscriptionsStore.parseTopic("finance/stock/#"); assertEqualsSeq(asArray("finance", "stock", Token.MULTI), tokens); - tokens = store.parseTopic("#"); + tokens = SubscriptionsStore.parseTopic("#"); assertEqualsSeq(asArray(Token.MULTI), tokens); } @Test(expected = ParseException.class) public void testParseTopicMultiInTheMiddleNotValid() throws ParseException { - store.parseTopic("finance/#/closingprice"); + SubscriptionsStore.parseTopic("finance/#/closingprice"); } @Test(expected = ParseException.class) public void testParseTopicMultiNotAfterSeparatorNotValid() throws ParseException { - store.parseTopic("finance#"); + SubscriptionsStore.parseTopic("finance#"); } @Test(expected = ParseException.class) public void testParseTopicMultiNotAlone() throws ParseException { - store.parseTopic("/finance/#closingprice"); + SubscriptionsStore.parseTopic("/finance/#closingprice"); } @Test public void testParseTopicSingleValid() throws ParseException { - List tokens = store.parseTopic("finance/stock/+"); + List tokens = SubscriptionsStore.parseTopic("finance/stock/+"); assertEqualsSeq(asArray("finance", "stock", Token.SINGLE), tokens); - tokens = store.parseTopic("+"); + tokens = SubscriptionsStore.parseTopic("+"); assertEqualsSeq(asArray(Token.SINGLE), tokens); - tokens = store.parseTopic("finance/+/ibm"); + tokens = SubscriptionsStore.parseTopic("finance/+/ibm"); assertEqualsSeq(asArray("finance", Token.SINGLE, "ibm"), tokens); } @Test(expected = ParseException.class) public void testParseTopicSingleNotAferSeparatorNotValid() throws ParseException { - store.parseTopic("finance+"); + SubscriptionsStore.parseTopic("finance+"); } @Test From c5b7fd52c57cbf4f7c23d98ae50b405858997c45 Mon Sep 17 00:00:00 2001 From: Andreas Mager Date: Thu, 19 Jan 2017 21:34:07 +0100 Subject: [PATCH 4/5] SubscriptionsStoreTest: assertj used for assertions --- .../subscriptions/SubscriptionsStoreTest.java | 165 +++++++++--------- 1 file changed, 80 insertions(+), 85 deletions(-) diff --git a/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java b/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java index ad11a82d..fd24cb96 100644 --- a/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java +++ b/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java @@ -25,10 +25,9 @@ import org.junit.Test; import java.io.IOException; import java.text.ParseException; -import java.util.Arrays; import java.util.List; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; /** * @@ -54,22 +53,22 @@ public class SubscriptionsStoreTest { @Test public void testParseTopic() throws ParseException { List tokens = SubscriptionsStore.parseTopic("finance/stock/ibm"); - assertEqualsSeq(asArray("finance", "stock", "ibm"), tokens); + assertThat(tokens).containsExactly(asArray("finance", "stock", "ibm")); tokens = SubscriptionsStore.parseTopic("/finance/stock/ibm"); - assertEqualsSeq(asArray(Token.EMPTY, "finance", "stock", "ibm"), tokens); + assertThat(tokens).containsExactly(asArray(Token.EMPTY, "finance", "stock", "ibm")); tokens = SubscriptionsStore.parseTopic("/"); - assertEqualsSeq(asArray(Token.EMPTY, Token.EMPTY), tokens); + assertThat(tokens).containsExactly(asArray(Token.EMPTY, Token.EMPTY)); } @Test public void testParseTopicMultiValid() throws ParseException { List tokens = SubscriptionsStore.parseTopic("finance/stock/#"); - assertEqualsSeq(asArray("finance", "stock", Token.MULTI), tokens); + assertThat(tokens).containsExactly(asArray("finance", "stock", Token.MULTI)); tokens = SubscriptionsStore.parseTopic("#"); - assertEqualsSeq(asArray(Token.MULTI), tokens); + assertThat(tokens).containsExactly(asArray(Token.MULTI)); } @Test(expected = ParseException.class) @@ -90,13 +89,13 @@ public class SubscriptionsStoreTest { @Test public void testParseTopicSingleValid() throws ParseException { List tokens = SubscriptionsStore.parseTopic("finance/stock/+"); - assertEqualsSeq(asArray("finance", "stock", Token.SINGLE), tokens); + assertThat(tokens).containsExactly(asArray("finance", "stock", Token.SINGLE)); tokens = SubscriptionsStore.parseTopic("+"); - assertEqualsSeq(asArray(Token.SINGLE), tokens); + assertThat(tokens).containsExactly(asArray(Token.SINGLE)); tokens = SubscriptionsStore.parseTopic("finance/+/ibm"); - assertEqualsSeq(asArray("finance", Token.SINGLE, "ibm"), tokens); + assertThat(tokens).containsExactly(asArray("finance", Token.SINGLE, "ibm")); } @Test(expected = ParseException.class) @@ -109,15 +108,15 @@ public class SubscriptionsStoreTest { Subscription slashSub = new Subscription("FAKE_CLI_ID_1", "/", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(slashSub); store.add(slashSub.asClientTopicCouple()); - assertTrue(store.matches("finance").isEmpty()); + assertThat(store.matches("finance")).isEmpty(); Subscription slashFinanceSub = new Subscription("FAKE_CLI_ID_1", "/finance", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(slashFinanceSub); store.add(slashFinanceSub.asClientTopicCouple()); - assertTrue(store.matches("finance").isEmpty()); + assertThat(store.matches("finance")).isEmpty(); - assertTrue(store.matches("/finance").contains(slashFinanceSub)); - assertTrue(store.matches("/").contains(slashSub)); + assertThat(store.matches("/finance")).contains(slashFinanceSub); + assertThat(store.matches("/")).contains(slashSub); } @Test @@ -125,12 +124,12 @@ public class SubscriptionsStoreTest { Subscription anySub = new Subscription("FAKE_CLI_ID_1", "#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(anySub); store.add(anySub.asClientTopicCouple()); - assertTrue(store.matches("finance").contains(anySub)); + assertThat(store.matches("finance")).contains(anySub); Subscription financeAnySub = new Subscription("FAKE_CLI_ID_2", "finance/#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(financeAnySub); store.add(financeAnySub.asClientTopicCouple()); - assertTrue(store.matches("finance").containsAll(Arrays.asList(financeAnySub, anySub))); + assertThat(store.matches("finance")).containsExactlyInAnyOrder(financeAnySub, anySub); } @Test @@ -143,8 +142,8 @@ public class SubscriptionsStoreTest { store.add(financeAnySub.asClientTopicCouple()); //Verify - assertTrue(store.matches("finance/stock").containsAll(Arrays.asList(financeAnySub, anySub))); - assertTrue(store.matches("finance/stock/ibm").containsAll(Arrays.asList(financeAnySub, anySub))); + assertThat(store.matches("finance/stock")).containsExactlyInAnyOrder(financeAnySub, anySub); + assertThat(store.matches("finance/stock/ibm")).containsExactlyInAnyOrder(financeAnySub, anySub); } @@ -155,7 +154,7 @@ public class SubscriptionsStoreTest { store.add(financeAnySub.asClientTopicCouple()); //Verify - assertTrue(store.matches("finance/stock/ibm").contains(financeAnySub)); + assertThat(store.matches("finance/stock/ibm")).containsExactly(financeAnySub); } @Test @@ -163,12 +162,12 @@ public class SubscriptionsStoreTest { Subscription anySub = new Subscription("FAKE_CLI_ID_1", "+", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(anySub); store.add(anySub.asClientTopicCouple()); - assertTrue(store.matches("finance").contains(anySub)); + assertThat(store.matches("finance")).containsExactly(anySub); Subscription financeOne = new Subscription("FAKE_CLI_ID_1", "finance/+", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(financeOne); store.add(financeOne.asClientTopicCouple()); - assertTrue(store.matches("finance/stock").contains(financeOne)); + assertThat(store.matches("finance/stock")).containsExactly(financeOne); } @Test @@ -178,7 +177,7 @@ public class SubscriptionsStoreTest { store.add(manySub.asClientTopicCouple()); //verify - assertTrue(store.matches("/finance").contains(manySub)); + assertThat(store.matches("/finance")).contains(manySub); } @@ -192,9 +191,8 @@ public class SubscriptionsStoreTest { store.add(anySub.asClientTopicCouple()); //Verify - assertEquals(1, store.matches("/finance").size()); - assertTrue(store.matches("/finance").contains(slashPlusSub)); - assertFalse(store.matches("/finance").contains(anySub)); + assertThat(store.matches("/finance")).containsOnly(slashPlusSub); + assertThat(store.matches("/finance")).doesNotContain(anySub); } @@ -209,7 +207,7 @@ public class SubscriptionsStoreTest { store.add(slashPlusDeepSub.asClientTopicCouple()); //Verify - assertTrue(store.matches("/finance/stock/ibm").containsAll(Arrays.asList(slashPlusSub, slashPlusDeepSub))); + assertThat(store.matches("/finance/stock/ibm")).containsExactly(slashPlusSub, slashPlusDeepSub); } @Test @@ -217,8 +215,8 @@ public class SubscriptionsStoreTest { Subscription sub = new Subscription("FAKE_CLI_ID_1", "#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(sub); store.add(sub.asClientTopicCouple()); - assertFalse(store.matches("finance").isEmpty()); - assertFalse(store.matches("finance/ibm").isEmpty()); + assertThat(store.matches("finance")).isNotEmpty(); + assertThat(store.matches("finance/ibm")).isNotEmpty(); } @Test @@ -227,7 +225,7 @@ public class SubscriptionsStoreTest { Subscription sub = new Subscription("FAKE_CLI_ID_1", "finance/#", MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(sub); store.add(sub.asClientTopicCouple()); - assertFalse(store.matches("finance").isEmpty()); + assertThat(store.matches("finance")).isNotEmpty(); } @Test @@ -263,7 +261,7 @@ public class SubscriptionsStoreTest { Subscription sub = new Subscription("FAKE_CLI_ID_1", subscription, MqttQoS.AT_MOST_ONCE); aSessionsStore.addNewSubscription(sub); store.add(sub.asClientTopicCouple()); - assertFalse(store.matches(topic).isEmpty()); + assertThat(store.matches(topic)).isNotEmpty(); } private void assertNotMatch(String subscription, String topic) { @@ -274,7 +272,7 @@ public class SubscriptionsStoreTest { Subscription sub = new Subscription("FAKE_CLI_ID_1", subscription, MqttQoS.AT_MOST_ONCE); sessionsStore.addNewSubscription(sub); store.add(sub.asClientTopicCouple()); - assertTrue(store.matches(topic).isEmpty()); + assertThat(store.matches(topic)).isEmpty(); } @@ -289,7 +287,7 @@ public class SubscriptionsStoreTest { store.removeForClient(cliendID); //Verify - assertEquals(0, store.size()); + assertThat(store.size()).isZero(); } @Test @@ -303,7 +301,7 @@ public class SubscriptionsStoreTest { store.removeForClient("FAKE_CLID_2"); //Verify - assertEquals(1, store.size()); + assertThat(store.size()).isEqualTo(1); } @Test @@ -316,59 +314,59 @@ public class SubscriptionsStoreTest { store.add(specificSub.asClientTopicCouple()); //Verify - assertEquals(1, store.matches("a/b").size()); + assertThat(store.matches("a/b").size()).isEqualTo(1); } @Test public void testMatchTopics_simple() { - assertTrue(SubscriptionsStore.matchTopics("/", "/")); - assertTrue(SubscriptionsStore.matchTopics("/finance", "/finance")); + assertThat(SubscriptionsStore.matchTopics("/", "/")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("/finance", "/finance")).isTrue(); } @Test public void testMatchTopics_multi() { - assertTrue(SubscriptionsStore.matchTopics("finance", "#")); - assertTrue(SubscriptionsStore.matchTopics("finance", "finance/#")); - assertTrue(SubscriptionsStore.matchTopics("finance/stock", "finance/#")); - assertTrue(SubscriptionsStore.matchTopics("finance/stock/ibm", "finance/#")); + assertThat(SubscriptionsStore.matchTopics("finance", "#")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("finance", "finance/#")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("finance/stock", "finance/#")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("finance/stock/ibm", "finance/#")).isTrue(); } @Test public void testMatchTopics_single() { - assertTrue(SubscriptionsStore.matchTopics("finance", "+")); - assertTrue(SubscriptionsStore.matchTopics("finance/stock", "finance/+")); - assertFalse(SubscriptionsStore.matchTopics("finance", "finance/+")); - assertTrue(SubscriptionsStore.matchTopics("/finance", "/+")); - assertFalse(SubscriptionsStore.matchTopics("/finance", "+")); - assertTrue(SubscriptionsStore.matchTopics("/finance", "+/+")); - assertTrue(SubscriptionsStore.matchTopics("/finance/stock/ibm", "/finance/+/ibm")); - assertTrue(SubscriptionsStore.matchTopics("/", "+/+")); - assertTrue(SubscriptionsStore.matchTopics("sport/", "sport/+")); - assertFalse(SubscriptionsStore.matchTopics("/finance/stock", "+")); + assertThat(SubscriptionsStore.matchTopics("finance", "+")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("finance/stock", "finance/+")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("finance", "finance/+")).isFalse(); + assertThat(SubscriptionsStore.matchTopics("/finance", "/+")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("/finance", "+")).isFalse(); + assertThat(SubscriptionsStore.matchTopics("/finance", "+/+")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("/finance/stock/ibm", "/finance/+/ibm")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("/", "+/+")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("sport/", "sport/+")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("/finance/stock", "+")).isFalse(); } @Test public void rogerLightMatchTopics() { - assertTrue(SubscriptionsStore.matchTopics("foo/bar", "foo/bar")); - assertTrue(SubscriptionsStore.matchTopics("foo/bar", "foo/+")); - assertTrue(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+/baz")); - assertTrue(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+/#")); - assertTrue(SubscriptionsStore.matchTopics("foo/bar/baz", "#")); + assertThat(SubscriptionsStore.matchTopics("foo/bar", "foo/bar")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("foo/bar", "foo/+")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+/baz")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+/#")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("foo/bar/baz", "#")).isTrue(); - assertFalse(SubscriptionsStore.matchTopics("foo", "foo/bar")); - assertFalse(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+")); - assertFalse(SubscriptionsStore.matchTopics("foo/bar/bar", "foo/+/baz")); - assertFalse(SubscriptionsStore.matchTopics("fo2/bar/baz", "foo/+/#")); + assertThat(SubscriptionsStore.matchTopics("foo", "foo/bar")).isFalse(); + assertThat(SubscriptionsStore.matchTopics("foo/bar/baz", "foo/+")).isFalse(); + assertThat(SubscriptionsStore.matchTopics("foo/bar/bar", "foo/+/baz")).isFalse(); + assertThat(SubscriptionsStore.matchTopics("fo2/bar/baz", "foo/+/#")).isFalse(); - assertTrue(SubscriptionsStore.matchTopics("/foo/bar", "#")); - assertTrue(SubscriptionsStore.matchTopics("/foo/bar", "/#")); - assertFalse(SubscriptionsStore.matchTopics("foo/bar", "/#")); + assertThat(SubscriptionsStore.matchTopics("/foo/bar", "#")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("/foo/bar", "/#")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("foo/bar", "/#")).isFalse(); - assertTrue(SubscriptionsStore.matchTopics("foo//bar", "foo//bar")); - assertTrue(SubscriptionsStore.matchTopics("foo//bar", "foo//+")); - assertTrue(SubscriptionsStore.matchTopics("foo///baz", "foo/+/+/baz")); - assertTrue(SubscriptionsStore.matchTopics("foo/bar/", "foo/bar/+")); + assertThat(SubscriptionsStore.matchTopics("foo//bar", "foo//bar")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("foo//bar", "foo//+")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("foo///baz", "foo/+/+/baz")).isTrue(); + assertThat(SubscriptionsStore.matchTopics("foo/bar/", "foo/bar/+")).isTrue(); } @Test @@ -394,7 +392,7 @@ public class SubscriptionsStoreTest { //Verify Subscription remainedSubscription = aStore.matches("/topic").get(0); - assertEquals(slashSub.getClientId(), remainedSubscription.getClientId()); + assertThat(remainedSubscription.getClientId()).isEqualTo(slashSub.getClientId()); } /* @@ -419,12 +417,14 @@ public class SubscriptionsStoreTest { //Verify List subscriptions = store.matches("client/test/b"); - assertTrue(subscriptions.contains(client1SubQoS2)); - assertTrue(subscriptions.contains(client2Sub)); + assertThat(subscriptions).contains(client1SubQoS2); + assertThat(subscriptions).contains(client2Sub); Subscription client1Sub = subscriptions.get(subscriptions.indexOf(client1SubQoS0)); - assertFalse(client1SubQoS0.getRequestedQos().equals(client1Sub.getRequestedQos())); - assertEquals(client1SubQoS2.getRequestedQos(), client1Sub.getRequestedQos()); //client1SubQoS2 should override client1SubQoS0 + assertThat(client1SubQoS0.getRequestedQos()).isNotEqualTo(client1Sub.getRequestedQos()); + + //client1SubQoS2 should override client1SubQoS0 + assertThat(client1Sub.getRequestedQos()).isEqualTo(client1SubQoS2.getRequestedQos()); } @Test @@ -433,10 +433,10 @@ public class SubscriptionsStoreTest { final SubscriptionsStore.NodeCouple resp = store.recreatePath("/finance", oldRoot); //Verify - assertNotNull(resp.root); - assertNull(resp.root.m_token); - assertEquals(1, resp.root.m_children.size()); - assertEquals(resp.createdNode, resp.root.m_children.get(0).m_children.get(0)); + assertThat(resp.root).isNotNull(); + assertThat(resp.root.m_token).isNull(); + assertThat(resp.root.m_children).hasSize(1); + assertThat(resp.root.m_children.get(0).m_children).contains(resp.createdNode); } @Test @@ -446,11 +446,11 @@ public class SubscriptionsStoreTest { final SubscriptionsStore.NodeCouple respPlus = store.recreatePath("/+", respFinance.root); //Verify - assertNotNull(respPlus.root); - assertNull(respPlus.root.m_token); - assertEquals(1, respPlus.root.m_children.size()); - assertTrue(respPlus.root.m_children.get(0).m_children.contains(respPlus.createdNode)); - assertTrue(respPlus.root.m_children.get(0).m_children.contains(respFinance.createdNode)); + assertThat(respPlus.root).isNotNull(); + assertThat(respPlus.root.m_token).isNull(); + assertThat(respPlus.root.m_children.size()).isEqualTo(1); + assertThat(respPlus.root.m_children.get(0).m_children).contains(respPlus.createdNode); + assertThat(respPlus.root.m_children.get(0).m_children).contains(respFinance.createdNode); } private static Token[] asArray(Object... l) { @@ -466,9 +466,4 @@ public class SubscriptionsStoreTest { return tokens; } - - private void assertEqualsSeq(Token[] exptected, List result) { - List expectedList = Arrays.asList(exptected); - assertEquals(expectedList, result); - } } From f25af642b0989ee9a5adf39be87602dd3b9c8b3e Mon Sep 17 00:00:00 2001 From: Andreas Mager Date: Thu, 19 Jan 2017 21:55:01 +0100 Subject: [PATCH 5/5] SubscriptionsStoreTest: containsExactlyInAnyOrder used for matches --- .../subscriptions/SubscriptionsStoreTest.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java b/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java index fd24cb96..6e689709 100644 --- a/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java +++ b/broker/src/test/java/io/moquette/spi/impl/subscriptions/SubscriptionsStoreTest.java @@ -53,22 +53,22 @@ public class SubscriptionsStoreTest { @Test public void testParseTopic() throws ParseException { List tokens = SubscriptionsStore.parseTopic("finance/stock/ibm"); - assertThat(tokens).containsExactly(asArray("finance", "stock", "ibm")); + assertThat(tokens).containsExactlyInAnyOrder(asArray("finance", "stock", "ibm")); tokens = SubscriptionsStore.parseTopic("/finance/stock/ibm"); - assertThat(tokens).containsExactly(asArray(Token.EMPTY, "finance", "stock", "ibm")); + assertThat(tokens).containsExactlyInAnyOrder(asArray(Token.EMPTY, "finance", "stock", "ibm")); tokens = SubscriptionsStore.parseTopic("/"); - assertThat(tokens).containsExactly(asArray(Token.EMPTY, Token.EMPTY)); + assertThat(tokens).containsExactlyInAnyOrder(asArray(Token.EMPTY, Token.EMPTY)); } @Test public void testParseTopicMultiValid() throws ParseException { List tokens = SubscriptionsStore.parseTopic("finance/stock/#"); - assertThat(tokens).containsExactly(asArray("finance", "stock", Token.MULTI)); + assertThat(tokens).containsExactlyInAnyOrder(asArray("finance", "stock", Token.MULTI)); tokens = SubscriptionsStore.parseTopic("#"); - assertThat(tokens).containsExactly(asArray(Token.MULTI)); + assertThat(tokens).containsExactlyInAnyOrder(asArray(Token.MULTI)); } @Test(expected = ParseException.class) @@ -89,13 +89,13 @@ public class SubscriptionsStoreTest { @Test public void testParseTopicSingleValid() throws ParseException { List tokens = SubscriptionsStore.parseTopic("finance/stock/+"); - assertThat(tokens).containsExactly(asArray("finance", "stock", Token.SINGLE)); + assertThat(tokens).containsExactlyInAnyOrder(asArray("finance", "stock", Token.SINGLE)); tokens = SubscriptionsStore.parseTopic("+"); - assertThat(tokens).containsExactly(asArray(Token.SINGLE)); + assertThat(tokens).containsExactlyInAnyOrder(asArray(Token.SINGLE)); tokens = SubscriptionsStore.parseTopic("finance/+/ibm"); - assertThat(tokens).containsExactly(asArray("finance", Token.SINGLE, "ibm")); + assertThat(tokens).containsExactlyInAnyOrder(asArray("finance", Token.SINGLE, "ibm")); } @Test(expected = ParseException.class) @@ -207,7 +207,7 @@ public class SubscriptionsStoreTest { store.add(slashPlusDeepSub.asClientTopicCouple()); //Verify - assertThat(store.matches("/finance/stock/ibm")).containsExactly(slashPlusSub, slashPlusDeepSub); + assertThat(store.matches("/finance/stock/ibm")).containsExactlyInAnyOrder(slashPlusSub, slashPlusDeepSub); } @Test