@Test
  public void testCreateQueryWithSortDesc() throws NoSuchMethodException, SecurityException {
    Method method =
        SampleRepository.class.getMethod("findByPopularityOrderByTitleDesc", Integer.class);

    Query query = createQueryForMethodWithArgs(method, new Object[] {1});
    Assert.assertNotNull(query.getSort());
    Assert.assertEquals(Sort.Direction.DESC, query.getSort().getOrderFor("title").getDirection());
  }
 private void processQueryOptions(SolrQuery solrQuery, Query query) {
   appendPagination(solrQuery, query.getPageRequest());
   appendProjectionOnFields(solrQuery, query.getProjectionOnFields());
   appendGroupByFields(solrQuery, query.getGroupByFields());
   appendFilterQuery(solrQuery, query.getFilterQueries());
   appendSort(solrQuery, query.getSort());
   appendDefaultOperator(solrQuery, query.getDefaultOperator());
   appendTimeAllowed(solrQuery, query.getTimeAllowed());
   appendDefType(solrQuery, query.getDefType());
   appendRequestHandler(solrQuery, query.getRequestHandler());
 }
  @Test
  public void testWithSort() throws NoSuchMethodException, SecurityException {
    Method method =
        SampleRepository.class.getMethod("findByNameWithSort", String.class, Sort.class);
    SolrQueryMethod queryMethod =
        new SolrQueryMethod(method, metadataMock, entityInformationCreatorMock);

    StringBasedSolrQuery solrQuery = new StringBasedSolrQuery(queryMethod, solrOperationsMock);
    Sort sort = new Sort(Direction.DESC, "popularity", "price");

    org.springframework.data.solr.core.query.Query query =
        solrQuery.createQuery(
            new SolrParametersParameterAccessor(queryMethod, new Object[] {"spring", sort}));

    Assert.assertEquals("name:spring", queryParser.getQueryString(query));
    Assert.assertEquals(sort, query.getSort());
  }