### Question:
DestinationActionPermissionResolver implements ActionPermissionResolver { protected String createPermissionString(ActiveMQDestination dest, String verb) { if (dest.isComposite()) { throw new IllegalArgumentException("Use createPermissionStrings for composite destinations."); } StringBuilder sb = new StringBuilder(); if (permissionStringPrefix != null) { sb.append(permissionStringPrefix); if (!permissionStringPrefix.endsWith(":")) { sb.append(":"); } } if (dest.isTemporary()) { sb.append("temp-"); } if (dest.isTopic()) { sb.append("topic:"); } else { sb.append("queue:"); } sb.append(dest.getPhysicalName()); sb.append(':'); sb.append(verb); return sb.toString(); }  String getPermissionStringPrefix(); void setPermissionStringPrefix(String permissionStringPrefix); boolean isPermissionStringCaseSensitive(); void setPermissionStringCaseSensitive(boolean permissionStringCaseSensitive); @Override Collection<Permission> getPermissions(Action action);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testCreatePermissionStringWithCompositeDestination() { ActiveMQTopic topicA = new ActiveMQTopic("A"); ActiveMQTopic topicB = new ActiveMQTopic("B"); ActiveMQDestination composite = new AnyDestination(new ActiveMQDestination[]{topicA, topicB}); resolver.createPermissionString(composite, "read"); }