elasticsearch-dsl 0.1.6 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +30 -8
  3. data/LICENSE.txt +199 -10
  4. data/README.md +62 -27
  5. data/Rakefile +29 -17
  6. data/elasticsearch-dsl.gemspec +40 -22
  7. data/lib/elasticsearch/dsl/search/aggregation.rb +21 -2
  8. data/lib/elasticsearch/dsl/search/aggregations/avg.rb +18 -1
  9. data/lib/elasticsearch/dsl/search/aggregations/cardinality.rb +18 -1
  10. data/lib/elasticsearch/dsl/search/aggregations/children.rb +18 -1
  11. data/lib/elasticsearch/dsl/search/aggregations/composite.rb +60 -0
  12. data/lib/elasticsearch/dsl/search/aggregations/date_histogram.rb +23 -5
  13. data/lib/elasticsearch/dsl/search/aggregations/date_range.rb +18 -1
  14. data/lib/elasticsearch/dsl/search/aggregations/extended_stats.rb +18 -1
  15. data/lib/elasticsearch/dsl/search/aggregations/filter.rb +18 -1
  16. data/lib/elasticsearch/dsl/search/aggregations/filters.rb +18 -1
  17. data/lib/elasticsearch/dsl/search/aggregations/geo_bounds.rb +18 -1
  18. data/lib/elasticsearch/dsl/search/aggregations/geo_distance.rb +18 -1
  19. data/lib/elasticsearch/dsl/search/aggregations/geohash_grid.rb +18 -1
  20. data/lib/elasticsearch/dsl/search/aggregations/global.rb +17 -0
  21. data/lib/elasticsearch/dsl/search/aggregations/histogram.rb +18 -1
  22. data/lib/elasticsearch/dsl/search/aggregations/ip_range.rb +18 -1
  23. data/lib/elasticsearch/dsl/search/aggregations/max.rb +18 -1
  24. data/lib/elasticsearch/dsl/search/aggregations/min.rb +18 -1
  25. data/lib/elasticsearch/dsl/search/aggregations/missing.rb +17 -0
  26. data/lib/elasticsearch/dsl/search/aggregations/nested.rb +18 -1
  27. data/lib/elasticsearch/dsl/search/aggregations/percentile_ranks.rb +18 -1
  28. data/lib/elasticsearch/dsl/search/aggregations/percentiles.rb +18 -1
  29. data/lib/elasticsearch/dsl/search/aggregations/pipeline/avg_bucket.rb +17 -0
  30. data/lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_script.rb +17 -0
  31. data/lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_selector.rb +17 -0
  32. data/lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_sort.rb +106 -0
  33. data/lib/elasticsearch/dsl/search/aggregations/pipeline/cumulative_sum.rb +17 -0
  34. data/lib/elasticsearch/dsl/search/aggregations/pipeline/derivative.rb +17 -0
  35. data/lib/elasticsearch/dsl/search/aggregations/pipeline/extended_stats_bucket.rb +17 -0
  36. data/lib/elasticsearch/dsl/search/aggregations/pipeline/max_bucket.rb +17 -0
  37. data/lib/elasticsearch/dsl/search/aggregations/pipeline/min_bucket.rb +17 -0
  38. data/lib/elasticsearch/dsl/search/aggregations/pipeline/moving_avg.rb +17 -0
  39. data/lib/elasticsearch/dsl/search/aggregations/pipeline/percentiles_bucket.rb +17 -0
  40. data/lib/elasticsearch/dsl/search/aggregations/pipeline/serial_diff.rb +17 -0
  41. data/lib/elasticsearch/dsl/search/aggregations/pipeline/stats_bucket.rb +17 -0
  42. data/lib/elasticsearch/dsl/search/aggregations/pipeline/sum_bucket.rb +17 -0
  43. data/lib/elasticsearch/dsl/search/aggregations/range.rb +18 -1
  44. data/lib/elasticsearch/dsl/search/aggregations/reverse_nested.rb +18 -1
  45. data/lib/elasticsearch/dsl/search/aggregations/scripted_metric.rb +18 -1
  46. data/lib/elasticsearch/dsl/search/aggregations/significant_terms.rb +18 -1
  47. data/lib/elasticsearch/dsl/search/aggregations/significant_text.rb +62 -0
  48. data/lib/elasticsearch/dsl/search/aggregations/stats.rb +17 -0
  49. data/lib/elasticsearch/dsl/search/aggregations/sum.rb +18 -1
  50. data/lib/elasticsearch/dsl/search/aggregations/terms.rb +17 -0
  51. data/lib/elasticsearch/dsl/search/aggregations/top_hits.rb +18 -1
  52. data/lib/elasticsearch/dsl/search/aggregations/value_count.rb +18 -1
  53. data/lib/elasticsearch/dsl/search/base_aggregation_component.rb +20 -1
  54. data/lib/elasticsearch/dsl/search/base_component.rb +30 -1
  55. data/lib/elasticsearch/dsl/search/base_compound_filter_component.rb +20 -1
  56. data/lib/elasticsearch/dsl/search/collapse.rb +95 -0
  57. data/lib/elasticsearch/dsl/search/filter.rb +21 -2
  58. data/lib/elasticsearch/dsl/search/filters/and.rb +18 -1
  59. data/lib/elasticsearch/dsl/search/filters/bool.rb +23 -4
  60. data/lib/elasticsearch/dsl/search/filters/exists.rb +18 -1
  61. data/lib/elasticsearch/dsl/search/filters/geo_bounding_box.rb +18 -1
  62. data/lib/elasticsearch/dsl/search/filters/geo_distance.rb +18 -1
  63. data/lib/elasticsearch/dsl/search/filters/geo_distance_range.rb +18 -1
  64. data/lib/elasticsearch/dsl/search/filters/geo_polygon.rb +18 -1
  65. data/lib/elasticsearch/dsl/search/filters/geo_shape.rb +18 -1
  66. data/lib/elasticsearch/dsl/search/filters/geohash_cell.rb +18 -1
  67. data/lib/elasticsearch/dsl/search/filters/has_child.rb +18 -1
  68. data/lib/elasticsearch/dsl/search/filters/has_parent.rb +18 -1
  69. data/lib/elasticsearch/dsl/search/filters/ids.rb +18 -1
  70. data/lib/elasticsearch/dsl/search/filters/indices.rb +19 -2
  71. data/lib/elasticsearch/dsl/search/filters/limit.rb +18 -1
  72. data/lib/elasticsearch/dsl/search/filters/match_all.rb +18 -1
  73. data/lib/elasticsearch/dsl/search/filters/missing.rb +18 -1
  74. data/lib/elasticsearch/dsl/search/filters/nested.rb +27 -1
  75. data/lib/elasticsearch/dsl/search/filters/not.rb +21 -2
  76. data/lib/elasticsearch/dsl/search/filters/or.rb +18 -1
  77. data/lib/elasticsearch/dsl/search/filters/prefix.rb +18 -1
  78. data/lib/elasticsearch/dsl/search/filters/query.rb +18 -1
  79. data/lib/elasticsearch/dsl/search/filters/range.rb +18 -1
  80. data/lib/elasticsearch/dsl/search/filters/regexp.rb +18 -1
  81. data/lib/elasticsearch/dsl/search/filters/script.rb +18 -1
  82. data/lib/elasticsearch/dsl/search/filters/term.rb +18 -1
  83. data/lib/elasticsearch/dsl/search/filters/terms.rb +18 -1
  84. data/lib/elasticsearch/dsl/search/filters/type.rb +18 -1
  85. data/lib/elasticsearch/dsl/search/highlight.rb +18 -1
  86. data/lib/elasticsearch/dsl/search/options.rb +20 -2
  87. data/lib/elasticsearch/dsl/search/queries/bool.rb +24 -7
  88. data/lib/elasticsearch/dsl/search/queries/boosting.rb +18 -1
  89. data/lib/elasticsearch/dsl/search/queries/common.rb +18 -1
  90. data/lib/elasticsearch/dsl/search/queries/constant_score.rb +18 -1
  91. data/lib/elasticsearch/dsl/search/queries/dis_max.rb +18 -1
  92. data/lib/elasticsearch/dsl/search/queries/exists.rb +17 -0
  93. data/lib/elasticsearch/dsl/search/queries/filtered.rb +18 -1
  94. data/lib/elasticsearch/dsl/search/queries/function_score.rb +19 -1
  95. data/lib/elasticsearch/dsl/search/queries/fuzzy.rb +18 -1
  96. data/lib/elasticsearch/dsl/search/queries/fuzzy_like_this.rb +18 -1
  97. data/lib/elasticsearch/dsl/search/queries/fuzzy_like_this_field.rb +18 -1
  98. data/lib/elasticsearch/dsl/search/queries/geo_shape.rb +18 -1
  99. data/lib/elasticsearch/dsl/search/queries/has_child.rb +18 -1
  100. data/lib/elasticsearch/dsl/search/queries/has_parent.rb +18 -1
  101. data/lib/elasticsearch/dsl/search/queries/ids.rb +18 -1
  102. data/lib/elasticsearch/dsl/search/queries/indices.rb +18 -1
  103. data/lib/elasticsearch/dsl/search/queries/inner_hits.rb +133 -0
  104. data/lib/elasticsearch/dsl/search/queries/match.rb +18 -1
  105. data/lib/elasticsearch/dsl/search/queries/match_all.rb +18 -1
  106. data/lib/elasticsearch/dsl/search/queries/match_phrase.rb +17 -0
  107. data/lib/elasticsearch/dsl/search/queries/match_phrase_prefix.rb +17 -0
  108. data/lib/elasticsearch/dsl/search/queries/more_like_this.rb +18 -1
  109. data/lib/elasticsearch/dsl/search/queries/multi_match.rb +18 -1
  110. data/lib/elasticsearch/dsl/search/queries/nested.rb +18 -1
  111. data/lib/elasticsearch/dsl/search/queries/prefix.rb +18 -1
  112. data/lib/elasticsearch/dsl/search/queries/query_string.rb +20 -4
  113. data/lib/elasticsearch/dsl/search/queries/range.rb +18 -1
  114. data/lib/elasticsearch/dsl/search/queries/regexp.rb +18 -1
  115. data/lib/elasticsearch/dsl/search/queries/simple_query_string.rb +18 -1
  116. data/lib/elasticsearch/dsl/search/queries/span_first.rb +18 -1
  117. data/lib/elasticsearch/dsl/search/queries/span_multi.rb +18 -1
  118. data/lib/elasticsearch/dsl/search/queries/span_near.rb +18 -1
  119. data/lib/elasticsearch/dsl/search/queries/span_not.rb +18 -1
  120. data/lib/elasticsearch/dsl/search/queries/span_or.rb +18 -1
  121. data/lib/elasticsearch/dsl/search/queries/span_term.rb +18 -1
  122. data/lib/elasticsearch/dsl/search/queries/template.rb +18 -1
  123. data/lib/elasticsearch/dsl/search/queries/term.rb +18 -1
  124. data/lib/elasticsearch/dsl/search/queries/terms.rb +18 -1
  125. data/lib/elasticsearch/dsl/search/queries/top_children.rb +18 -1
  126. data/lib/elasticsearch/dsl/search/queries/wildcard.rb +18 -1
  127. data/lib/elasticsearch/dsl/search/query.rb +21 -2
  128. data/lib/elasticsearch/dsl/search/sort.rb +18 -1
  129. data/lib/elasticsearch/dsl/search/suggest.rb +18 -1
  130. data/lib/elasticsearch/dsl/search.rb +46 -4
  131. data/lib/elasticsearch/dsl/utils.rb +17 -0
  132. data/lib/elasticsearch/dsl/version.rb +18 -1
  133. data/lib/elasticsearch/dsl.rb +19 -1
  134. data/lib/elasticsearch-dsl.rb +17 -0
  135. data/spec/elasticsearch/dsl/search/aggregations/avg_spec.rb +43 -0
  136. data/spec/elasticsearch/dsl/search/aggregations/cardinality_spec.rb +110 -0
  137. data/spec/elasticsearch/dsl/search/aggregations/children_spec.rb +66 -0
  138. data/spec/elasticsearch/dsl/search/aggregations/composite_spec.rb +99 -0
  139. data/spec/elasticsearch/dsl/search/aggregations/date_histogram_spec.rb +182 -0
  140. data/spec/elasticsearch/dsl/search/aggregations/date_range_spec.rb +89 -0
  141. data/spec/elasticsearch/dsl/search/aggregations/extended_stats_spec.rb +43 -0
  142. data/spec/elasticsearch/dsl/search/aggregations/filter_spec.rb +48 -0
  143. data/spec/elasticsearch/dsl/search/aggregations/filters_spec.rb +89 -0
  144. data/spec/elasticsearch/dsl/search/aggregations/geo_bounds_spec.rb +77 -0
  145. data/spec/elasticsearch/dsl/search/aggregations/geo_distance_spec.rb +113 -0
  146. data/spec/elasticsearch/dsl/search/aggregations/geo_grid_spec.rb +100 -0
  147. data/spec/elasticsearch/dsl/search/aggregations/global_spec.rb +62 -0
  148. data/spec/elasticsearch/dsl/search/aggregations/historgram_spec.rb +122 -0
  149. data/spec/elasticsearch/dsl/search/aggregations/ip_range_spec.rb +93 -0
  150. data/spec/elasticsearch/dsl/search/aggregations/max_spec.rb +43 -0
  151. data/spec/elasticsearch/dsl/search/aggregations/min_spec.rb +43 -0
  152. data/spec/elasticsearch/dsl/search/aggregations/missing_spec.rb +81 -0
  153. data/spec/elasticsearch/dsl/search/aggregations/nested_spec.rb +86 -0
  154. data/spec/elasticsearch/dsl/search/aggregations/percentile_ranks_spec.rb +126 -0
  155. data/spec/elasticsearch/dsl/search/aggregations/percentiles_spec.rb +125 -0
  156. data/spec/elasticsearch/dsl/search/aggregations/pipeline/avg_bucket_spec.rb +88 -0
  157. data/spec/elasticsearch/dsl/search/aggregations/pipeline/bucket_script_spec.rb +99 -0
  158. data/spec/elasticsearch/dsl/search/aggregations/pipeline/bucket_selector_spec.rb +88 -0
  159. data/spec/elasticsearch/dsl/search/aggregations/pipeline/bucket_sort_spec.rb +104 -0
  160. data/spec/elasticsearch/dsl/search/aggregations/pipeline/cumulative_sum_spec.rb +77 -0
  161. data/spec/elasticsearch/dsl/search/aggregations/pipeline/derivative_spec.rb +88 -0
  162. data/spec/elasticsearch/dsl/search/aggregations/pipeline/extended_stats_bucket_spec.rb +88 -0
  163. data/spec/elasticsearch/dsl/search/aggregations/pipeline/max_bucket_spec.rb +88 -0
  164. data/spec/elasticsearch/dsl/search/aggregations/pipeline/min_bucket_spec.rb +88 -0
  165. data/spec/elasticsearch/dsl/search/aggregations/pipeline/moving_avg_test_spec.rb +132 -0
  166. data/spec/elasticsearch/dsl/search/aggregations/pipeline/percentiles_bucket_spec.rb +99 -0
  167. data/spec/elasticsearch/dsl/search/aggregations/pipeline/serial_diff_spec.rb +99 -0
  168. data/spec/elasticsearch/dsl/search/aggregations/pipeline/stats_bucket_spec.rb +88 -0
  169. data/spec/elasticsearch/dsl/search/aggregations/pipeline/sum_bucket_spec.rb +88 -0
  170. data/spec/elasticsearch/dsl/search/aggregations/range_spec.rb +119 -0
  171. data/spec/elasticsearch/dsl/search/aggregations/reverse_nested_spec.rb +32 -0
  172. data/spec/elasticsearch/dsl/search/aggregations/scripted_metric_spec.rb +121 -0
  173. data/spec/elasticsearch/dsl/search/aggregations/significant_terms_spec.rb +176 -0
  174. data/spec/elasticsearch/dsl/search/aggregations/significant_text_spec.rb +176 -0
  175. data/spec/elasticsearch/dsl/search/aggregations/stats_spec.rb +56 -0
  176. data/spec/elasticsearch/dsl/search/aggregations/sum_spec.rb +43 -0
  177. data/spec/elasticsearch/dsl/search/aggregations/terms_spec.rb +165 -0
  178. data/spec/elasticsearch/dsl/search/aggregations/top_hits_spec.rb +88 -0
  179. data/spec/elasticsearch/dsl/search/aggregations/value_count_spec.rb +43 -0
  180. data/spec/elasticsearch/dsl/search/collapse_spec.rb +93 -0
  181. data/spec/elasticsearch/dsl/search/filters/and_spec.rb +74 -0
  182. data/spec/elasticsearch/dsl/search/filters/bool_spec.rb +213 -0
  183. data/spec/elasticsearch/dsl/search/filters/exists_spec.rb +66 -0
  184. data/spec/elasticsearch/dsl/search/filters/geo_bounding_box_spec.rb +144 -0
  185. data/spec/elasticsearch/dsl/search/filters/geo_distance_range_spec.rb +103 -0
  186. data/spec/elasticsearch/dsl/search/filters/geo_distance_spec.rb +126 -0
  187. data/spec/elasticsearch/dsl/search/filters/geo_polygon_spec.rb +66 -0
  188. data/spec/elasticsearch/dsl/search/filters/geo_shape_spec.rb +77 -0
  189. data/spec/elasticsearch/dsl/search/filters/geohash_cell_spec.rb +99 -0
  190. data/spec/elasticsearch/dsl/search/filters/has_child_spec.rb +139 -0
  191. data/spec/elasticsearch/dsl/search/filters/has_parent_spec.rb +128 -0
  192. data/spec/elasticsearch/dsl/search/filters/ids_spec.rb +78 -0
  193. data/spec/elasticsearch/dsl/search/filters/indices_spec.rb +109 -0
  194. data/spec/elasticsearch/dsl/search/filters/limit_spec.rb +66 -0
  195. data/spec/elasticsearch/dsl/search/filters/match_all_spec.rb +32 -0
  196. data/spec/elasticsearch/dsl/search/filters/missing_spec.rb +66 -0
  197. data/spec/elasticsearch/dsl/search/filters/nested_spec.rb +91 -0
  198. data/spec/elasticsearch/dsl/search/filters/not_spec.rb +59 -0
  199. data/spec/elasticsearch/dsl/search/filters/or_spec.rb +75 -0
  200. data/spec/elasticsearch/dsl/search/filters/prefix_spec.rb +46 -0
  201. data/spec/elasticsearch/dsl/search/filters/query_spec.rb +59 -0
  202. data/spec/elasticsearch/dsl/search/filters/range_spec.rb +111 -0
  203. data/spec/elasticsearch/dsl/search/filters/regexp_spec.rb +88 -0
  204. data/spec/elasticsearch/dsl/search/filters/script_spec.rb +77 -0
  205. data/spec/elasticsearch/dsl/search/filters/term_spec.rb +57 -0
  206. data/spec/elasticsearch/dsl/search/filters/terms_spec.rb +46 -0
  207. data/spec/elasticsearch/dsl/search/filters/type_spec.rb +66 -0
  208. data/spec/elasticsearch/dsl/search/queries/bool_spec.rb +267 -0
  209. data/spec/elasticsearch/dsl/search/queries/boosting_spec.rb +90 -0
  210. data/spec/elasticsearch/dsl/search/queries/common_spec.rb +132 -0
  211. data/spec/elasticsearch/dsl/search/queries/constant_score_spec.rb +90 -0
  212. data/spec/elasticsearch/dsl/search/queries/dis_max_spec.rb +88 -0
  213. data/spec/elasticsearch/dsl/search/queries/exists_spec.rb +66 -0
  214. data/spec/elasticsearch/dsl/search/queries/filtered_spec.rb +93 -0
  215. data/spec/elasticsearch/dsl/search/queries/function_score_spec.rb +175 -0
  216. data/spec/elasticsearch/dsl/search/queries/fuzzy_like_this_field_spec.rb +132 -0
  217. data/spec/elasticsearch/dsl/search/queries/fuzzy_like_this_spec.rb +134 -0
  218. data/spec/elasticsearch/dsl/search/queries/fuzzy_spec.rb +110 -0
  219. data/spec/elasticsearch/dsl/search/queries/geo_shape_spec.rb +77 -0
  220. data/spec/elasticsearch/dsl/search/queries/has_child_spec.rb +126 -0
  221. data/spec/elasticsearch/dsl/search/queries/has_parent_spec.rb +100 -0
  222. data/spec/elasticsearch/dsl/search/queries/ids_spec.rb +78 -0
  223. data/spec/elasticsearch/dsl/search/queries/indices_spec.rb +89 -0
  224. data/spec/elasticsearch/dsl/search/queries/inner_hits_spec.rb +144 -0
  225. data/spec/elasticsearch/dsl/search/queries/match_all_spec.rb +66 -0
  226. data/spec/elasticsearch/dsl/search/queries/match_phrase_prefix_spec.rb +103 -0
  227. data/spec/elasticsearch/dsl/search/queries/match_phrase_spec.rb +114 -0
  228. data/spec/elasticsearch/dsl/search/queries/match_spec.rb +107 -0
  229. data/spec/elasticsearch/dsl/search/queries/more_like_this_spec.rb +87 -0
  230. data/spec/elasticsearch/dsl/search/queries/multi_match_spec.rb +74 -0
  231. data/spec/elasticsearch/dsl/search/queries/nested_spec.rb +98 -0
  232. data/spec/elasticsearch/dsl/search/queries/prefix_spec.rb +70 -0
  233. data/spec/elasticsearch/dsl/search/queries/query_string_spec.rb +85 -0
  234. data/spec/elasticsearch/dsl/search/queries/range_spec.rb +78 -0
  235. data/spec/elasticsearch/dsl/search/queries/regexp_spec.rb +82 -0
  236. data/spec/elasticsearch/dsl/search/queries/simple_query_string_spec.rb +74 -0
  237. data/spec/elasticsearch/dsl/search/queries/span_first_spec.rb +69 -0
  238. data/spec/elasticsearch/dsl/search/queries/span_multi_spec.rb +69 -0
  239. data/spec/elasticsearch/dsl/search/queries/span_near_spec.rb +72 -0
  240. data/spec/elasticsearch/dsl/search/queries/span_not_spec.rb +73 -0
  241. data/spec/elasticsearch/dsl/search/queries/span_or_spec.rb +69 -0
  242. data/spec/elasticsearch/dsl/search/queries/span_term_spec.rb +46 -0
  243. data/spec/elasticsearch/dsl/search/queries/template_spec.rb +84 -0
  244. data/spec/elasticsearch/dsl/search/queries/term_spec.rb +57 -0
  245. data/spec/elasticsearch/dsl/search/queries/terms_spec.rb +46 -0
  246. data/spec/elasticsearch/dsl/search/queries/top_children_spec.rb +93 -0
  247. data/spec/elasticsearch/dsl/search/queries/wildcard_spec.rb +81 -0
  248. data/spec/elasticsearch/dsl/search_spec.rb +385 -0
  249. data/spec/spec_helper.rb +24 -0
  250. data/test/integration/search_aggregation_children_test.rb +44 -37
  251. data/test/integration/search_aggregation_geo_test.rb +27 -16
  252. data/test/integration/search_aggregation_nested_test.rb +32 -20
  253. data/test/integration/search_aggregations_test.rb +28 -13
  254. data/test/integration/search_filters_test.rb +33 -22
  255. data/test/integration/search_options_test.rb +20 -3
  256. data/test/integration/search_query_test.rb +24 -11
  257. data/test/integration/search_size_from_test.rb +22 -5
  258. data/test/integration/search_sort_test.rb +20 -7
  259. data/test/integration/search_suggest_test.rb +30 -19
  260. data/test/integration/search_test.rb +21 -8
  261. data/test/test_helper.rb +30 -23
  262. data/test/unit/dsl_test.rb +17 -0
  263. data/test/unit/search_aggregation_test.rb +17 -0
  264. data/test/unit/search_base_aggregation_component_test.rb +17 -0
  265. data/test/unit/search_base_component_test.rb +17 -0
  266. data/test/unit/search_filter_test.rb +17 -0
  267. data/test/unit/search_highlight_test.rb +17 -0
  268. data/test/unit/search_options_test.rb +25 -0
  269. data/test/unit/search_query_test.rb +17 -0
  270. data/test/unit/search_size_from_test.rb +17 -0
  271. data/test/unit/search_sort_test.rb +17 -0
  272. data/test/unit/search_suggest_test.rb +17 -0
  273. data/test/unit/search_test.rb +24 -0
  274. data/test/unit/utils_test.rb +17 -0
  275. metadata +278 -270
  276. data/test/unit/aggregations/avg_test.rb +0 -24
  277. data/test/unit/aggregations/cardinality_test.rb +0 -40
  278. data/test/unit/aggregations/children_test.rb +0 -36
  279. data/test/unit/aggregations/date_histogram_test.rb +0 -49
  280. data/test/unit/aggregations/date_range_test.rb +0 -42
  281. data/test/unit/aggregations/extended_stats_test.rb +0 -24
  282. data/test/unit/aggregations/filter_test.rb +0 -31
  283. data/test/unit/aggregations/filters_test.rb +0 -52
  284. data/test/unit/aggregations/geo_bounds_test.rb +0 -37
  285. data/test/unit/aggregations/geo_distance_test.rb +0 -45
  286. data/test/unit/aggregations/geohash_grid_test.rb +0 -40
  287. data/test/unit/aggregations/global_test.rb +0 -38
  288. data/test/unit/aggregations/histogram_test.rb +0 -42
  289. data/test/unit/aggregations/ip_range_test.rb +0 -41
  290. data/test/unit/aggregations/max_test.rb +0 -24
  291. data/test/unit/aggregations/min_test.rb +0 -24
  292. data/test/unit/aggregations/missing_test.rb +0 -39
  293. data/test/unit/aggregations/nested_test.rb +0 -48
  294. data/test/unit/aggregations/percentile_ranks_test.rb +0 -41
  295. data/test/unit/aggregations/percentiles_test.rb +0 -40
  296. data/test/unit/aggregations/pipeline/avg_bucket_test.rb +0 -39
  297. data/test/unit/aggregations/pipeline/bucket_script_test.rb +0 -39
  298. data/test/unit/aggregations/pipeline/bucket_selector_test.rb +0 -38
  299. data/test/unit/aggregations/pipeline/cumulative_sum_test.rb +0 -37
  300. data/test/unit/aggregations/pipeline/derivative_test.rb +0 -39
  301. data/test/unit/aggregations/pipeline/extended_stats_bucket_test.rb +0 -38
  302. data/test/unit/aggregations/pipeline/max_bucket_test.rb +0 -38
  303. data/test/unit/aggregations/pipeline/min_bucket_test.rb +0 -38
  304. data/test/unit/aggregations/pipeline/moving_avg_test.rb +0 -41
  305. data/test/unit/aggregations/pipeline/percentiles_bucket_test.rb +0 -39
  306. data/test/unit/aggregations/pipeline/serial_diff_test.rb +0 -39
  307. data/test/unit/aggregations/pipeline/stats_bucket_test.rb +0 -38
  308. data/test/unit/aggregations/pipeline/sum_bucket_test.rb +0 -38
  309. data/test/unit/aggregations/range_test.rb +0 -59
  310. data/test/unit/aggregations/reverse_nested_test.rb +0 -20
  311. data/test/unit/aggregations/scripted_metric_test.rb +0 -41
  312. data/test/unit/aggregations/significant_terms_test.rb +0 -46
  313. data/test/unit/aggregations/stats_test.rb +0 -32
  314. data/test/unit/aggregations/sum_test.rb +0 -24
  315. data/test/unit/aggregations/terms_test.rb +0 -51
  316. data/test/unit/aggregations/top_hits_test.rb +0 -38
  317. data/test/unit/aggregations/value_count_test.rb +0 -24
  318. data/test/unit/filters/and_test.rb +0 -69
  319. data/test/unit/filters/bool_test.rb +0 -98
  320. data/test/unit/filters/exists_test.rb +0 -36
  321. data/test/unit/filters/geo_bounding_box_test.rb +0 -45
  322. data/test/unit/filters/geo_distance_range_test.rb +0 -51
  323. data/test/unit/filters/geo_distance_test.rb +0 -58
  324. data/test/unit/filters/geo_polygon_test.rb +0 -36
  325. data/test/unit/filters/geo_shape_test.rb +0 -37
  326. data/test/unit/filters/geohash_cell_test.rb +0 -43
  327. data/test/unit/filters/has_child_test.rb +0 -54
  328. data/test/unit/filters/has_parent_test.rb +0 -54
  329. data/test/unit/filters/ids_test.rb +0 -38
  330. data/test/unit/filters/indices_test.rb +0 -52
  331. data/test/unit/filters/limit_test.rb +0 -36
  332. data/test/unit/filters/match_all_test.rb +0 -20
  333. data/test/unit/filters/missing_test.rb +0 -38
  334. data/test/unit/filters/nested_test.rb +0 -40
  335. data/test/unit/filters/not_test.rb +0 -35
  336. data/test/unit/filters/or_test.rb +0 -53
  337. data/test/unit/filters/prefix_test.rb +0 -25
  338. data/test/unit/filters/query_test.rb +0 -33
  339. data/test/unit/filters/range_test.rb +0 -48
  340. data/test/unit/filters/regexp_test.rb +0 -42
  341. data/test/unit/filters/script_test.rb +0 -38
  342. data/test/unit/filters/term_test.rb +0 -27
  343. data/test/unit/filters/terms_test.rb +0 -24
  344. data/test/unit/filters/type_test.rb +0 -36
  345. data/test/unit/queries/bool_test.rb +0 -147
  346. data/test/unit/queries/boosting_test.rb +0 -41
  347. data/test/unit/queries/common_test.rb +0 -42
  348. data/test/unit/queries/constant_score_test.rb +0 -47
  349. data/test/unit/queries/dis_max_test.rb +0 -38
  350. data/test/unit/queries/exists_test.rb +0 -36
  351. data/test/unit/queries/filtered_test.rb +0 -51
  352. data/test/unit/queries/function_score_test.rb +0 -70
  353. data/test/unit/queries/fuzzy_like_this_field_test.rb +0 -42
  354. data/test/unit/queries/fuzzy_like_this_test.rb +0 -44
  355. data/test/unit/queries/fuzzy_test.rb +0 -40
  356. data/test/unit/queries/geo_shape_test.rb +0 -37
  357. data/test/unit/queries/has_child_test.rb +0 -55
  358. data/test/unit/queries/has_parent_test.rb +0 -41
  359. data/test/unit/queries/ids_test.rb +0 -38
  360. data/test/unit/queries/indices_test.rb +0 -39
  361. data/test/unit/queries/match_all_test.rb +0 -36
  362. data/test/unit/queries/match_phrase_prefix_test.rb +0 -62
  363. data/test/unit/queries/match_phrase_test.rb +0 -63
  364. data/test/unit/queries/match_test.rb +0 -65
  365. data/test/unit/queries/more_like_this_test.rb +0 -53
  366. data/test/unit/queries/multi_match_test.rb +0 -42
  367. data/test/unit/queries/nested_test.rb +0 -52
  368. data/test/unit/queries/prefix_test.rb +0 -37
  369. data/test/unit/queries/query_string_test.rb +0 -56
  370. data/test/unit/queries/range_test.rb +0 -41
  371. data/test/unit/queries/regexp_test.rb +0 -43
  372. data/test/unit/queries/simple_query_string_test.rb +0 -41
  373. data/test/unit/queries/span_first_test.rb +0 -36
  374. data/test/unit/queries/span_multi_test.rb +0 -36
  375. data/test/unit/queries/span_near_test.rb +0 -39
  376. data/test/unit/queries/span_not_test.rb +0 -40
  377. data/test/unit/queries/span_or_test.rb +0 -36
  378. data/test/unit/queries/span_term_test.rb +0 -24
  379. data/test/unit/queries/template_test.rb +0 -43
  380. data/test/unit/queries/term_test.rb +0 -27
  381. data/test/unit/queries/terms_test.rb +0 -24
  382. data/test/unit/queries/top_children_test.rb +0 -53
  383. data/test/unit/queries/wildcard_test.rb +0 -43
