### Question:
ProcedureQuery extends AbstractQuery implements ParameterizedQuery { public Query createQuery(Map<String, ?> parameters) { ProcedureQuery query = new ProcedureQuery(); if (root != null) { query.setRoot(root); } query.setResultEntityName(resultEntityName); query.metaData.copyFromInfo(this.metaData); query.setParameters(parameters); return query; } ProcedureQuery();  ProcedureQuery(Procedure procedure);  ProcedureQuery(String procedureName);  ProcedureQuery(Procedure procedure, Class<?> resultType);  ProcedureQuery(String procedureName, Class<?> resultType); @Override QueryMetadata getMetaData(EntityResolver resolver); List<ColumnDescriptor[]> getResultDescriptors(); synchronized void addResultDescriptor(ColumnDescriptor[] descriptor); void removeResultDescriptor(ColumnDescriptor[] descriptor); @Override SQLAction createSQLAction(SQLActionVisitor visitor); void initWithProperties(Map<String, ?> properties); Query createQuery(Map<String, ?> parameters); int getFetchLimit(); void setFetchLimit(int fetchLimit); int getFetchOffset(); void setFetchOffset(int fetchOffset); int getPageSize(); void setPageSize(int pageSize); void setFetchingDataRows(boolean flag); boolean isFetchingDataRows(); synchronized void addParameter(String name, Object value); synchronized void removeParameter(String name); Map<String, ?> getParameters(); synchronized void setParameters(Map<String, ?> parameters); synchronized void clearParameters(); PrefetchTreeNode getPrefetchTree(); PrefetchTreeNode addPrefetch(String prefetchPath); void removePrefetch(String prefetch); void addPrefetches(Collection<String> prefetches); void clearPrefetches(); String getResultEntityName(); void setResultEntityName(String resultEntityName); CapsStrategy getColumnNamesCapitalization(); void setColumnNamesCapitalization(CapsStrategy columnNameCapitalization); void setStatementFetchSize(int size); int getStatementFetchSize(); int getQueryTimeout(); void setQueryTimeout(int timeout); static final String COLUMN_NAME_CAPITALIZATION_PROPERTY; }### Answer:
@Test public void testCreateQuery() { ProcedureQuery template = new ProcedureQuery(); Query clone = template.createQuery(Collections.EMPTY_MAP); assertTrue(clone instanceof ProcedureQuery); assertNotSame(template, clone); }