diff options
| author | Robert Gemmell <robbie@apache.org> | 2012-07-08 15:29:04 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2012-07-08 15:29:04 +0000 |
| commit | 16a59fad4a73a52505cfb6ebe4ed2f6bf86f7e2c (patch) | |
| tree | 56783953077bcef98f76643fc0231138834f1ac1 /qpid/java/broker/src/test | |
| parent | 961d36e600fab24b35c6920481a55f8d022f9c85 (diff) | |
| download | qpid-python-16a59fad4a73a52505cfb6ebe4ed2f6bf86f7e2c.tar.gz | |
QPID-3923, QPID-3998: update the Adapter layer to either use UUIDGenerator itself, or use the ID directly from the entity being adapted
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1358758 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src/test')
| -rw-r--r-- | qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java | 188 |
1 files changed, 145 insertions, 43 deletions
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java index e99ac1f063..643132d371 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/UUIDGeneratorTest.java @@ -20,6 +20,8 @@ */ package org.apache.qpid.server.model; +import java.util.HashSet; +import java.util.Set; import java.util.UUID; import org.apache.qpid.test.utils.QpidTestCase; @@ -28,84 +30,184 @@ public class UUIDGeneratorTest extends QpidTestCase { private static final String VIRTUAL_HOST_NAME_1 = "virtualHost1"; private static final String VIRTUAL_HOST_NAME_2 = "virtualHost2"; + private static final String VHOST_ALIAS_1 = "alias1"; + private static final String VHOST_ALIAS_2 = "alias2"; private static final String QUEUE_NAME_1 = "queue1"; private static final String QUEUE_NAME_2 = "queue2"; private static final String EXCHANGE_NAME_1 = "exchange1"; private static final String EXCHANGE_NAME_2 = "exchange2"; private static final String BINDING_KEY_1 = "bindingKey1"; private static final String BINDING_KEY_2 = "bindingKey2"; + private static final String PORT_1 = "port1"; + private static final String PORT_2 = "port2"; + private static final String CONN_REMOTE_ADDR_1 = "localhost:1234"; + private static final String CONN_REMOTE_ADDR_2 = "localhost:5678"; + private static final String CHANNEL_NUMBER_1 = "1"; + private static final String CHANNEL_NUMBER_2 = "2"; + private static final String CONSUMER_NAME_1 = "consumer1"; + private static final String CONSUMER_NAME_2 = "consumer2"; + private static final String PROVIDER_1 = "provider1"; + private static final String PROVIDER_2 = "provider2"; + private static final String USER_1 = "user1"; + private static final String USER_2 = "user2"; public void testDifferentObjectTypeReturnDifferentIdFromSameValues() throws Exception { - UUID id1 = UUIDGenerator.generateQueueUUID("name", "vhost"); - UUID id2 = UUIDGenerator.generateExchangeUUID("name", "vhost"); - UUID id3 = UUIDGenerator.generateBindingUUID("name", "name", "name", "vhost"); + String value = "name"; + Set<UUID> idSet = new HashSet<UUID>(); - assertFalse("IDs should not be equal", id1.equals(id2)); - assertFalse("IDs should not be equal", id2.equals(id3)); - assertFalse("IDs should not be equal", id1.equals(id3)); - } + UUID id1 = UUIDGenerator.generateQueueUUID(value, value); + idSet.add(id1); + UUID id2 = UUIDGenerator.generateExchangeUUID(value, value); + idSet.add(id2); + UUID id3 = UUIDGenerator.generateBindingUUID(value, value, value, value); + idSet.add(id3); + UUID id4 = UUIDGenerator.generateConsumerUUID(value, value, value, value, value); + idSet.add(id4); + UUID id5 = UUIDGenerator.generateUserUUID(value, value); + idSet.add(id5); + UUID id6 = UUIDGenerator.generateVhostUUID(value); + idSet.add(id6); + UUID id7 = UUIDGenerator.generateVhostAliasUUID(value, value); + idSet.add(id7); - public void testRepeatedQueueIdGenerationIsDeterministic() throws Exception - { - UUID queueIdIteration1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID queueIdIteration2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); - assertEquals("Queue IDs should be equal", queueIdIteration1, queueIdIteration2); + assertEquals("The produced UUIDs were not all unique", 7, idSet.size()); } - public void testRepeatedExchangeIdGenerationIsDeterministic() throws Exception + public void testQueueIdGeneration() throws Exception { - UUID exchangeIdIteration1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID exchangeIdIteration2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); - assertEquals("Exchange IDs should be equal", exchangeIdIteration1, exchangeIdIteration2); - } + //check repeated generation is deterministic + UUID queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); + UUID queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); + assertEquals("Queue IDs should be equal", queue1, queue2); - public void testRepeatedBindingIdGenerationIsDeterministic() throws Exception - { - UUID bindingIdIteration1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); - UUID bindingIdIteration2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); - assertEquals("Binding IDs should be equal", bindingIdIteration1, bindingIdIteration2); - } + //check different name gives different ID + queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); + queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_2, VIRTUAL_HOST_NAME_1); + assertFalse("Queue IDs should not be equal", queue1.equals(queue2)); - public void testDifferentQueueNameGivesDifferentQueueId() throws Exception - { - UUID queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_2, VIRTUAL_HOST_NAME_1); + //check different vhost name gives different ID + queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); + queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_2); assertFalse("Queue IDs should not be equal", queue1.equals(queue2)); } - public void testDifferentExchangeNameGivesDifferentExchangeId() throws Exception + public void testExchangeIdGeneration() throws Exception { + //check repeated generation is deterministic UUID exchange1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_2, VIRTUAL_HOST_NAME_1); + UUID exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); + assertEquals("Exchange IDs should be equal", exchange1, exchange2); + + //check different name gives different ID + exchange1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); + exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_2, VIRTUAL_HOST_NAME_1); + assertFalse("Exchange IDs should not be equal", exchange1.equals(exchange2)); + + //check different vhost name gives different ID + exchange1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); + exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_2); assertFalse("Exchange IDs should not be equal", exchange1.equals(exchange2)); } - public void testDifferentBindingNameGivesDifferentBindingId() throws Exception + public void testBindingIdGeneration() throws Exception { + //check repeated generation is deterministic UUID binding1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); - UUID binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_2, VIRTUAL_HOST_NAME_1); + UUID binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); + assertEquals("Binding IDs should be equal", binding1, binding2); + + //check different name gives different ID + binding1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); + binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_2, VIRTUAL_HOST_NAME_1); + assertFalse("Binding IDs should not be equal", binding1.equals(binding2)); + + //check different vhost name gives different ID + binding1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); + binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_2); assertFalse("Binding IDs should not be equal", binding1.equals(binding2)); } - public void testDifferentVirtualHostNameGivesDifferentQueueId() throws Exception + public void testVhostIdGeneration() throws Exception { - UUID queue1 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID queue2 = UUIDGenerator.generateQueueUUID(QUEUE_NAME_1, VIRTUAL_HOST_NAME_2); - assertFalse("Queue IDs should not be equal", queue1.equals(queue2)); + //check repeated generation is deterministic + UUID vhost1 = UUIDGenerator.generateVhostUUID(VIRTUAL_HOST_NAME_1); + UUID vhost2 = UUIDGenerator.generateVhostUUID(VIRTUAL_HOST_NAME_1); + assertTrue("Virtualhost IDs should be equal", vhost1.equals(vhost2)); + + //check different vhost name gives different ID + vhost1 = UUIDGenerator.generateVhostUUID(VIRTUAL_HOST_NAME_1); + vhost2 = UUIDGenerator.generateVhostUUID(VIRTUAL_HOST_NAME_2); + assertFalse("Virtualhost IDs should not be equal", vhost1.equals(vhost2)); } - public void testDifferentVirtualHostNameGivesDifferentExchangeId() throws Exception + public void testVhostAliasIdGeneration() throws Exception { - UUID exchange1 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_1); - UUID exchange2 = UUIDGenerator.generateExchangeUUID(EXCHANGE_NAME_1, VIRTUAL_HOST_NAME_2); - assertFalse("Exchange IDs should not be equal", exchange1.equals(exchange2)); + //check repeated generation is deterministic + UUID alias1 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_1); + UUID alias2 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_1); + assertTrue("Virtualhost Alias IDs should be equal", alias1.equals(alias2)); + + //check different port name gives different ID + alias1 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_1); + alias2 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_2, PORT_1); + assertFalse("Virtualhost Alias IDs should not be equal", alias1.equals(alias2)); + + //check different alias name gives different ID + alias1 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_1); + alias2 = UUIDGenerator.generateVhostAliasUUID(VHOST_ALIAS_1, PORT_2); + assertFalse("Virtualhost Alias IDs should not be equal", alias1.equals(alias2)); } - public void testDifferentVirtualHostNameGivesDifferentBindingId() throws Exception + public void testConsumerIdGeneration() throws Exception { - UUID binding1 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_1); - UUID binding2 = UUIDGenerator.generateBindingUUID(EXCHANGE_NAME_1, QUEUE_NAME_1, BINDING_KEY_1, VIRTUAL_HOST_NAME_2); - assertFalse("Binding IDs should not be equal", binding1.equals(binding2)); + //check repeated generation is deterministic + UUID consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + UUID consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + assertTrue("Consumer IDs should be equal", consumer1.equals(consumer2)); + + //check different name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_2); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + + //check different vhost name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_2, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + + //check different consumer name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_2, CONSUMER_NAME_1); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + + //check different address name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_2, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + + //check different queue name gives different ID + consumer1 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_1, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + consumer2 = UUIDGenerator.generateConsumerUUID(VIRTUAL_HOST_NAME_1, QUEUE_NAME_2, CONN_REMOTE_ADDR_1, CHANNEL_NUMBER_1, CONSUMER_NAME_1); + assertFalse("Consumer IDs should not be equal", consumer1.equals(consumer2)); + } + + public void testUserIdGeneration() throws Exception + { + //check repeated generation is deterministic + UUID user1 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_1); + UUID user2 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_1); + assertTrue("User IDs should be equal", user1.equals(user2)); + + //check different name gives different ID + user1 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_1); + user2 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_2); + assertFalse("User IDs should not be equal", user1.equals(user2)); + + //check different provider gives different ID + user1 = UUIDGenerator.generateUserUUID(PROVIDER_1, USER_1); + user2 = UUIDGenerator.generateUserUUID(PROVIDER_2, USER_1); + assertFalse("User IDs should not be equal", user1.equals(user2)); } + } |
