@@ -15,7 +15,12 @@ public void RegisterPercolateTest()
1515 {
1616 var name = "mypercolator" ;
1717 var c = this . _client ;
18- var r = c . RegisterPercolator < ElasticSearchProject > ( name , q => q . Term ( f => f . Name , "elasticsearch.pm" ) ) ;
18+ var r = c . RegisterPercolator < ElasticSearchProject > ( p => p
19+ . Name ( name )
20+ . Query ( q => q
21+ . Term ( f => f . Name , "elasticsearch.pm" )
22+ )
23+ ) ;
1924 Assert . True ( r . IsValid ) ;
2025 Assert . True ( r . OK ) ;
2126 Assert . AreEqual ( r . Type , ElasticsearchConfiguration . DefaultIndex ) ;
@@ -27,7 +32,13 @@ public void UnregisterPercolateTest()
2732 {
2833 var name = "mypercolator" ;
2934 var c = this . _client ;
30- var r = c . RegisterPercolator < ElasticSearchProject > ( name , q => q . Term ( f => f . Name , "elasticsearch.pm" ) ) ;
35+ var r = c . RegisterPercolator < ElasticSearchProject > ( p => p
36+ . Name ( name )
37+ . Add ( "color" , "blue" )
38+ . Query ( q => q
39+ . Term ( f => f . Name , "elasticsearch.pm" )
40+ )
41+ ) ;
3142 Assert . True ( r . IsValid ) ;
3243 Assert . True ( r . OK ) ;
3344 Assert . AreEqual ( r . Type , ElasticsearchConfiguration . DefaultIndex ) ;
@@ -53,12 +64,12 @@ public void PercolateDoc()
5364 this . RegisterPercolateTest ( ) ; // I feel a little dirty.
5465 var c = this . _client ;
5566 var name = "mypercolator" ;
56- var r = c . Percolate ( new ElasticSearchProject ( )
67+ var r = c . Percolate < ElasticSearchProject > ( p => p . Object ( new ElasticSearchProject ( )
5768 {
5869 Name = "elasticsearch.pm" ,
5970 Country = "netherlands" ,
6071 LOC = 100000 , //Too many :(
61- } ) ;
72+ } ) ) ;
6273 Assert . True ( r . IsValid ) ;
6374 Assert . True ( r . OK ) ;
6475 Assert . NotNull ( r . Matches ) ;
@@ -71,23 +82,74 @@ public void PercolateTypedDoc()
7182 this . RegisterPercolateTest ( ) ; // I feel a little dirty.
7283 var c = this . _client ;
7384 var name = "eclecticsearch" ;
74- var r = c . RegisterPercolator < ElasticSearchProject > ( name , q => q . Term ( f => f . Country , "netherlands" ) ) ;
85+ var r = c . RegisterPercolator < ElasticSearchProject > ( p => p
86+ . Name ( name )
87+ . Query ( q => q
88+ . Term ( f => f . Country , "netherlands" )
89+ )
90+ ) ;
7591 Assert . True ( r . IsValid ) ;
7692 Assert . True ( r . OK ) ;
77- var percolateResponse = this . _client . Percolate (
93+ var percolateResponse = this . _client . Percolate < ElasticSearchProject > ( p => p . Object (
7894 new ElasticSearchProject ( )
7995 {
8096 Name = "NEST" ,
8197 Country = "netherlands" ,
8298 LOC = 100000 , //Too many :(
8399 }
84- ) ;
100+ ) ) ;
85101 Assert . True ( percolateResponse . IsValid ) ;
86102 Assert . True ( percolateResponse . OK ) ;
87103 Assert . NotNull ( percolateResponse . Matches ) ;
88104 Assert . True ( percolateResponse . Matches . Contains ( name ) ) ;
89105
90106 var re = c . UnregisterPercolator < ElasticSearchProject > ( name ) ;
91107 }
108+ [ Test ]
109+ public void PercolateTypedDocWithQuery ( )
110+ {
111+ var c = this . _client ;
112+ var name = "eclecticsearch" + ElasticsearchConfiguration . NewUniqueIndexName ( ) ;
113+ var re = c . UnregisterPercolator < ElasticSearchProject > ( name ) ;
114+ var r = c . RegisterPercolator < ElasticSearchProject > ( p => p
115+ . Name ( name )
116+ . Add ( "color" , "blue" )
117+ . Query ( q => q
118+ . Term ( f => f . Country , "netherlands" )
119+ )
120+ ) ;
121+ Assert . True ( r . IsValid ) ;
122+ Assert . True ( r . OK ) ;
123+ var percolateResponse = this . _client . Percolate < ElasticSearchProject > ( p => p
124+ . Object ( new ElasticSearchProject ( )
125+ {
126+ Name = "NEST" ,
127+ Country = "netherlands" ,
128+ LOC = 100000 , //Too many :(
129+ } )
130+ . Query ( q=> q . Term ( "color" , "blue" ) )
131+ ) ;
132+ Assert . True ( percolateResponse . IsValid ) ;
133+ Assert . True ( percolateResponse . OK ) ;
134+ Assert . NotNull ( percolateResponse . Matches ) ;
135+ Assert . True ( percolateResponse . Matches . Contains ( name ) ) ;
136+
137+ //should not match since we registered with the color blue
138+ percolateResponse = this . _client . Percolate < ElasticSearchProject > ( p => p
139+ . Object ( new ElasticSearchProject ( )
140+ {
141+ Name = "NEST" ,
142+ Country = "netherlands" ,
143+ LOC = 100000 , //Too many :(
144+ } )
145+ . Query ( q => q . Term ( "color" , "green" ) )
146+ ) ;
147+ Assert . True ( percolateResponse . IsValid ) ;
148+ Assert . True ( percolateResponse . OK ) ;
149+ Assert . NotNull ( percolateResponse . Matches ) ;
150+ Assert . False ( percolateResponse . Matches . Contains ( name ) ) ;
151+
152+ re = c . UnregisterPercolator < ElasticSearchProject > ( name ) ;
153+ }
92154 }
93155}
0 commit comments