Author: ssmiweve
Date: 2008-11-20 19:47:04 +0100 (Thu, 20 Nov 2008)
New Revision: 6965

Modified:
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/OverturePPCSearchCommandTest.java
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PicSearchCommandTest.java
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PlatefoodPPCSearchCommandTest.java
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PropertiesSearchCommandTest.java
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/SolrSearchCommandTest.java
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooIdpSearchCommandTest.java
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooMediaSearchCommandTest.java
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooWebSearchCommandTest.java
   
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YoutubeSearchCommandTest.java
   
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/querybuilder/BaseFilterBuilder.java
Log:
PicSearchCommand site filter from query was not working.
All non-fast commands now have appropriate tests.


Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/OverturePPCSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/OverturePPCSearchCommandTest.java
     2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/OverturePPCSearchCommandTest.java
     2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se");
-        executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se");
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
     }
 
     /**
@@ -98,7 +107,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private AbstractYahooSearchCommand executeTestOfQuery(
             final String query,
             final String wantedQuery,
             final String wantedFilter)  throws 
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
wantedQuery, generatedQuery.trim());
         assertEquals("Generated filter does not match wanter filter", 
wantedFilter, cmd.getFilter());
+        return cmd;
     }
 }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PicSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PicSearchCommandTest.java
     2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PicSearchCommandTest.java
     2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,18 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se");
-        executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se");
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
+
     }
 
     /**
@@ -98,7 +108,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private PicSearchCommand executeTestOfQuery(
             final String query,
             final String wantedQuery,
             final String wantedFilter)  throws 
SiteKeyedFactoryInstantiationException{
@@ -113,5 +123,6 @@
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
wantedQuery, generatedQuery.trim());
         assertEquals("Generated filter does not match wanter filter", 
wantedFilter, cmd.getFilter());
+        return cmd;
     }
 }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PlatefoodPPCSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PlatefoodPPCSearchCommandTest.java
    2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PlatefoodPPCSearchCommandTest.java
    2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,15 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se");
-        executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se");
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",executeTestOfQuery("site:aftonbladet.se 
banan", "banan", "+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",executeTestOfQuery("banan 
site:aftonbladet.se", "banan", "+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
     }
 
     /**
@@ -98,7 +105,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private AbstractYahooSearchCommand executeTestOfQuery(
             final String query,
             final String wantedQuery,
             final String wantedFilter)  throws 
SiteKeyedFactoryInstantiationException{
@@ -113,5 +120,6 @@
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
wantedQuery, generatedQuery.trim());
         assertEquals("Generated filter does not match wanter filter", 
wantedFilter, cmd.getFilter());
+        return cmd;
     }
 }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PropertiesSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PropertiesSearchCommandTest.java
      2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/PropertiesSearchCommandTest.java
      2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan");
-        executeTestOfQuery("banan site:aftonbladet.se");
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("site:aftonbladet.se banan")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("banan site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
     }
 
     /**
@@ -98,7 +107,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private PropertiesCommand executeTestOfQuery(
             final String query)  throws SiteKeyedFactoryInstantiationException{
 
         final SearchTab fakeTab = new SearchTab(null, "fake-view", 
"default-mode", "test", null, null, true,
@@ -110,5 +119,6 @@
         final PropertiesCommand cmd = new PropertiesCommand(cxt);
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
query.toLowerCase(), generatedQuery.trim());
+        return cmd;
     }
 }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/SolrSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/SolrSearchCommandTest.java
    2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/SolrSearchCommandTest.java
    2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan", "site\\:aftonbladet.se 
 banan", "");
-        executeTestOfQuery("banan site:aftonbladet.se", "banan  
site\\:aftonbladet.se", "");
+        assertEquals(
+                "Site filter not found",
+                "",
+                executeTestOfQuery("site:aftonbladet.se banan", 
"site\\:aftonbladet.se  banan", "")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "",
+                executeTestOfQuery("banan site:aftonbladet.se", "banan  
site\\:aftonbladet.se", "")
+                .getFilterBuilder().getFilter("site"));
     }
 
     /**
@@ -98,7 +107,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private SolrSearchCommand executeTestOfQuery(
             final String query,
             final String wantedQuery,
             final String wantedFilter)  throws 
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
wantedQuery, generatedQuery.trim());
         assertEquals("Generated filter does not match wanter filter", 
wantedFilter, cmd.getFilter());
+        return cmd;
     }
 }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooIdpSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooIdpSearchCommandTest.java
        2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooIdpSearchCommandTest.java
        2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan", "+banan", 
"+site:aftonbladet.se");
-        executeTestOfQuery("banan site:aftonbladet.se", "+banan", 
"+site:aftonbladet.se");
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("site:aftonbladet.se banan", "+banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("banan site:aftonbladet.se", "+banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
     }
 
     /**
@@ -98,7 +107,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private AbstractYahooSearchCommand executeTestOfQuery(
             final String query,
             final String wantedQuery,
             final String wantedFilter)  throws 
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
wantedQuery, generatedQuery.trim());
         assertEquals("Generated filter does not match wanter filter", 
wantedFilter, cmd.getFilter());
+        return cmd;
     }
 }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooMediaSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooMediaSearchCommandTest.java
      2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooMediaSearchCommandTest.java
      2008-11-20 18:47:04 UTC (rev 6965)
@@ -90,8 +90,17 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan", "+banan", 
"+site:aftonbladet.se");
-        executeTestOfQuery("banan site:aftonbladet.se", "+banan", 
"+site:aftonbladet.se");
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("site:aftonbladet.se banan", "+banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("banan site:aftonbladet.se", "+banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
     }
 
     /**
@@ -102,7 +111,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private AbstractYahooSearchCommand executeTestOfQuery(
             final String query,
             final String wantedQuery,
             final String wantedFilter)  throws 
SiteKeyedFactoryInstantiationException{
@@ -117,5 +126,6 @@
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
wantedQuery, generatedQuery.trim());
         assertEquals("Generated filter does not match wanter filter", 
wantedFilter, cmd.getFilter());
+        return cmd;
     }
 }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooWebSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooWebSearchCommandTest.java
        2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YahooWebSearchCommandTest.java
        2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se");
-        executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se");
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
     }
 
     /**
@@ -98,7 +107,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private YahooWebSearchCommand executeTestOfQuery(
             final String query,
             final String wantedQuery,
             final String wantedFilter)  throws 
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
wantedQuery, generatedQuery.trim());
         assertEquals("Generated filter does not match wanter filter", 
wantedFilter, cmd.getFilter());
+        return cmd;
     }
 }

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YoutubeSearchCommandTest.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YoutubeSearchCommandTest.java
 2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/test/java/no/sesat/search/mode/command/YoutubeSearchCommandTest.java
 2008-11-20 18:47:04 UTC (rev 6965)
@@ -86,8 +86,17 @@
     @Test
     public void testSiteRestriction() throws Exception{
 
-        executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se");
-        executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se");
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("site:aftonbladet.se banan", "banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
+
+        assertEquals(
+                "Site filter not found",
+                "aftonbladet.se",
+                executeTestOfQuery("banan site:aftonbladet.se", "banan", 
"+site:aftonbladet.se")
+                .getFilterBuilder().getFilter("site"));
     }
 
     /**
@@ -98,7 +107,7 @@
      * @param wantedQuery   The expected query.
      * @param wantedFilter  The expected filter.
      */
