public List<QueuePath> getWildcardedQueuePaths(int maxAutoCreatedQueueDepth) {
    List<QueuePath> wildcardedPaths = new ArrayList<>();
    // Start with the most explicit format (without wildcard)
    wildcardedPaths.add(this);

    String[] pathComponents = getPathComponents();
    int supportedWildcardLevel = getSupportedWildcardLevel(maxAutoCreatedQueueDepth);

    // Collect all template entries
    for (int wildcardLevel = 1; wildcardLevel <= supportedWildcardLevel; wildcardLevel++) {
      int wildcardedComponentIndex = pathComponents.length - wildcardLevel;
      pathComponents[wildcardedComponentIndex] = WILDCARD_QUEUE;
      QueuePath wildcardedPath = createFromQueues(pathComponents);
      wildcardedPaths.add(wildcardedPath);
    }

    return wildcardedPaths;
  }
@Test
  public void testWildcardedQueuePathsWithOneLevelWildCard() {
    int maxAutoCreatedQueueDepth = 1;

    List<QueuePath> expectedPaths = new ArrayList<>();
    expectedPaths.add(TEST_QUEUE_PATH);
    expectedPaths.add(ONE_LEVEL_WILDCARDED_TEST_PATH);

    List<QueuePath> wildcardedPaths = TEST_QUEUE_PATH
        .getWildcardedQueuePaths(maxAutoCreatedQueueDepth);

    Assert.assertEquals(expectedPaths, wildcardedPaths);
  }