public void testGetQueryPrefix() {

    try {

      StringSearchFacet.SubClause testClause =
          testInstance
          .new SubClause("dummy value here", StringSearchFacet.SearchTarget.TEXT, true, true);

      // no field returns no prefix

      assertEquals("", testClause.getQueryPrefix(StringSearchFacet.SearchHandler.DEFAULT, null));

      // REGEXP search handler returns appropriately formatted prefix
      assertEquals(
          "{!regexp cache=false qf=\"untokenized_ia\"}",
          testClause.getQueryPrefix(
              StringSearchFacet.SearchHandler.REGEXP, SolrField.untokenized_ia));

      // SURROUND search handler returns appropriately formatted  prefix
      assertEquals(
          "{!surround cache=false}transcription_ic:",
          testClause.getQueryPrefix(
              StringSearchFacet.SearchHandler.SURROUND, SolrField.transcription_ic));

      // DEFAULT search handler simply returns field name followed by colon
      assertEquals(
          "transcription_ngram_ia:",
          testClause.getQueryPrefix(
              StringSearchFacet.SearchHandler.DEFAULT, SolrField.transcription_ngram_ia));

    } catch (StringSearchParsingException sspe) {

      fail(
          "StringSearchParsingException erroneously thrown on getQueryPrefix test: "
              + sspe.getMessage());

    } catch (Exception e) {

      fail("Exception erroneously thrown in getQueryPrefix test:" + e.getMessage());
    }
  }