@Test
public void testGet() {

   MessageGroups<String> messageGroups = new BucketMessageGroups<>(2);
   assertNull(messageGroups.get(toGroupBucketIntKey(1)));
   messageGroups.put(toGroupBucketIntKey(1), "world");
   assertEquals("world", messageGroups.get(toGroupBucketIntKey(1)));
   messageGroups.put(toGroupBucketIntKey(2), "world2");
   assertEquals("world2", messageGroups.get(toGroupBucketIntKey(2)));
   //This as we have 2 buckets, and key 3 will has mod into the same bucket as key 1, overwriting its value.
   messageGroups.put(toGroupBucketIntKey(3), "world3");
   assertEquals("world3", messageGroups.get(toGroupBucketIntKey(3)));
   //Ensure that on calling get for key 1, will return same value as key 3 now.
   assertEquals("world3", messageGroups.get(toGroupBucketIntKey(1)));
   //Ensure that negative hash's are made positive and bucket onto the expected bucket groups.
   assertEquals("world3", messageGroups.get(toGroupBucketIntKey(-1)));
   //Ensure that negative hash's are made positive and bucket onto the expected bucket groups.
   assertEquals("world2", messageGroups.get(toGroupBucketIntKey(-2)));
}