-    private void executeTestOfQuery(
+    private YoutubeSearchCommand executeTestOfQuery(
             final String query,
             final String wantedQuery,
             final String wantedFilter)  throws 
SiteKeyedFactoryInstantiationException{
@@ -113,5 +122,6 @@
         final String generatedQuery = cmd.getQueryRepresentation();
         assertEquals("Generated query does not match wanted query", 
wantedQuery, generatedQuery.trim());
         assertEquals("Generated filter does not match wanter filter", 
wantedFilter, cmd.getFilter());
+        return cmd;
     }
 }

Modified: 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/querybuilder/BaseFilterBuilder.java
===================================================================
--- 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/querybuilder/BaseFilterBuilder.java
     2008-11-20 14:47:09 UTC (rev 6964)
+++ 
branches/2.18/search-command-control-spi/src/main/java/no/sesat/search/mode/command/querybuilder/BaseFilterBuilder.java
     2008-11-20 18:47:04 UTC (rev 6965)
@@ -38,6 +38,11 @@
  *
  * For example handles the site: syntax.
  *
+ * The default output uses a colon : to join field to the term, and prefixes 
the pair with the plus sign +
+ * For example: +site:vg.no
+ *
+ * The " +" is defined as the deliminator, and is provided by getDelim() if a 
subclass wishes to alter just this.
+ *
  * @todo add correct handling of NotClause and AndNotClause.
  * This also needs to be added to the query builder visitor above.
  *
@@ -51,6 +56,8 @@
 
     private static final Logger LOG = 
Logger.getLogger(BaseFilterBuilder.class);
 
+    private static final String DELIM = " +";
+
     // Attributes ----------------------------------------------------
 
     private final StringBuilder additionalFilters = new StringBuilder();
@@ -89,17 +96,26 @@
                 + additionalFilters.toString();
     }
 
+    /** [EMAIL PROTECTED]
+     *
+     * When looking for a matching filter any leading QueryParser.OPERATORS
+     * to field names in the filter string are ignored.
+     *
+     * @param string [EMAIL PROTECTED]
+     * @return [EMAIL PROTECTED]
+     */
     public String getFilter(final String string) {
 
         final StringBuilder sb = new StringBuilder();
 
-        final StringTokenizer tokeniser = new 
StringTokenizer(getFilterString());
+        final StringTokenizer tokeniser = new 
StringTokenizer(getFilterString(), getDelim());
 
         if(tokeniser.hasMoreTokens()){
-            for(String[] pair = tokeniser.nextToken().split(":");
-                    tokeniser.hasMoreTokens();
-                    pair = tokeniser.nextToken().split(":")){
 
+            while(tokeniser.hasMoreTokens()){
+
+                final String[] pair = tokeniser.nextToken().split(":");
+
                 if(pair[0].equals(string)){
 
                     if(sb.length() > 0){ sb.append(' '); }
@@ -152,7 +168,7 @@
         final String fieldAs = getContext().getFieldFilter(clause);
         final String term = clause.getTerm();
 
-        appendToQueryRepresentation(" +" + (fieldAs.length() > 0 ? fieldAs + 
':' + term : term));
+        appendToQueryRepresentation(getDelim() + (fieldAs.length() > 0 ? 
fieldAs + ':' + term : term));
     }
 
     /** Override logic. Almost an inversion since the QueryBuilder hides 
fielded filters
@@ -171,6 +187,10 @@
 
     }
 
+    protected String getDelim(){
+        return DELIM;
+    }
+
     // Private -------------------------------------------------------
 
     // Inner classes -------------------------------------------------

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to