@@ -1,48 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class RangeTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "Range filter" do
10
- subject { Range.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ range: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Range.new :foo
18
-
19
- subject.gte 'bar'
20
- subject.lte 'bar'
21
- subject.time_zone 'bar'
22
- subject.format 'bar'
23
-
24
- assert_equal %w[ format gte lte time_zone ],
25
- subject.to_hash[:range][:foo].keys.map(&:to_s).sort
26
-
27
- assert_equal 'bar', subject.to_hash[:range][:foo][:gte]
28
- end
29
-
30
- should "take a hash" do
31
- subject = Range.new age: { gte: 10, lte: 20 }
32
-
33
- assert_equal({ range: { age: { gte: 10, lte: 20 } } }, subject.to_hash)
34
- end
35
-
36
- should "take a block" do
37
- subject = Range.new :age do
38
- gte 10
39
- lte 20
40
- end
41
-
42
- assert_equal({ range: { age: { gte: 10, lte: 20 } } }, subject.to_hash)
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
@@ -1,42 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class RegexpTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "Regexp filter" do
10
- subject { Regexp.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ regexp: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Regexp.new :foo
18
-
19
- subject.value 'bar'
20
- subject.flags 'bar'
21
-
22
- assert_equal %w[ flags value ],
23
- subject.to_hash[:regexp][:foo].keys.map(&:to_s).sort
24
- assert_equal 'bar', subject.to_hash[:regexp][:foo][:value]
25
- end
26
-
27
- should "take a Hash" do
28
- subject = Regexp.new foo: 'b.*r'
29
- assert_equal({regexp: { foo: 'b.*r' }}, subject.to_hash)
30
- end
31
-
32
- should "take a block" do
33
- subject = Regexp.new :foo do
34
- value 'b*r'
35
- end
36
- assert_equal({regexp: { foo: { value: 'b*r' } }}, subject.to_hash)
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,38 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class ScriptTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "Script filter" do
10
- subject { Script.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ script: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Script.new :foo
18
-
19
- subject.script 'bar'
20
- subject.params foo: 'bar'
21
-
22
- assert_equal %w[ params script ],
23
- subject.to_hash[:script][:foo].keys.map(&:to_s).sort
24
- assert_equal 'bar', subject.to_hash[:script][:foo][:script]
25
- assert_equal 'bar', subject.to_hash[:script][:foo][:params][:foo]
26
- end
27
-
28
- should "take a block" do
29
- subject = Script.new :foo do
30
- script 'bar'
31
- end
32
- assert_equal({script: { foo: { script: 'bar' } }}, subject.to_hash)
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,27 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class TermTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- subject { Term.new message: 'test' }
10
-
11
- context "Term Filter" do
12
- should "take a concrete value" do
13
- @subject = Term.new message: 'test'
14
-
15
- assert_equal({ term: { message: 'test' } }, @subject.to_hash)
16
- end
17
-
18
- should "take a Hash" do
19
- @subject = Term.new message: { query: 'test', boost: 2 }
20
-
21
- assert_equal({ term: { message: { query: 'test', boost: 2 }}}, @subject.to_hash)
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,24 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class TermsTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "Terms filter" do
10
- subject { Terms.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ terms: {} }, subject.to_hash)
14
- end
15
-
16
- should "be take a Hash" do
17
- subject = Terms.new foo: ['abc', 'xyz']
18
- assert_equal({ terms: { foo: ['abc', 'xyz'] } }, subject.to_hash)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,36 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class TypeTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "Type filter" do
10
- subject { Type.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ type: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Type.new :foo
18
-
19
- subject.value 'bar'
20
-
21
- assert_equal %w[ value ],
22
- subject.to_hash[:type][:foo].keys.map(&:to_s).sort
23
- assert_equal 'bar', subject.to_hash[:type][:foo][:value]
24
- end
25
-
26
- should "take a block" do
27
- subject = Type.new :foo do
28
- value 'bar'
29
- end
30
- assert_equal({type: { foo: { value: 'bar' } }}, subject.to_hash)
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,147 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Queries
6
- class BoolTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Queries
8
-
9
- context "Bool Query" do
10
- subject { Bool.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ bool: {} }, subject.to_hash)
14
- end
15
-
16
- should "take a Hash" do
17
- subject = Bool.new must: [ {match: { foo: 'bar' }} ]
18
-
19
- assert_equal( { bool: { must: [ {match: { foo: 'bar' }} ] } }, subject.to_hash )
20
- end
21
-
22
- should "take a block" do
23
- subject = Bool.new do
24
- must { match foo: 'bar' }
25
- end
26
-
27
- assert_equal( { bool: {must: [ {match: { foo: 'bar' }} ] } }, subject.to_hash )
28
- end
29
-
30
- should "have option methods" do
31
- subject = Bool.new do
32
- should { term tag: 'wow' }
33
- should { term tag: 'elasticsearch' }
34
-
35
- minimum_should_match 1
36
- boost 1.0
37
- end
38
-
39
- assert_equal( { bool:
40
- {
41
- minimum_should_match: 1,
42
- boost: 1.0,
43
- should: [ {term: { tag: 'wow' }}, {term: { tag: 'elasticsearch' }} ]
44
- }
45
- },
46
- subject.to_hash )
47
- end
48
-
49
- should "take a block with multiple methods" do
50
- subject = Bool.new do
51
- must { match foo: 'bar' }
52
- must_not { match moo: 'bam' }
53
- should { match xoo: 'bax' }
54
- filter { term zoo: 'baz'}
55
- end
56
-
57
- assert_equal( { bool:
58
- { must: [ {match: { foo: 'bar' }} ],
59
- must_not: [ {match: { moo: 'bam' }} ],
60
- should: [ {match: { xoo: 'bax' }} ],
61
- filter: [ {term: { zoo: 'baz' }}]
62
- }
63
- },
64
- subject.to_hash )
65
- end
66
-
67
- should "take a block with multiple conditions" do
68
- subject = Bool.new do
69
- must do
70
- match foo: 'bar'
71
- end
72
-
73
- must do
74
- match moo: 'bam'
75
- end
76
-
77
- should do
78
- match xoo: 'bax'
79
- end
80
-
81
- should do
82
- match zoo: 'baz'
83
- end
84
- end
85
-
86
- # Make sure we're not additive
87
- subject.to_hash
88
- subject.to_hash
89
-
90
- assert_equal( { bool:
91
- { must: [ {match: { foo: 'bar' }}, {match: { moo: 'bam' }} ],
92
- should: [ {match: { xoo: 'bax' }}, {match: { zoo: 'baz' }} ]
93
- }
94
- },
95
- subject.to_hash )
96
- end
97
-
98
- should "take method calls" do
99
- subject = Bool.new
100
-
101
- subject.must { match foo: 'bar' }
102
- assert_equal( { bool: { must: [ {match: { foo: 'bar' }} ] } }, subject.to_hash )
103
-
104
- subject.must { match moo: 'bam' }
105
- assert_equal( { bool: { must: [ {match: { foo: 'bar' }}, {match: { moo: 'bam' }} ]} },
106
- subject.to_hash )
107
-
108
- subject.should { match xoo: 'bax' }
109
- assert_equal( { bool:
110
- { must: [ {match: { foo: 'bar' }}, {match: { moo: 'bam' }} ],
111
- should: [ {match: { xoo: 'bax' }} ] }
112
- },
113
- subject.to_hash )
114
- end
115
-
116
- should "combine chained filters" do
117
- subject = Bool.new
118
- subject.
119
- filter {
120
- term foo: "bar"
121
- }
122
- subject.filter {
123
- term zoo: "baz"
124
- }
125
-
126
- assert_equal( { bool:
127
- { filter: [
128
- { term: { foo: "bar"}},
129
- { term: { zoo: "baz"}}
130
- ] }
131
- },
132
- subject.to_hash)
133
- end
134
-
135
- should "be chainable" do
136
- subject = Bool.new
137
-
138
- assert_instance_of Bool, subject.must { match foo: 'bar' }
139
- assert_instance_of Bool, subject.must { match foo: 'bar' }.must { match moo: 'bam' }
140
- assert_instance_of Bool, subject.must_not { match foo: 'bar' }
141
- assert_instance_of Bool, subject.should { match foo: 'bar' }
142
- end
143
- end
144
- end
145
- end
146
- end
147
- end
@@ -1,41 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Queries
6
- class BoostingTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Queries
8
-
9
- context "Boosting query" do
10
- subject { Boosting.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ boosting: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Boosting.new
18
-
19
- subject.positive 'bar'
20
- subject.negative 'bar'
21
- subject.negative_boost 'bar'
22
-
23
- assert_equal %w[ negative negative_boost positive ],
24
- subject.to_hash[:boosting].keys.map(&:to_s).sort
25
- assert_equal 'bar', subject.to_hash[:boosting][:positive]
26
- end
27
-
28
- should "take a block" do
29
- subject = Boosting.new do
30
- positive foo: 'bar'
31
- negative moo: 'xoo'
32
- end
33
-
34
- assert_equal 'bar', subject.to_hash[:boosting][:positive][:foo]
35
- assert_equal 'xoo', subject.to_hash[:boosting][:negative][:moo]
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,42 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Queries
6
- class CommonTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Queries
8
-
9
- context "Common query" do
10
- subject { Common.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ common: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Common.new :foo
18
-
19
- subject.query 'bar'
20
- subject.cutoff_frequency 'bar'
21
- subject.low_freq_operator 'bar'
22
- subject.minimum_should_match 'bar'
23
- subject.boost 'bar'
24
- subject.analyzer 'bar'
25
- subject.disable_coord 'bar'
26
-
27
- assert_equal %w[ analyzer boost cutoff_frequency disable_coord low_freq_operator minimum_should_match query ],
28
- subject.to_hash[:common][:foo].keys.map(&:to_s).sort
29
- assert_equal 'bar', subject.to_hash[:common][:foo][:query]
30
- end
31
-
32
- should "take a block" do
33
- subject = Common.new :foo do
34
- query 'bar'
35
- end
36
- assert_equal 'bar', subject.to_hash[:common][:foo][:query]
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,47 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Queries
6
- class ConstantScoreTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Queries
8
-
9
- context "ConstantScore query" do
10
- subject { ConstantScore.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ constant_score: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = ConstantScore.new
18
-
19
- subject.query 'bar'
20
- subject.filter 'bar'
21
- subject.boost 'bar'
22
-
23
- assert_equal %w[ boost filter query ],
24
- subject.to_hash[:constant_score].keys.map(&:to_s).sort
25
- assert_equal 'bar', subject.to_hash[:constant_score][:query]
26
- end
27
-
28
- should "take a block" do
29
- subject = ConstantScore.new do
30
- query term: { foo: 'bar' }
31
- end
32
- assert_equal 'bar', subject.to_hash[:constant_score][:query][:term][:foo]
33
- end
34
-
35
- should "evaluate a block passed to the option method" do
36
- subject = ConstantScore.new do
37
- query do
38
- term foo: 'bar'
39
- end
40
- end
41
- assert_equal 'bar', subject.to_hash[:constant_score][:query][:term][:foo]
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,38 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Queries
6
- class DisMaxTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Queries
8
-
9
- context "DisMax query" do
10
- subject { DisMax.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ dis_max: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = DisMax.new
18
-
19
- subject.tie_breaker 'bar'
20
- subject.boost 'bar'
21
- subject.queries 'bar'
22
-
23
- assert_equal %w[ boost queries tie_breaker ],
24
- subject.to_hash[:dis_max].keys.map(&:to_s).sort
25
- assert_equal 'bar', subject.to_hash[:dis_max][:tie_breaker]
26
- end
27
-
28
- should "take a block" do
29
- subject = DisMax.new do
30
- tie_breaker 'bar'
31
- end
32
- assert_equal 'bar', subject.to_hash[:dis_max][:tie_breaker]
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,36 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Queries
6
- class ExistsTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Queries
8
-
9
- context "Exists query" do
10
- subject { Exists.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ exists: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Exists.new
18
-
19
- subject.field 'bar'
20
-
21
- assert_equal %w[ field ],
22
- subject.to_hash[:exists].keys.map(&:to_s).sort
23
- assert_equal 'bar', subject.to_hash[:exists][:field]
24
- end
25
-
26
- should "take a block" do
27
- subject = Exists.new do
28
- field 'bar'
29
- end
30
- assert_equal({ exists: { field: 'bar' } }, subject.to_hash)
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,51 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Queries
6
- class FilteredTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Queries
8
-
9
- context "Filtered query" do
10
- subject { Filtered.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ filtered: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Filtered.new
18
-
19
- subject.query 'bar'
20
- subject.filter 'bar'
21
- subject.strategy 'bar'
22
-
23
- assert_equal %w[ filter query strategy ],
24
- subject.to_hash[:filtered].keys.map(&:to_s).sort
25
- assert_equal 'bar', subject.to_hash[:filtered][:query]
26
- end
27
-
28
- should "take a block" do
29
- subject = Filtered.new do
30
- query 'bar'
31
- end
32
- assert_equal 'bar', subject.to_hash[:filtered][:query]
33
- end
34
-
35
- should "evaluate a block passed to the option method" do
36
- subject = Filtered.new do
37
- query do
38
- match foo: 'BLAM'
39
- end
40
- filter do
41
- term bar: 'slam'
42
- end
43
- end
44
-
45
- assert_equal({filtered: { query: { match: { foo: 'BLAM' } }, filter: { term: { bar: 'slam' } } } }, subject.to_hash)
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end